ZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS8yNDEzdG9uZS5oIGIvYXBwcy9jb2RlY3MvbGliZ21lLzI0MTN0b25lLmgKaW5kZXggZTQzNjZhYi4uYzA5MjJjMSAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lLzI0MTN0b25lLmgKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lLzI0MTN0b25lLmgKQEAgLTEsMjAgKzEsMjAgQEAKLS8qIFlNMjQxMyB0b25lIGJ5IG9rYXpha2lAYW5nZWwubmUuanAgKi8NCi0weDQ5LDB4NGMsMHg0YywweDMyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4NjEsMHg2MSwweDFlLDB4MTcsMHhmMCwweDdmLDB4MDAsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgxMywweDQxLDB4MTYsMHgwZSwweGZkLDB4ZjQsMHgyMywweDIzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAzLDB4MDEsMHg5YSwweDA0LDB4ZjMsMHhmMywweDEzLDB4ZjMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MTEsMHg2MSwweDBlLDB4MDcsMHhmYSwweDY0LDB4NzAsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMiwweDIxLDB4MWUsMHgwNiwweGYwLDB4NzYsMHgwMCwweDI4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDIxLDB4MjIsMHgxNiwweDA1LDB4ZjAsMHg3MSwweDAwLDB4MTgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MjEsMHg2MSwweDFkLDB4MDcsMHg4MiwweDgwLDB4MTcsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMywweDIxLDB4MmQsMHgxNiwweDkwLDB4OTAsMHgwMCwweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDIxLDB4MjEsMHgxYiwweDA2LDB4NjQsMHg2NSwweDEwLDB4MTcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MjEsMHgyMSwweDBiLDB4MWEsMHg4NSwweGEwLDB4NzAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMywweDAxLDB4ODMsMHgxMCwweGZmLDB4YjQsMHgxMCwweGY0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDk3LDB4YzEsMHgyMCwweDA3LDB4ZmYsMHhmNCwweDIyLDB4MjIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4NjEsMHgwMCwweDBjLDB4MDUsMHhjMiwweGY2LDB4NDAsMHg0NCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwMSwweDAxLDB4NTYsMHgwMywweDk0LDB4YzIsMHgwMywweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDIxLDB4MDEsMHg4OSwweDAzLDB4ZjEsMHhlNCwweGYwLDB4MjMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MDcsMHgyMSwweDE0LDB4MDAsMHhlZSwweGY4LDB4ZmYsMHhmOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwMSwweDMxLDB4MDAsMHgwMCwweGY4LDB4ZjcsMHhmOCwweGY3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDI1LDB4MTEsMHgwMCwweDAwLDB4ZjgsMHhmYSwweGY4LDB4NTUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwDQorLyogWU0yNDEzIHRvbmUgYnkgb2themFraUBhbmdlbC5uZS5qcCAqLworMHg0OSwweDRjLDB4NGMsMHgzMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4NjEsMHg2MSwweDFlLDB4MTcsMHhmMCwweDdmLDB4MDAsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDEzLDB4NDEsMHgxNiwweDBlLDB4ZmQsMHhmNCwweDIzLDB4MjMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgwMywweDAxLDB4OWEsMHgwNCwweGYzLDB4ZjMsMHgxMywweGYzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MTEsMHg2MSwweDBlLDB4MDcsMHhmYSwweDY0LDB4NzAsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDIyLDB4MjEsMHgxZSwweDA2LDB4ZjAsMHg3NiwweDAwLDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDIyLDB4MTYsMHgwNSwweGYwLDB4NzEsMHgwMCwweDE4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MjEsMHg2MSwweDFkLDB4MDcsMHg4MiwweDgwLDB4MTcsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDIzLDB4MjEsMHgyZCwweDE2LDB4OTAsMHg5MCwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDIxLDB4MWIsMHgwNiwweDY0LDB4NjUsMHgxMCwweDE3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MjEsMHgyMSwweDBiLDB4MWEsMHg4NSwweGEwLDB4NzAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDIzLDB4MDEsMHg4MywweDEwLDB4ZmYsMHhiNCwweDEwLDB4ZjQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHg5NywweGMxLDB4MjAsMHgwNywweGZmLDB4ZjQsMHgyMiwweDIyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4NjEsMHgwMCwweDBjLDB4MDUsMHhjMiwweGY2LDB4NDAsMHg0NCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAxLDB4MDEsMHg1NiwweDAzLDB4OTQsMHhjMiwweDAzLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDAxLDB4ODksMHgwMywweGYxLDB4ZTQsMHhmMCwweDIzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDcsMHgyMSwweDE0LDB4MDAsMHhlZSwweGY4LDB4ZmYsMHhmOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAxLDB4MzEsMHgwMCwweDAwLDB4ZjgsMHhmNywweGY4LDB4ZjcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyNSwweDExLDB4MDAsMHgwMCwweGY4LDB4ZmEsMHhmOCwweDU1LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMApkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lLzI4MWJ0b25lLmggYi9hcHBzL2NvZGVjcy9saWJnbWUvMjgxYnRvbmUuaAppbmRleCAxMzAwNTIzLi44M2Y2M2JmIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvMjgxYnRvbmUuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvMjgxYnRvbmUuaApAQCAtMSwyMCArMSwyMCBAQAotLyogWU1GMjgxQiB0b25lIGJ5IENoYWJpbiAqLw0KLTB4NDksMHg0YywweDRjLDB4MzIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHg2MiwweDIxLDB4MWEsMHgwNywweGYwLDB4NmYsMHgwMCwweDE2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAwLDB4MTAsMHg0NCwweDAyLDB4ZjYsMHhmNCwweDU0LDB4MjMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MDMsMHgwMSwweDk3LDB4MDQsMHhmMywweGYzLDB4MTMsMHhmMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwMSwweDYxLDB4MGEsMHgwZiwweGZhLDB4NjQsMHg3MCwweDE3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDIyLDB4MjEsMHgxZSwweDA2LDB4ZjAsMHg3NiwweDAwLDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MDAsMHg2MSwweDhhLDB4MGUsMHhjMCwweDYxLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMSwweDYxLDB4MWIsMHgwNywweDg0LDB4ODAsMHgxNywweDE3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDM3LDB4MzIsMHhjOSwweDAxLDB4NjYsMHg2NCwweDQwLDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MDEsMHgyMSwweDA2LDB4MDMsMHhhNSwweDcxLDB4NTEsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwNiwweDExLDB4NWUsMHgwNywweGYzLDB4ZjIsMHhmNiwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAwLDB4MjAsMHgxOCwweDA2LDB4ZjUsMHhmMywweDIwLDB4MjYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4OTcsMHg0MSwweDIwLDB4MDcsMHhmZiwweGY0LDB4MjIsMHgyMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHg2NSwweDYxLDB4MTUsMHgwMCwweGY3LDB4ZjMsMHgxNiwweGY0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAxLDB4MzEsMHgwZSwweDA3LDB4ZmEsMHhmMywweGZmLDB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4NDgsMHg2MSwweDA5LDB4MDcsMHhmMSwweDk0LDB4ZjAsMHhmNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwNywweDIxLDB4MTQsMHgwMCwweGVlLDB4ZjgsMHhmZiwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAxLDB4MzEsMHgwMCwweDAwLDB4ZjgsMHhmNywweGY4LDB4ZjcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MjUsMHgxMSwweDAwLDB4MDAsMHhmOCwweGZhLDB4ZjgsMHg1NSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDANCisvKiBZTUYyODFCIHRvbmUgYnkgQ2hhYmluICovCisweDQ5LDB4NGMsMHg0YywweDMyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHg2MiwweDIxLDB4MWEsMHgwNywweGYwLDB4NmYsMHgwMCwweDE2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDAsMHgxMCwweDQ0LDB4MDIsMHhmNiwweGY0LDB4NTQsMHgyMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAzLDB4MDEsMHg5NywweDA0LDB4ZjMsMHhmMywweDEzLDB4ZjMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgwMSwweDYxLDB4MGEsMHgwZiwweGZhLDB4NjQsMHg3MCwweDE3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MjIsMHgyMSwweDFlLDB4MDYsMHhmMCwweDc2LDB4MDAsMHgyOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAwLDB4NjEsMHg4YSwweDBlLDB4YzAsMHg2MSwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDYxLDB4MWIsMHgwNywweDg0LDB4ODAsMHgxNywweDE3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MzcsMHgzMiwweGM5LDB4MDEsMHg2NiwweDY0LDB4NDAsMHgyOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAxLDB4MjEsMHgwNiwweDAzLDB4YTUsMHg3MSwweDUxLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgwNiwweDExLDB4NWUsMHgwNywweGYzLDB4ZjIsMHhmNiwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDAsMHgyMCwweDE4LDB4MDYsMHhmNSwweGYzLDB4MjAsMHgyNiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDk3LDB4NDEsMHgyMCwweDA3LDB4ZmYsMHhmNCwweDIyLDB4MjIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHg2NSwweDYxLDB4MTUsMHgwMCwweGY3LDB4ZjMsMHgxNiwweGY0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDEsMHgzMSwweDBlLDB4MDcsMHhmYSwweGYzLDB4ZmYsMHhmZiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDQ4LDB4NjEsMHgwOSwweDA3LDB4ZjEsMHg5NCwweGYwLDB4ZjUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgwNywweDIxLDB4MTQsMHgwMCwweGVlLDB4ZjgsMHhmZiwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDEsMHgzMSwweDAwLDB4MDAsMHhmOCwweGY3LDB4ZjgsMHhmNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDI1LDB4MTEsMHgwMCwweDAwLDB4ZjgsMHhmYSwweGY4LDB4NTUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvYXlfZW11LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvYXlfZW11LmMKaW5kZXggNDJlNzM5Zi4uOTJmYWJhNCAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL2F5X2VtdS5jCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9heV9lbXUuYwpAQCAtMSw1OTkgKzEsNTk5IEBACi0vLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlLiBodHRwOi8vd3d3LnNsYWNrLm5ldC9+YW50Lw0KLQ0KLSNpbmNsdWRlICJheV9lbXUuaCINCi0NCi0jaW5jbHVkZSAiYmxhcmdnX2VuZGlhbi5oIg0KLQ0KLS8qIENvcHlyaWdodCAoQykgMjAwNi0yMDA5IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwNCi1JbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovDQotDQotI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCINCi0NCi1jb25zdCBjaGFyKiBjb25zdCBnbWVfd3JvbmdfZmlsZV90eXBlID0gIldyb25nIGZpbGUgdHlwZSBmb3IgdGhpcyBlbXVsYXRvciI7DQotDQotLy8gVE9ETzogcHJvYmFibHkgZG9uJ3QgbmVlZCBkZXRhaWxlZCBlcnJvcnMgYXMgdG8gd2h5IGZpbGUgaXMgY29ycnVwdA0KLQ0KLWludCBjb25zdCBzcGVjdHJ1bV9jbG9jayA9IDM1NDY5MDA7IC8vIDEyOEsgU3BlY3RydW0NCi1pbnQgY29uc3Qgc3BlY3RydW1fcGVyaW9kID0gNzA5MDg7DQotDQotLy9pbnQgY29uc3Qgc3BlY3RydW1fY2xvY2sgPSAzNTAwMDAwOyAvLyA0OEsgU3BlY3RydW0NCi0vL2ludCBjb25zdCBzcGVjdHJ1bV9wZXJpb2QgPSA2OTg4ODsNCi0NCi1pbnQgY29uc3QgY3BjX2Nsb2NrID0gMjAwMDAwMDsNCi0NCi1zdGF0aWMgdm9pZCBjbGVhcl90cmFja192YXJzKCBzdHJ1Y3QgQXlfRW11ICp0aGlzICkNCi17DQotCXRoaXMtPmN1cnJlbnRfdHJhY2sgICAgPSAtMTsNCi0JdHJhY2tfc3RvcCggJnRoaXMtPnRyYWNrX2ZpbHRlciApOw0KLX0NCi0NCi12b2lkIEF5X2luaXQoIHN0cnVjdCBBeV9FbXUgKnRoaXMgKQ0KLXsNCi0JdGhpcy0+c2FtcGxlX3JhdGUgID0gMDsNCi0JdGhpcy0+bXV0ZV9tYXNrXyAgID0gMDsNCi0JdGhpcy0+dGVtcG8gICAgICAgID0gKGludClGUF9PTkVfVEVNUE87DQotCXRoaXMtPmdhaW4gICAgICAgICA9IChpbnQpRlBfT05FX0dBSU47DQotCXRoaXMtPnRyYWNrX2NvdW50ICA9IDA7DQotCQ0KLQkvLyBkZWZhdWx0cw0KLQl0aGlzLT50ZmlsdGVyID0gKnRyYWNrX2dldF9zZXR1cCggJnRoaXMtPnRyYWNrX2ZpbHRlciApOw0KLQl0aGlzLT50ZmlsdGVyLm1heF9pbml0aWFsID0gMjsNCi0JdGhpcy0+dGZpbHRlci5sb29rYWhlYWQgICA9IDY7DQotCXRoaXMtPnRyYWNrX2ZpbHRlci5zaWxlbmNlX2lnbm9yZWRfID0gZmFsc2U7DQotCQ0KLQl0aGlzLT5iZWVwZXJfb3V0cHV0ID0gTlVMTDsNCi0JZGlzYWJsZV9iZWVwZXIoIHRoaXMgKTsNCi0JDQotCUF5X2FwdV9pbml0KCAmdGhpcy0+YXB1ICk7DQotCVo4MF9pbml0KCAmdGhpcy0+Y3B1ICk7DQotCQ0KLQkvLyBjbGVhcnMgZmllbGRzDQotCXRoaXMtPnZvaWNlX2NvdW50ID0gMDsNCi0JdGhpcy0+dm9pY2VfdHlwZXMgPSAwOw0KLQljbGVhcl90cmFja192YXJzKCB0aGlzICk7DQotfQ0KLQ0KLS8vIFRyYWNrIGluZm8NCi0NCi0vLyBHaXZlbiBwb2ludGVyIHRvIDItYnl0ZSBvZmZzZXQgb2YgZGF0YSwgcmV0dXJucyBwb2ludGVyIHRvIGRhdGEsIG9yIE5VTEwgaWYNCi0vLyBvZmZzZXQgaXMgMCBvciB0aGVyZSBpcyBsZXNzIHRoYW4gbWluX3NpemUgYnl0ZXMgb2YgZGF0YSBhdmFpbGFibGUuDQotc3RhdGljIGJ5dGUgY29uc3QqIGdldF9kYXRhKCBzdHJ1Y3QgZmlsZV90IGNvbnN0KiBmaWxlLCBieXRlIGNvbnN0IHB0ciBbXSwgaW50IG1pbl9zaXplICkNCi17DQotCWludCBvZmZzZXQgPSAoaW50MTZfdCkgZ2V0X2JlMTYoIHB0ciApOw0KLQlpbnQgcG9zICA9IHB0ciAtIChieXRlIGNvbnN0KikgZmlsZS0+aGVhZGVyOw0KLQlpbnQgc2l6ZSA9IGZpbGUtPmVuZCAtIChieXRlIGNvbnN0KikgZmlsZS0+aGVhZGVyOw0KLQlhc3NlcnQoICh1bnNpZ25lZCkgcG9zIDw9ICh1bnNpZ25lZCkgc2l6ZSAtIDIgKTsNCi0JaW50IGxpbWl0ID0gc2l6ZSAtIG1pbl9zaXplOw0KLQlpZiAoIGxpbWl0IDwgMCB8fCAhb2Zmc2V0IHx8ICh1bnNpZ25lZCkgKHBvcyArIG9mZnNldCkgPiAodW5zaWduZWQpIGxpbWl0ICkNCi0JCXJldHVybiBOVUxMOw0KLQlyZXR1cm4gcHRyICsgb2Zmc2V0Ow0KLX0NCi0NCi1zdGF0aWMgYmxhcmdnX2Vycl90IHBhcnNlX2hlYWRlciggYnl0ZSBjb25zdCBpbiBbXSwgaW50IHNpemUsIHN0cnVjdCBmaWxlX3QqIG91dCApDQotew0KLQlpZiAoIHNpemUgPCBoZWFkZXJfc2l6ZSApDQotCQlyZXR1cm4gZ21lX3dyb25nX2ZpbGVfdHlwZTsNCi0JDQotCW91dC0+aGVhZGVyID0gKHN0cnVjdCBoZWFkZXJfdCBjb25zdCopIGluOw0KLQlvdXQtPmVuZCAgICA9IGluICsgc2l6ZTsNCi0Jc3RydWN0IGhlYWRlcl90IGNvbnN0KiBoID0gKHN0cnVjdCBoZWFkZXJfdCBjb25zdCopIGluOw0KLQlpZiAoIG1lbWNtcCggaC0+dGFnLCAiWlhBWUVNVUwiLCA4ICkgKQ0KLQkJcmV0dXJuIGdtZV93cm9uZ19maWxlX3R5cGU7DQotCQ0KLQlvdXQtPnRyYWNrcyA9IGdldF9kYXRhKCBvdXQsIGgtPnRyYWNrX2luZm8sIChoLT5tYXhfdHJhY2sgKyAxKSAqIDQgKTsNCi0JaWYgKCAhb3V0LT50cmFja3MgKQ0KLQkJcmV0dXJuICJtaXNzaW5nIHRyYWNrIGRhdGEiOw0KLQ0KLQlyZXR1cm4gMDsNCi19DQotDQotLy8gU2V0dXANCi0NCi1zdGF0aWMgdm9pZCBjaGFuZ2VfY2xvY2tfcmF0ZSggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IHJhdGUgKQ0KLXsNCi0JdGhpcy0+Y2xvY2tfcmF0ZV8gPSByYXRlOw0KLQlCdWZmZXJfY2xvY2tfcmF0ZSggJnRoaXMtPnN0ZXJlb19idWYsIHJhdGUgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IEF5X2xvYWRfbWVtKCBzdHJ1Y3QgQXlfRW11ICp0aGlzLCBieXRlIGNvbnN0IGluIFtdLCBsb25nIHNpemUgKQ0KLXsNCi0JLy8gVW5sb2FkDQotCXRoaXMtPnZvaWNlX2NvdW50ID0gMDsNCi0JdGhpcy0+dHJhY2tfY291bnQgPSAwOw0KLQl0aGlzLT5tM3Uuc2l6ZSA9IDA7DQotCWNsZWFyX3RyYWNrX3ZhcnMoIHRoaXMgKTsNCi0NCi0JYXNzZXJ0KCBvZmZzZXRvZiAoc3RydWN0IGhlYWRlcl90LHRyYWNrX2luZm8gWzJdKSA9PSBoZWFkZXJfc2l6ZSApOw0KLQkNCi0JUkVUVVJOX0VSUiggcGFyc2VfaGVhZGVyKCBpbiwgc2l6ZSwgJnRoaXMtPmZpbGUgKSApOw0KLQkNCi0JLyogaWYgKCBmaWxlLmhlYWRlci0+dmVycyA+IDIgKQ0KLQkJd2FybmluZyggIlVua25vd24gZmlsZSB2ZXJzaW9uIiApOyAqLw0KLQkNCi0JdGhpcy0+dm9pY2VfY291bnQgPSBheV9vc2NfY291bnQgKyAxOyAvLyArMSBmb3IgYmVlcGVyDQotCXN0YXRpYyBpbnQgY29uc3QgdHlwZXMgW2F5X29zY19jb3VudCArIDFdID0gew0KLQkJd2F2ZV90eXBlKzAsIHdhdmVfdHlwZSsxLCB3YXZlX3R5cGUrMiwgbWl4ZWRfdHlwZSsxDQotCX07DQotCXRoaXMtPnZvaWNlX3R5cGVzID0gdHlwZXM7DQotCQ0KLQlBeV9hcHVfdm9sdW1lKCAmdGhpcy0+YXB1LCB0aGlzLT5nYWluKTsNCi0JDQotCS8vIFNldHVwIGJ1ZmZlcg0KLQljaGFuZ2VfY2xvY2tfcmF0ZSggdGhpcywgc3BlY3RydW1fY2xvY2sgKTsNCi0JUkVUVVJOX0VSUiggQnVmZmVyX3NldF9jaGFubmVsX2NvdW50KCAmdGhpcy0+c3RlcmVvX2J1ZiwgdGhpcy0+dm9pY2VfY291bnQsIHRoaXMtPnZvaWNlX3R5cGVzICkgKTsNCi0JdGhpcy0+YnVmX2NoYW5nZWRfY291bnQgPSBCdWZmZXJfY2hhbm5lbHNfY2hhbmdlZF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYgKTsNCi0JDQotCVNvdW5kX3NldF90ZW1wbyggdGhpcywgdGhpcy0+dGVtcG8gKTsNCi0JU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsNCi0JDQotCXRoaXMtPnRyYWNrX2NvdW50ID0gdGhpcy0+ZmlsZS5oZWFkZXItPm1heF90cmFjayArIDE7DQotCXJldHVybiAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZCBzZXRfYmVlcGVyX291dHB1dCggc3RydWN0IEF5X0VtdSAqdGhpcywgc3RydWN0IEJsaXBfQnVmZmVyKiBiICkNCi17DQotCXRoaXMtPmJlZXBlcl9vdXRwdXQgPSBiOw0KLQlpZiAoIGIgJiYgIXRoaXMtPmNwY19tb2RlICkNCi0JCXRoaXMtPmJlZXBlcl9tYXNrID0gMHgxMDsNCi0JZWxzZQ0KLQkJZGlzYWJsZV9iZWVwZXIoIHRoaXMgKTsNCi19DQotDQotc3RhdGljIHZvaWQgc2V0X3ZvaWNlKCBzdHJ1Y3QgQXlfRW11ICp0aGlzLCBpbnQgaSwgc3RydWN0IEJsaXBfQnVmZmVyKiBjZW50ZXIgKQ0KLXsNCi0JaWYgKCBpID49IGF5X29zY19jb3VudCApDQotCQlzZXRfYmVlcGVyX291dHB1dCggdGhpcywgY2VudGVyICk7DQotCWVsc2UNCi0JCUF5X2FwdV9zZXRfb3V0cHV0KCAmdGhpcy0+YXB1LCBpLCBjZW50ZXIgKTsNCi19DQotDQotc3RhdGljIGJsYXJnZ19lcnJfdCBydW5fY2xvY2tzKCBzdHJ1Y3QgQXlfRW11ICp0aGlzLCBibGlwX3RpbWVfdCogZHVyYXRpb24sIGludCBtc2VjICkNCi17DQotI2lmIGRlZmluZWQoUk9DS0JPWCkNCi0JKHZvaWQpIG1zZWM7DQotI2VuZGlmDQotDQotCWNwdV90aW1lX3QgKmVuZCA9IGR1cmF0aW9uOwkNCi0Jc3RydWN0IFo4MF9DcHUqIGNwdSA9ICZ0aGlzLT5jcHU7DQotCVo4MF9zZXRfdGltZSggY3B1LCAwICk7DQotCQ0KLQkvLyBTaW5jZSBkZXRlY3Rpb24gb2YgQ1BDIG1vZGUgd2lsbCBoYWx2ZSBjbG9jayByYXRlIGR1cmluZyB0aGUgZnJhbWUNCi0JLy8gYW5kIHRodXMgZ2VuZXJhdGUgdXAgdG8gdHdpY2UgYXMgbXVjaCBzb3VuZCwgd2UgbXVzdCBnZW5lcmF0ZSBoYWxmDQotCS8vIGFzIG11Y2ggdW50aWwgbW9kZSBpcyBrbm93bi4NCi0JaWYgKCAhKHRoaXMtPnNwZWN0cnVtX21vZGUgfCB0aGlzLT5jcGNfbW9kZSkgKQ0KLQkJKmVuZCAvPSAyOw0KLQkNCi0Jd2hpbGUgKCBaODBfdGltZSggY3B1ICkgPCAqZW5kICkNCi0Jew0KLQkJcnVuX2NwdSggdGhpcywgbWluKCAqZW5kLCB0aGlzLT5uZXh0X3BsYXkgKSApOw0KLQkJDQotCQlpZiAoIFo4MF90aW1lKCBjcHUgKSA+PSB0aGlzLT5uZXh0X3BsYXkgKQ0KLQkJew0KLQkJCS8vIG5leHQgZnJhbWUNCi0JCQl0aGlzLT5uZXh0X3BsYXkgKz0gdGhpcy0+cGxheV9wZXJpb2Q7DQotCQkJDQotCQkJaWYgKCBjcHUtPnIuaWZmMSApDQotCQkJew0KLQkJCQkvLyBpbnRlcnJ1cHQgZW5hYmxlZA0KLQkJCQkNCi0JCQkJaWYgKCB0aGlzLT5tZW0ucmFtIFtjcHUtPnIucGNdID09IDB4NzYgKQ0KLQkJCQkJY3B1LT5yLnBjKys7IC8vIGFkdmFuY2UgcGFzdCBIQUxUIGluc3RydWN0aW9uDQotCQkJCQ0KLQkJCQljcHUtPnIuaWZmMSA9IDA7DQotCQkJCWNwdS0+ci5pZmYyID0gMDsNCi0JCQkJDQotCQkJCXRoaXMtPm1lbS5yYW0gWy0tY3B1LT5yLnNwXSA9IChieXRlKSAoY3B1LT5yLnBjID4+IDgpOw0KLQkJCQl0aGlzLT5tZW0ucmFtIFstLWNwdS0+ci5zcF0gPSAoYnl0ZSkgKGNwdS0+ci5wYyk7DQotCQkJCQ0KLQkJCQkvLyBmaXhlZCBpbnRlcnJ1cHQNCi0JCQkJY3B1LT5yLnBjID0gMHgzODsNCi0JCQkJWjgwX2FkanVzdF90aW1lKCBjcHUsIDEyICk7DQotCQkJCQ0KLQkJCQlpZiAoIGNwdS0+ci5pbSA9PSAyICkNCi0JCQkJew0KLQkJCQkJLy8gdmVjdG9yZWQgaW50ZXJydXB0DQotCQkJCQlhZGRyX3QgYWRkciA9IGNwdS0+ci5pICogMHgxMDAgKyAweEZGOw0KLQkJCQkJY3B1LT5yLnBjID0gdGhpcy0+bWVtLnJhbSBbKGFkZHIgKyAxKSAmIDB4RkZGRl0gKiAweDEwMCArIHRoaXMtPm1lbS5yYW0gW2FkZHJdOw0KLQkJCQkJWjgwX2FkanVzdF90aW1lKCBjcHUsIDYgKTsNCi0JCQkJfQ0KLQkJCX0NCi0JCX0NCi0JfQ0KLQkNCi0JLy8gRW5kIHRpbWUgZnJhbWUNCi0JKmVuZCA9IFo4MF90aW1lKCBjcHUgKTsNCi0JdGhpcy0+bmV4dF9wbGF5IC09ICplbmQ7DQotCWNoZWNrKCB0aGlzLT5uZXh0X3BsYXkgPj0gMCApOw0KLQlaODBfYWRqdXN0X3RpbWUoIGNwdSwgLSplbmQgKTsNCi0JQXlfYXB1X2VuZF9mcmFtZSggJnRoaXMtPmFwdSwgKmVuZCApOw0KLQlyZXR1cm4gMDsNCi19DQotDQotLy8gRW11bGF0aW9uDQotDQotdm9pZCBjcHVfb3V0Xyggc3RydWN0IEF5X0VtdSAqdGhpcywgY3B1X3RpbWVfdCB0aW1lLCBhZGRyX3QgYWRkciwgaW50IGRhdGEgKQ0KLXsNCi0JLy8gU3BlY3RydW0NCi0JaWYgKCAhdGhpcy0+Y3BjX21vZGUgKQ0KLQl7DQotCQlzd2l0Y2ggKCBhZGRyICYgMHhGRUZGICkNCi0JCXsNCi0JCWNhc2UgMHhGRUZEOg0KLQkJCXRoaXMtPnNwZWN0cnVtX21vZGUgPSB0cnVlOw0KLQkJCUF5X2FwdV93cml0ZV9hZGRyKCAmdGhpcy0+YXB1LCBkYXRhICk7DQotCQkJcmV0dXJuOw0KLQkJDQotCQljYXNlIDB4QkVGRDoNCi0JCQl0aGlzLT5zcGVjdHJ1bV9tb2RlID0gdHJ1ZTsNCi0JCQlBeV9hcHVfd3JpdGVfZGF0YSggJnRoaXMtPmFwdSwgdGltZSwgZGF0YSApOw0KLQkJCXJldHVybjsNCi0JCX0NCi0JfQ0KLQkNCi0JLy8gQ1BDDQotCWlmICggIXRoaXMtPnNwZWN0cnVtX21vZGUgKQ0KLQl7DQotCQlzd2l0Y2ggKCBhZGRyID4+IDggKQ0KLQkJew0KLQkJY2FzZSAweEY2Og0KLQkJCXN3aXRjaCAoIGRhdGEgJiAweEMwICkNCi0JCQl7DQotCQkJY2FzZSAweEMwOg0KLQkJCQlBeV9hcHVfd3JpdGVfYWRkciggJnRoaXMtPmFwdSwgdGhpcy0+Y3BjX2xhdGNoICk7DQotCQkJCWdvdG8gZW5hYmxlX2NwYzsNCi0JCQkNCi0JCQljYXNlIDB4ODA6DQotCQkJCUF5X2FwdV93cml0ZV9kYXRhKCAmdGhpcy0+YXB1LCB0aW1lLCB0aGlzLT5jcGNfbGF0Y2ggKTsNCi0JCQkJZ290byBlbmFibGVfY3BjOw0KLQkJCX0NCi0JCQlicmVhazsNCi0JCQ0KLQkJY2FzZSAweEY0Og0KLQkJCXRoaXMtPmNwY19sYXRjaCA9IGRhdGE7DQotCQkJZ290byBlbmFibGVfY3BjOw0KLQkJfQ0KLQl9DQotCQ0KLQkvKiBkcHJpbnRmKCAiVW5tYXBwZWQgT1VUOiAkJTA0WCA8LSAkJTAyWFxuIiwgYWRkciwgZGF0YSApOyAqLw0KLQlyZXR1cm47DQotCQ0KLWVuYWJsZV9jcGM6DQotCWlmICggIXRoaXMtPmNwY19tb2RlICkNCi0Jew0KLQkJdGhpcy0+Y3BjX21vZGUgPSB0cnVlOw0KLQkJZGlzYWJsZV9iZWVwZXIoIHRoaXMgKTsNCi0JDQotCQljaGFuZ2VfY2xvY2tfcmF0ZSggdGhpcywgY3BjX2Nsb2NrICk7DQotCQlTb3VuZF9zZXRfdGVtcG8oIHRoaXMsIHRoaXMtPnRlbXBvICk7DQotCX0NCi19DQotDQotYmxhcmdnX2Vycl90IEF5X3NldF9zYW1wbGVfcmF0ZSggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IHJhdGUgKQ0KLXsNCi0JcmVxdWlyZSggIXRoaXMtPnNhbXBsZV9yYXRlICk7IC8vIHNhbXBsZSByYXRlIGNhbid0IGJlIGNoYW5nZWQgb25jZSBzZXQNCi0JQnVmZmVyX2luaXQoICZ0aGlzLT5zdGVyZW9fYnVmICk7DQotCVJFVFVSTl9FUlIoIEJ1ZmZlcl9zZXRfc2FtcGxlX3JhdGUoICZ0aGlzLT5zdGVyZW9fYnVmLCByYXRlLCAxMDAwIC8gMjAgKSApOw0KLQkNCi0JLy8gU2V0IGJ1ZmZlciBiYXNzDQotCUJ1ZmZlcl9iYXNzX2ZyZXEoICZ0aGlzLT5zdGVyZW9fYnVmLCAxNjAgKTsNCi0JDQotCXRoaXMtPnNhbXBsZV9yYXRlID0gcmF0ZTsNCi0JUkVUVVJOX0VSUiggdHJhY2tfaW5pdCggJnRoaXMtPnRyYWNrX2ZpbHRlciwgdGhpcyApICk7DQotCXRoaXMtPnRmaWx0ZXIubWF4X3NpbGVuY2UgPSA2ICogc3RlcmVvICogdGhpcy0+c2FtcGxlX3JhdGU7DQotCXJldHVybiAwOw0KLX0NCi0NCi12b2lkIFNvdW5kX211dGVfdm9pY2UoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBpbmRleCwgYm9vbCBtdXRlICkNCi17DQotCXJlcXVpcmUoICh1bnNpZ25lZCkgaW5kZXggPCAodW5zaWduZWQpIHRoaXMtPnZvaWNlX2NvdW50ICk7DQotCWludCBiaXQgPSAxIDw8IGluZGV4Ow0KLQlpbnQgbWFzayA9IHRoaXMtPm11dGVfbWFza18gfCBiaXQ7DQotCWlmICggIW11dGUgKQ0KLQkJbWFzayBePSBiaXQ7DQotCVNvdW5kX211dGVfdm9pY2VzKCB0aGlzLCBtYXNrICk7DQotfQ0KLQ0KLXZvaWQgU291bmRfbXV0ZV92b2ljZXMoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBtYXNrICkNCi17DQotCXJlcXVpcmUoIHRoaXMtPnNhbXBsZV9yYXRlICk7IC8vIHNhbXBsZSByYXRlIG11c3QgYmUgc2V0IGZpcnN0DQotCXRoaXMtPm11dGVfbWFza18gPSBtYXNrOw0KLQkNCi0JaW50IGk7DQotCWZvciAoIGkgPSB0aGlzLT52b2ljZV9jb3VudDsgaS0tOyApDQotCXsNCi0JCWlmICggbWFzayAmICgxIDw8IGkpICkNCi0JCXsNCi0JCQlzZXRfdm9pY2UoIHRoaXMsIGksIDAgKTsNCi0JCX0NCi0JCWVsc2UNCi0JCXsNCi0JCQlzdHJ1Y3QgY2hhbm5lbF90IGNoID0gQnVmZmVyX2NoYW5uZWwoICZ0aGlzLT5zdGVyZW9fYnVmLCBpICk7DQotCQkJYXNzZXJ0KCAoY2guY2VudGVyICYmIGNoLmxlZnQgJiYgY2gucmlnaHQpIHx8DQotCQkJCQkoIWNoLmNlbnRlciAmJiAhY2gubGVmdCAmJiAhY2gucmlnaHQpICk7IC8vIGFsbCBvciBub3RoaW5nDQotCQkJc2V0X3ZvaWNlKCB0aGlzLCBpLCBjaC5jZW50ZXIgKTsNCi0JCX0NCi0JfQ0KLX0NCi0NCi12b2lkIFNvdW5kX3NldF90ZW1wbyggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IHQgKQ0KLXsNCi0JcmVxdWlyZSggdGhpcy0+c2FtcGxlX3JhdGUgKTsgLy8gc2FtcGxlIHJhdGUgbXVzdCBiZSBzZXQgZmlyc3QNCi0JaW50IGNvbnN0IG1pbiA9IChpbnQpKEZQX09ORV9URU1QTyowLjAyKTsNCi0JaW50IGNvbnN0IG1heCA9IChpbnQpKEZQX09ORV9URU1QTyo0LjAwKTsNCi0JaWYgKCB0IDwgbWluICkgdCA9IG1pbjsNCi0JaWYgKCB0ID4gbWF4ICkgdCA9IG1heDsNCi0JdGhpcy0+dGVtcG8gPSB0Ow0KLQkNCi0JaW50IHAgPSBzcGVjdHJ1bV9wZXJpb2Q7DQotCWlmICggdGhpcy0+Y2xvY2tfcmF0ZV8gIT0gc3BlY3RydW1fY2xvY2sgKQ0KLQkJcCA9IHRoaXMtPmNsb2NrX3JhdGVfIC8gNTA7DQotCQ0KLQl0aGlzLT5wbGF5X3BlcmlvZCA9IChibGlwX3RpbWVfdCkgKChwICogRlBfT05FX1RFTVBPKSAvIHQpOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3QgQXlfc3RhcnRfdHJhY2soIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCB0cmFjayApDQotew0KLQljbGVhcl90cmFja192YXJzKCB0aGlzICk7DQotCQ0KLQkvLyBSZW1hcCB0cmFjayBpZiBwbGF5bGlzdCBhdmFpbGFibGUNCi0JaWYgKCB0aGlzLT5tM3Uuc2l6ZSA+IDAgKSB7DQotCQlzdHJ1Y3QgZW50cnlfdCogZSA9ICZ0aGlzLT5tM3UuZW50cmllc1t0cmFja107DQotCQl0cmFjayA9IGUtPnRyYWNrOw0KLQl9DQotCQ0KLQl0aGlzLT5jdXJyZW50X3RyYWNrID0gdHJhY2s7DQotCUJ1ZmZlcl9jbGVhciggJnRoaXMtPnN0ZXJlb19idWYgKTsNCi0JDQotCWJ5dGUqIGNvbnN0IG1lbSA9IHRoaXMtPm1lbS5yYW07DQotCQ0KLQltZW1zZXQoIG1lbSArIDB4MDAwMCwgMHhDOSwgMHgxMDAgKTsgLy8gZmlsbCBSU1QgdmVjdG9ycyB3aXRoIFJFVA0KLQltZW1zZXQoIG1lbSArIDB4MDEwMCwgMHhGRiwgMHg0MDAwIC0gMHgxMDAgKTsNCi0JbWVtc2V0KCBtZW0gKyByYW1fYWRkciwgMHgwMCwgbWVtX3NpemUgLSByYW1fYWRkciApOw0KLQ0KLQkvLyBsb2NhdGUgZGF0YSBibG9ja3MNCi0JYnl0ZSBjb25zdCogY29uc3QgZGF0YSA9IGdldF9kYXRhKCAmdGhpcy0+ZmlsZSwgdGhpcy0+ZmlsZS50cmFja3MgKyB0cmFjayAqIDQgKyAyLCAxNCApOw0KLQlpZiAoICFkYXRhICkNCi0JCXJldHVybiAiZmlsZSBkYXRhIG1pc3NpbmciOw0KLQkNCi0JYnl0ZSBjb25zdCogY29uc3QgbW9yZV9kYXRhID0gZ2V0X2RhdGEoICZ0aGlzLT5maWxlLCBkYXRhICsgMTAsIDYgKTsNCi0JaWYgKCAhbW9yZV9kYXRhICkNCi0JCXJldHVybiAiZmlsZSBkYXRhIG1pc3NpbmciOw0KLQkNCi0JYnl0ZSBjb25zdCogYmxvY2tzID0gZ2V0X2RhdGEoICZ0aGlzLT5maWxlLCBkYXRhICsgMTIsIDggKTsNCi0JaWYgKCAhYmxvY2tzICkNCi0JCXJldHVybiAiZmlsZSBkYXRhIG1pc3NpbmciOw0KLQkNCi0JLy8gaW5pdGlhbCBhZGRyZXNzZXMNCi0JdW5zaWduZWQgYWRkciA9IGdldF9iZTE2KCBibG9ja3MgKTsNCi0JaWYgKCAhYWRkciApDQotCQlyZXR1cm4gImZpbGUgZGF0YSBtaXNzaW5nIjsNCi0JDQotCXVuc2lnbmVkIGluaXQgPSBnZXRfYmUxNiggbW9yZV9kYXRhICsgMiApOw0KLQlpZiAoICFpbml0ICkNCi0JCWluaXQgPSBhZGRyOw0KLQkNCi0JLy8gY29weSBibG9ja3MgaW50byBtZW1vcnkNCi0JZG8NCi0Jew0KLQkJYmxvY2tzICs9IDI7DQotCQl1bnNpZ25lZCBsZW4gPSBnZXRfYmUxNiggYmxvY2tzICk7IGJsb2NrcyArPSAyOw0KLQkJaWYgKCBhZGRyICsgbGVuID4gbWVtX3NpemUgKQ0KLQkJew0KLQkJCS8qIHdhcm5pbmcoICJCYWQgZGF0YSBibG9jayBzaXplIiApOyAqLw0KLQkJCWxlbiA9IG1lbV9zaXplIC0gYWRkcjsNCi0JCX0NCi0JCWNoZWNrKCBsZW4gKTsNCi0JCWJ5dGUgY29uc3QqIGluID0gZ2V0X2RhdGEoICZ0aGlzLT5maWxlLCBibG9ja3MsIDAgKTsgYmxvY2tzICs9IDI7DQotCQlpZiAoIGxlbiA+ICh1bnNpZ25lZCkgKHRoaXMtPmZpbGUuZW5kIC0gaW4pICkNCi0JCXsNCi0JCQkvKiB3YXJuaW5nKCAiRmlsZSBkYXRhIG1pc3NpbmciICk7ICovDQotCQkJbGVuID0gdGhpcy0+ZmlsZS5lbmQgLSBpbjsNCi0JCX0NCi0NCi0JCW1lbWNweSggbWVtICsgYWRkciwgaW4sIGxlbiApOw0KLQkJDQotCQlpZiAoIHRoaXMtPmZpbGUuZW5kIC0gYmxvY2tzIDwgOCApDQotCQl7DQotCQkJLyogd2FybmluZyggIkZpbGUgZGF0YSBtaXNzaW5nIiApOyAqLw0KLQkJCWJyZWFrOw0KLQkJfQ0KLQl9DQotCXdoaWxlICggKGFkZHIgPSBnZXRfYmUxNiggYmxvY2tzICkpICE9IDAgKTsNCi0JDQotCS8vIGNvcHkgYW5kIGNvbmZpZ3VyZSBkcml2ZXINCi0Jc3RhdGljIGJ5dGUgY29uc3QgcGFzc2l2ZSBbXSA9IHsNCi0JCTB4RjMsICAgICAgIC8vIERJDQotCQkweENELCAwLCAwLCAvLyBDQUxMIGluaXQNCi0JCTB4RUQsIDB4NUUsIC8vIExPT1A6IElNIDINCi0JCTB4RkIsICAgICAgIC8vIEVJDQotCQkweDc2LCAgICAgICAvLyBIQUxUDQotCQkweDE4LCAweEZBICAvLyBKUiBMT09QDQotCX07DQotCXN0YXRpYyBieXRlIGNvbnN0IGFjdGl2ZSBbXSA9IHsNCi0JCTB4RjMsICAgICAgIC8vIERJDQotCQkweENELCAwLCAwLCAvLyBDQUxMIGluaXQNCi0JCTB4RUQsIDB4NTYsIC8vIExPT1A6IElNIDENCi0JCTB4RkIsICAgICAgIC8vIEVJDQotCQkweDc2LCAgICAgICAvLyBIQUxUDQotCQkweENELCAwLCAwLCAvLyBDQUxMIHBsYXkNCi0JCTB4MTgsIDB4RjcgIC8vIEpSIExPT1ANCi0JfTsNCi0JbWVtY3B5KCBtZW0sIHBhc3NpdmUsIHNpemVvZiBwYXNzaXZlICk7DQotCWludCBjb25zdCBwbGF5X2FkZHIgPSBnZXRfYmUxNiggbW9yZV9kYXRhICsgNCApOw0KLQlpZiAoIHBsYXlfYWRkciApDQotCXsNCi0JCW1lbWNweSggbWVtLCBhY3RpdmUsIHNpemVvZiBhY3RpdmUgKTsNCi0JCW1lbSBbIDldID0gcGxheV9hZGRyOw0KLQkJbWVtIFsxMF0gPSBwbGF5X2FkZHIgPj4gODsNCi0JfQ0KLQltZW0gWzJdID0gaW5pdDsNCi0JbWVtIFszXSA9IGluaXQgPj4gODsNCi0JDQotCW1lbSBbMHgzOF0gPSAweEZCOyAvLyBQdXQgRUkgYXQgaW50ZXJydXB0IHZlY3RvciAoZm9sbG93ZWQgYnkgUkVUKQ0KLQkNCi0JLy8gc3RhcnQgYXQgc3BlY3RydW0gc3BlZWQNCi0JY2hhbmdlX2Nsb2NrX3JhdGUoIHRoaXMsIHNwZWN0cnVtX2Nsb2NrICk7DQotCVNvdW5kX3NldF90ZW1wbyggdGhpcywgdGhpcy0+dGVtcG8gKTsNCi0JDQotCXN0cnVjdCByZWdpc3RlcnNfdCByOw0KLQltZW1zZXQoICZyLCAwLCBzaXplb2Yoc3RydWN0IHJlZ2lzdGVyc190KSApOw0KLQkNCi0Jci5zcCA9IGdldF9iZTE2KCBtb3JlX2RhdGEgKTsNCi0Jci5iLmEgICAgID0gci5iLmIgPSByLmIuZCA9IHIuYi5oID0gZGF0YSBbOF07DQotCXIuYi5mbGFncyA9IHIuYi5jID0gci5iLmUgPSByLmIubCA9IGRhdGEgWzldOw0KLQlyLmFsdC53ID0gci53Ow0KLQlyLml4ID0gci5peSA9IHIudy5obDsNCi0JDQotCW1lbXNldCggdGhpcy0+bWVtLnBhZGRpbmcxLCAweEZGLCBzaXplb2YgdGhpcy0+bWVtLnBhZGRpbmcxICk7DQotCQ0KLQlpbnQgY29uc3QgbWlycm9yZWQgPSAweDgwOyAvLyB0aGlzIG11Y2ggaXMgbWlycm9yZWQgYWZ0ZXIgZW5kIG9mIG1lbW9yeQ0KLQltZW1zZXQoIHRoaXMtPm1lbS5yYW0gKyBtZW1fc2l6ZSArIG1pcnJvcmVkLCAweEZGLCBzaXplb2YgdGhpcy0+bWVtLnJhbSAtIG1lbV9zaXplIC0gbWlycm9yZWQgKTsNCi0JbWVtY3B5KCB0aGlzLT5tZW0ucmFtICsgbWVtX3NpemUsIHRoaXMtPm1lbS5yYW0sIG1pcnJvcmVkICk7IC8vIHNvbWUgY29kZSB3cmFwcyBhcm91bmQgKHVnaCkNCi0JDQotCVo4MF9yZXNldCggJnRoaXMtPmNwdSwgdGhpcy0+bWVtLnBhZGRpbmcxLCB0aGlzLT5tZW0ucGFkZGluZzEgKTsNCi0JWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIDAsIG1lbV9zaXplLCB0aGlzLT5tZW0ucmFtLCB0aGlzLT5tZW0ucmFtICk7DQotCXRoaXMtPmNwdS5yID0gcjsNCi0JDQotCXRoaXMtPmJlZXBlcl9kZWx0YSAgID0gKGludCkgKChheV9hbXBfcmFuZ2UqNCkvNSk7DQotCXRoaXMtPmxhc3RfYmVlcGVyICAgID0gMDsNCi0JdGhpcy0+bmV4dF9wbGF5ICAgICAgPSB0aGlzLT5wbGF5X3BlcmlvZDsNCi0JdGhpcy0+c3BlY3RydW1fbW9kZSAgPSBmYWxzZTsNCi0JdGhpcy0+Y3BjX21vZGUgICAgICAgPSBmYWxzZTsNCi0JdGhpcy0+Y3BjX2xhdGNoICAgICAgPSAwOw0KLQlzZXRfYmVlcGVyX291dHB1dCggdGhpcywgdGhpcy0+YmVlcGVyX291dHB1dCApOw0KLQlBeV9hcHVfcmVzZXQoICZ0aGlzLT5hcHUgKTsNCi0JDQotCS8vIGEgZmV3IHR1bmVzIHJlbHkgb24gY2hhbm5lbHMgaGF2aW5nIHRvbmUgZW5hYmxlZCBhdCB0aGUgYmVnaW5uaW5nDQotCUF5X2FwdV93cml0ZV9hZGRyKCAmdGhpcy0+YXB1LCA3ICk7DQotCUF5X2FwdV93cml0ZV9kYXRhKCAmdGhpcy0+YXB1LCAwLCAweDM4ICk7DQotCQ0KLQkvLyBjb252ZXJ0IGZpbHRlciB0aW1lcyB0byBzYW1wbGVzDQotCXN0cnVjdCBzZXR1cF90IHMgPSB0aGlzLT50ZmlsdGVyOw0KLQlzLm1heF9pbml0aWFsICo9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOw0KLQkjaWZkZWYgR01FX0RJU0FCTEVfU0lMRU5DRV9MT09LQUhFQUQNCi0JCXMubG9va2FoZWFkID0gMTsNCi0JI2VuZGlmDQotCXRyYWNrX3NldHVwKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCAmcyApOw0KLQkNCi0JcmV0dXJuIHRyYWNrX3N0YXJ0KCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7DQotfQ0KLQ0KLS8vIFRlbGwvU2Vlaw0KLQ0KLXN0YXRpYyBpbnQgbXNlY190b19zYW1wbGVzKCBpbnQgbXNlYywgaW50IHNhbXBsZV9yYXRlICkNCi17DQotCWludCBzZWMgPSBtc2VjIC8gMTAwMDsNCi0JbXNlYyAtPSBzZWMgKiAxMDAwOw0KLQlyZXR1cm4gKHNlYyAqIHNhbXBsZV9yYXRlICsgbXNlYyAqIHNhbXBsZV9yYXRlIC8gMTAwMCkgKiBzdGVyZW87DQotfQ0KLQ0KLWludCBUcmFja190ZWxsKCBzdHJ1Y3QgQXlfRW11ICp0aGlzICkNCi17DQotCWludCByYXRlID0gdGhpcy0+c2FtcGxlX3JhdGUgKiBzdGVyZW87DQotCWludCBzZWMgPSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSAvIHJhdGU7DQotCXJldHVybiBzZWMgKiAxMDAwICsgKHRyYWNrX3NhbXBsZV9jb3VudCggJnRoaXMtPnRyYWNrX2ZpbHRlciApIC0gc2VjICogcmF0ZSkgKiAxMDAwIC8gcmF0ZTsNCi19DQotDQotYmxhcmdnX2Vycl90IFRyYWNrX3NlZWsoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBtc2VjICkNCi17DQotCWludCB0aW1lID0gbXNlY190b19zYW1wbGVzKCBtc2VjLCB0aGlzLT5zYW1wbGVfcmF0ZSApOw0KLQlpZiAoIHRpbWUgPCB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSApDQotCVJFVFVSTl9FUlIoIEF5X3N0YXJ0X3RyYWNrKCB0aGlzLCB0aGlzLT5jdXJyZW50X3RyYWNrICkgKTsNCi0JcmV0dXJuIFRyYWNrX3NraXAoIHRoaXMsIHRpbWUgLSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSApOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3Qgc2tpcF8oIHZvaWQgKmVtdSwgaW50IGNvdW50ICkNCi17DQotCXN0cnVjdCBBeV9FbXUqIHRoaXMgPSAoc3RydWN0IEF5X0VtdSopIGVtdTsNCi0JDQotCS8vIGZvciBsb25nIHNraXAsIG11dGUgc291bmQNCi0JY29uc3QgaW50IHRocmVzaG9sZCA9IDMyNzY4Ow0KLQlpZiAoIGNvdW50ID4gdGhyZXNob2xkICkNCi0Jew0KLQkJaW50IHNhdmVkX211dGUgPSB0aGlzLT5tdXRlX21hc2tfOw0KLQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIH4wICk7DQotDQotCQlpbnQgbiA9IGNvdW50IC0gdGhyZXNob2xkLzI7DQotCQluICY9IH4oMjA0OC0xKTsgLy8gcm91bmQgdG8gbXVsdGlwbGUgb2YgMjA0OA0KLQkJY291bnQgLT0gbjsNCi0JCVJFVFVSTl9FUlIoIHNraXBweV8oICZ0aGlzLT50cmFja19maWx0ZXIsIG4gKSApOw0KLQ0KLQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHNhdmVkX211dGUgKTsNCi0JfQ0KLQ0KLQlyZXR1cm4gc2tpcHB5XyggJnRoaXMtPnRyYWNrX2ZpbHRlciwgY291bnQgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IFRyYWNrX3NraXAoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBjb3VudCApDQotew0KLQlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsgLy8gc3RhcnRfdHJhY2soKSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeQ0KLQlyZXR1cm4gdHJhY2tfc2tpcCggJnRoaXMtPnRyYWNrX2ZpbHRlciwgY291bnQgKTsNCi19DQotDQotaW50IFRyYWNrX2dldF9sZW5ndGgoIHN0cnVjdCBBeV9FbXUqIHRoaXMsIGludCBuICkNCi17DQotCWludCBsZW5ndGggPSAwOw0KLQ0KLQlieXRlIGNvbnN0KiB0cmFja19pbmZvID0gZ2V0X2RhdGEoICZ0aGlzLT5maWxlLCB0aGlzLT5maWxlLnRyYWNrcyArIG4gKiA0ICsgMiwgNiApOw0KLQlpZiAoIHRyYWNrX2luZm8gKQ0KLQkJbGVuZ3RoID0gZ2V0X2JlMTYoIHRyYWNrX2luZm8gKyA0ICkgKiAoMTAwMCAvIDUwKTsgLy8gZnJhbWVzIHRvIG1zZWMgDQotDQotCWlmICggKHRoaXMtPm0zdS5zaXplID4gMCkgJiYgKG4gPCB0aGlzLT5tM3Uuc2l6ZSkgKSB7DQotCQlzdHJ1Y3QgZW50cnlfdCogZW50cnkgPSAmdGhpcy0+bTN1LmVudHJpZXMgW25dOw0KLQkJbGVuZ3RoID0gZW50cnktPmxlbmd0aDsNCi0JfSANCi0JDQotCWlmICggbGVuZ3RoIDw9IDAgKQ0KLQkJbGVuZ3RoID0gMTIwICogMTAwMDsgIC8qIDIgbWludXRlcyAqLyANCi0NCi0JcmV0dXJuIGxlbmd0aDsNCi19DQotDQotdm9pZCBUcmFja19zZXRfZmFkZSggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IHN0YXJ0X21zZWMsIGludCBsZW5ndGhfbXNlYyApDQotew0KLQl0cmFja19zZXRfZmFkZSggJnRoaXMtPnRyYWNrX2ZpbHRlciwgbXNlY190b19zYW1wbGVzKCBzdGFydF9tc2VjLCB0aGlzLT5zYW1wbGVfcmF0ZSApLA0KLQkJbGVuZ3RoX21zZWMgKiB0aGlzLT5zYW1wbGVfcmF0ZSAvICgxMDAwIC8gc3RlcmVvKSApOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3QgQXlfcGxheSggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IG91dF9jb3VudCwgc2FtcGxlX3QqIG91dCApDQotew0KLQlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsNCi0JcmVxdWlyZSggb3V0X2NvdW50ICUgc3RlcmVvID09IDAgKTsNCi0JcmV0dXJuIHRyYWNrX3BsYXkoICZ0aGlzLT50cmFja19maWx0ZXIsIG91dF9jb3VudCwgb3V0ICk7DQotfQ0KLQ0KLWJsYXJnZ19lcnJfdCBwbGF5Xyggdm9pZCAqZW11LCBpbnQgY291bnQsIHNhbXBsZV90KiBvdXQgKQ0KLXsNCi0Jc3RydWN0IEF5X0VtdSogdGhpcyA9IChzdHJ1Y3QgQXlfRW11KikgZW11Ow0KLQkNCi0JaW50IHJlbWFpbiA9IGNvdW50Ow0KLQl3aGlsZSAoIHJlbWFpbiApDQotCXsNCi0JCUJ1ZmZlcl9kaXNhYmxlX2ltbWVkaWF0ZV9yZW1vdmFsKCAmdGhpcy0+c3RlcmVvX2J1ZiApOw0KLQkJcmVtYWluIC09IEJ1ZmZlcl9yZWFkX3NhbXBsZXMoICZ0aGlzLT5zdGVyZW9fYnVmLCAmb3V0IFtjb3VudCAtIHJlbWFpbl0sIHJlbWFpbiApOw0KLQkJaWYgKCByZW1haW4gKQ0KLQkJew0KLQkJCWlmICggdGhpcy0+YnVmX2NoYW5nZWRfY291bnQgIT0gQnVmZmVyX2NoYW5uZWxzX2NoYW5nZWRfY291bnQoICZ0aGlzLT5zdGVyZW9fYnVmICkgKQ0KLQkJCXsNCi0JCQkJdGhpcy0+YnVmX2NoYW5nZWRfY291bnQgPSBCdWZmZXJfY2hhbm5lbHNfY2hhbmdlZF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYgKTsNCi0JCQkJDQotCQkJCS8vIFJlbXV0ZSB2b2ljZXMNCi0JCQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsNCi0JCQl9DQotCQkJaW50IG1zZWMgPSBCdWZmZXJfbGVuZ3RoKCAmdGhpcy0+c3RlcmVvX2J1ZiApOw0KLQkJCWJsaXBfdGltZV90IGNsb2Nrc19lbXVsYXRlZCA9IG1zZWMgKiB0aGlzLT5jbG9ja19yYXRlXyAvIDEwMDAgLSAxMDA7DQotCQkJUkVUVVJOX0VSUiggcnVuX2Nsb2NrcyggdGhpcywgJmNsb2Nrc19lbXVsYXRlZCwgbXNlYyApICk7DQotCQkJYXNzZXJ0KCBjbG9ja3NfZW11bGF0ZWQgKTsNCi0JCQlCdWZmZXJfZW5kX2ZyYW1lKCAmdGhpcy0+c3RlcmVvX2J1ZiwgY2xvY2tzX2VtdWxhdGVkICk7DQotCQl9DQotCX0NCi0JcmV0dXJuIDA7DQotfQ0KKy8vIEdhbWVfTXVzaWNfRW11IDAuNi1wcmUuIGh0dHA6Ly93d3cuc2xhY2submV0L35hbnQvCisKKyNpbmNsdWRlICJheV9lbXUuaCIKKworI2luY2x1ZGUgImJsYXJnZ19lbmRpYW4uaCIKKworLyogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDkgU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91CitjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKK3ZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzCittb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCitkZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8KKworI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCIKKworY29uc3QgY2hhciogY29uc3QgZ21lX3dyb25nX2ZpbGVfdHlwZSA9ICJXcm9uZyBmaWxlIHR5cGUgZm9yIHRoaXMgZW11bGF0b3IiOworCisvLyBUT0RPOiBwcm9iYWJseSBkb24ndCBuZWVkIGRldGFpbGVkIGVycm9ycyBhcyB0byB3aHkgZmlsZSBpcyBjb3JydXB0CisKK2ludCBjb25zdCBzcGVjdHJ1bV9jbG9jayA9IDM1NDY5MDA7IC8vIDEyOEsgU3BlY3RydW0KK2ludCBjb25zdCBzcGVjdHJ1bV9wZXJpb2QgPSA3MDkwODsKKworLy9pbnQgY29uc3Qgc3BlY3RydW1fY2xvY2sgPSAzNTAwMDAwOyAvLyA0OEsgU3BlY3RydW0KKy8vaW50IGNvbnN0IHNwZWN0cnVtX3BlcmlvZCA9IDY5ODg4OworCitpbnQgY29uc3QgY3BjX2Nsb2NrID0gMjAwMDAwMDsKKworc3RhdGljIHZvaWQgY2xlYXJfdHJhY2tfdmFycyggc3RydWN0IEF5X0VtdSAqdGhpcyApCit7CisJdGhpcy0+Y3VycmVudF90cmFjayAgICA9IC0xOworCXRyYWNrX3N0b3AoICZ0aGlzLT50cmFja19maWx0ZXIgKTsKK30KKwordm9pZCBBeV9pbml0KCBzdHJ1Y3QgQXlfRW11ICp0aGlzICkKK3sKKwl0aGlzLT5zYW1wbGVfcmF0ZSAgPSAwOworCXRoaXMtPm11dGVfbWFza18gICA9IDA7CisJdGhpcy0+dGVtcG8gICAgICAgID0gKGludClGUF9PTkVfVEVNUE87CisJdGhpcy0+Z2FpbiAgICAgICAgID0gKGludClGUF9PTkVfR0FJTjsKKwl0aGlzLT50cmFja19jb3VudCAgPSAwOworCQorCS8vIGRlZmF1bHRzCisJdGhpcy0+dGZpbHRlciA9ICp0cmFja19nZXRfc2V0dXAoICZ0aGlzLT50cmFja19maWx0ZXIgKTsKKwl0aGlzLT50ZmlsdGVyLm1heF9pbml0aWFsID0gMjsKKwl0aGlzLT50ZmlsdGVyLmxvb2thaGVhZCAgID0gNjsKKwl0aGlzLT50cmFja19maWx0ZXIuc2lsZW5jZV9pZ25vcmVkXyA9IGZhbHNlOworCQorCXRoaXMtPmJlZXBlcl9vdXRwdXQgPSBOVUxMOworCWRpc2FibGVfYmVlcGVyKCB0aGlzICk7CisJCisJQXlfYXB1X2luaXQoICZ0aGlzLT5hcHUgKTsKKwlaODBfaW5pdCggJnRoaXMtPmNwdSApOworCQorCS8vIGNsZWFycyBmaWVsZHMKKwl0aGlzLT52b2ljZV9jb3VudCA9IDA7CisJdGhpcy0+dm9pY2VfdHlwZXMgPSAwOworCWNsZWFyX3RyYWNrX3ZhcnMoIHRoaXMgKTsKK30KKworLy8gVHJhY2sgaW5mbworCisvLyBHaXZlbiBwb2ludGVyIHRvIDItYnl0ZSBvZmZzZXQgb2YgZGF0YSwgcmV0dXJucyBwb2ludGVyIHRvIGRhdGEsIG9yIE5VTEwgaWYKKy8vIG9mZnNldCBpcyAwIG9yIHRoZXJlIGlzIGxlc3MgdGhhbiBtaW5fc2l6ZSBieXRlcyBvZiBkYXRhIGF2YWlsYWJsZS4KK3N0YXRpYyBieXRlIGNvbnN0KiBnZXRfZGF0YSggc3RydWN0IGZpbGVfdCBjb25zdCogZmlsZSwgYnl0ZSBjb25zdCBwdHIgW10sIGludCBtaW5fc2l6ZSApCit7CisJaW50IG9mZnNldCA9IChpbnQxNl90KSBnZXRfYmUxNiggcHRyICk7CisJaW50IHBvcyAgPSBwdHIgLSAoYnl0ZSBjb25zdCopIGZpbGUtPmhlYWRlcjsKKwlpbnQgc2l6ZSA9IGZpbGUtPmVuZCAtIChieXRlIGNvbnN0KikgZmlsZS0+aGVhZGVyOworCWFzc2VydCggKHVuc2lnbmVkKSBwb3MgPD0gKHVuc2lnbmVkKSBzaXplIC0gMiApOworCWludCBsaW1pdCA9IHNpemUgLSBtaW5fc2l6ZTsKKwlpZiAoIGxpbWl0IDwgMCB8fCAhb2Zmc2V0IHx8ICh1bnNpZ25lZCkgKHBvcyArIG9mZnNldCkgPiAodW5zaWduZWQpIGxpbWl0ICkKKwkJcmV0dXJuIE5VTEw7CisJcmV0dXJuIHB0ciArIG9mZnNldDsKK30KKworc3RhdGljIGJsYXJnZ19lcnJfdCBwYXJzZV9oZWFkZXIoIGJ5dGUgY29uc3QgaW4gW10sIGludCBzaXplLCBzdHJ1Y3QgZmlsZV90KiBvdXQgKQoreworCWlmICggc2l6ZSA8IGhlYWRlcl9zaXplICkKKwkJcmV0dXJuIGdtZV93cm9uZ19maWxlX3R5cGU7CisJCisJb3V0LT5oZWFkZXIgPSAoc3RydWN0IGhlYWRlcl90IGNvbnN0KikgaW47CisJb3V0LT5lbmQgICAgPSBpbiArIHNpemU7CisJc3RydWN0IGhlYWRlcl90IGNvbnN0KiBoID0gKHN0cnVjdCBoZWFkZXJfdCBjb25zdCopIGluOworCWlmICggbWVtY21wKCBoLT50YWcsICJaWEFZRU1VTCIsIDggKSApCisJCXJldHVybiBnbWVfd3JvbmdfZmlsZV90eXBlOworCQorCW91dC0+dHJhY2tzID0gZ2V0X2RhdGEoIG91dCwgaC0+dHJhY2tfaW5mbywgKGgtPm1heF90cmFjayArIDEpICogNCApOworCWlmICggIW91dC0+dHJhY2tzICkKKwkJcmV0dXJuICJtaXNzaW5nIHRyYWNrIGRhdGEiOworCisJcmV0dXJuIDA7Cit9CisKKy8vIFNldHVwCisKK3N0YXRpYyB2b2lkIGNoYW5nZV9jbG9ja19yYXRlKCBzdHJ1Y3QgQXlfRW11ICp0aGlzLCBpbnQgcmF0ZSApCit7CisJdGhpcy0+Y2xvY2tfcmF0ZV8gPSByYXRlOworCUJ1ZmZlcl9jbG9ja19yYXRlKCAmdGhpcy0+c3RlcmVvX2J1ZiwgcmF0ZSApOworfQorCitibGFyZ2dfZXJyX3QgQXlfbG9hZF9tZW0oIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGJ5dGUgY29uc3QgaW4gW10sIGxvbmcgc2l6ZSApCit7CisJLy8gVW5sb2FkCisJdGhpcy0+dm9pY2VfY291bnQgPSAwOworCXRoaXMtPnRyYWNrX2NvdW50ID0gMDsKKwl0aGlzLT5tM3Uuc2l6ZSA9IDA7CisJY2xlYXJfdHJhY2tfdmFycyggdGhpcyApOworCisJYXNzZXJ0KCBvZmZzZXRvZiAoc3RydWN0IGhlYWRlcl90LHRyYWNrX2luZm8gWzJdKSA9PSBoZWFkZXJfc2l6ZSApOworCQorCVJFVFVSTl9FUlIoIHBhcnNlX2hlYWRlciggaW4sIHNpemUsICZ0aGlzLT5maWxlICkgKTsKKwkKKwkvKiBpZiAoIGZpbGUuaGVhZGVyLT52ZXJzID4gMiApCisJCXdhcm5pbmcoICJVbmtub3duIGZpbGUgdmVyc2lvbiIgKTsgKi8KKwkKKwl0aGlzLT52b2ljZV9jb3VudCA9IGF5X29zY19jb3VudCArIDE7IC8vICsxIGZvciBiZWVwZXIKKwlzdGF0aWMgaW50IGNvbnN0IHR5cGVzIFtheV9vc2NfY291bnQgKyAxXSA9IHsKKwkJd2F2ZV90eXBlKzAsIHdhdmVfdHlwZSsxLCB3YXZlX3R5cGUrMiwgbWl4ZWRfdHlwZSsxCisJfTsKKwl0aGlzLT52b2ljZV90eXBlcyA9IHR5cGVzOworCQorCUF5X2FwdV92b2x1bWUoICZ0aGlzLT5hcHUsIHRoaXMtPmdhaW4pOworCQorCS8vIFNldHVwIGJ1ZmZlcgorCWNoYW5nZV9jbG9ja19yYXRlKCB0aGlzLCBzcGVjdHJ1bV9jbG9jayApOworCVJFVFVSTl9FUlIoIEJ1ZmZlcl9zZXRfY2hhbm5lbF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYsIHRoaXMtPnZvaWNlX2NvdW50LCB0aGlzLT52b2ljZV90eXBlcyApICk7CisJdGhpcy0+YnVmX2NoYW5nZWRfY291bnQgPSBCdWZmZXJfY2hhbm5lbHNfY2hhbmdlZF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYgKTsKKwkKKwlTb3VuZF9zZXRfdGVtcG8oIHRoaXMsIHRoaXMtPnRlbXBvICk7CisJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsKKwkKKwl0aGlzLT50cmFja19jb3VudCA9IHRoaXMtPmZpbGUuaGVhZGVyLT5tYXhfdHJhY2sgKyAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzZXRfYmVlcGVyX291dHB1dCggc3RydWN0IEF5X0VtdSAqdGhpcywgc3RydWN0IEJsaXBfQnVmZmVyKiBiICkKK3sKKwl0aGlzLT5iZWVwZXJfb3V0cHV0ID0gYjsKKwlpZiAoIGIgJiYgIXRoaXMtPmNwY19tb2RlICkKKwkJdGhpcy0+YmVlcGVyX21hc2sgPSAweDEwOworCWVsc2UKKwkJZGlzYWJsZV9iZWVwZXIoIHRoaXMgKTsKK30KKworc3RhdGljIHZvaWQgc2V0X3ZvaWNlKCBzdHJ1Y3QgQXlfRW11ICp0aGlzLCBpbnQgaSwgc3RydWN0IEJsaXBfQnVmZmVyKiBjZW50ZXIgKQoreworCWlmICggaSA+PSBheV9vc2NfY291bnQgKQorCQlzZXRfYmVlcGVyX291dHB1dCggdGhpcywgY2VudGVyICk7CisJZWxzZQorCQlBeV9hcHVfc2V0X291dHB1dCggJnRoaXMtPmFwdSwgaSwgY2VudGVyICk7Cit9CisKK3N0YXRpYyBibGFyZ2dfZXJyX3QgcnVuX2Nsb2Nrcyggc3RydWN0IEF5X0VtdSAqdGhpcywgYmxpcF90aW1lX3QqIGR1cmF0aW9uLCBpbnQgbXNlYyApCit7CisjaWYgZGVmaW5lZChST0NLQk9YKQorCSh2b2lkKSBtc2VjOworI2VuZGlmCisKKwljcHVfdGltZV90ICplbmQgPSBkdXJhdGlvbjsJCisJc3RydWN0IFo4MF9DcHUqIGNwdSA9ICZ0aGlzLT5jcHU7CisJWjgwX3NldF90aW1lKCBjcHUsIDAgKTsKKwkKKwkvLyBTaW5jZSBkZXRlY3Rpb24gb2YgQ1BDIG1vZGUgd2lsbCBoYWx2ZSBjbG9jayByYXRlIGR1cmluZyB0aGUgZnJhbWUKKwkvLyBhbmQgdGh1cyBnZW5lcmF0ZSB1cCB0byB0d2ljZSBhcyBtdWNoIHNvdW5kLCB3ZSBtdXN0IGdlbmVyYXRlIGhhbGYKKwkvLyBhcyBtdWNoIHVudGlsIG1vZGUgaXMga25vd24uCisJaWYgKCAhKHRoaXMtPnNwZWN0cnVtX21vZGUgfCB0aGlzLT5jcGNfbW9kZSkgKQorCQkqZW5kIC89IDI7CisJCisJd2hpbGUgKCBaODBfdGltZSggY3B1ICkgPCAqZW5kICkKKwl7CisJCXJ1bl9jcHUoIHRoaXMsIG1pbiggKmVuZCwgdGhpcy0+bmV4dF9wbGF5ICkgKTsKKwkJCisJCWlmICggWjgwX3RpbWUoIGNwdSApID49IHRoaXMtPm5leHRfcGxheSApCisJCXsKKwkJCS8vIG5leHQgZnJhbWUKKwkJCXRoaXMtPm5leHRfcGxheSArPSB0aGlzLT5wbGF5X3BlcmlvZDsKKwkJCQorCQkJaWYgKCBjcHUtPnIuaWZmMSApCisJCQl7CisJCQkJLy8gaW50ZXJydXB0IGVuYWJsZWQKKwkJCQkKKwkJCQlpZiAoIHRoaXMtPm1lbS5yYW0gW2NwdS0+ci5wY10gPT0gMHg3NiApCisJCQkJCWNwdS0+ci5wYysrOyAvLyBhZHZhbmNlIHBhc3QgSEFMVCBpbnN0cnVjdGlvbgorCQkJCQorCQkJCWNwdS0+ci5pZmYxID0gMDsKKwkJCQljcHUtPnIuaWZmMiA9IDA7CisJCQkJCisJCQkJdGhpcy0+bWVtLnJhbSBbLS1jcHUtPnIuc3BdID0gKGJ5dGUpIChjcHUtPnIucGMgPj4gOCk7CisJCQkJdGhpcy0+bWVtLnJhbSBbLS1jcHUtPnIuc3BdID0gKGJ5dGUpIChjcHUtPnIucGMpOworCQkJCQorCQkJCS8vIGZpeGVkIGludGVycnVwdAorCQkJCWNwdS0+ci5wYyA9IDB4Mzg7CisJCQkJWjgwX2FkanVzdF90aW1lKCBjcHUsIDEyICk7CisJCQkJCisJCQkJaWYgKCBjcHUtPnIuaW0gPT0gMiApCisJCQkJeworCQkJCQkvLyB2ZWN0b3JlZCBpbnRlcnJ1cHQKKwkJCQkJYWRkcl90IGFkZHIgPSBjcHUtPnIuaSAqIDB4MTAwICsgMHhGRjsKKwkJCQkJY3B1LT5yLnBjID0gdGhpcy0+bWVtLnJhbSBbKGFkZHIgKyAxKSAmIDB4RkZGRl0gKiAweDEwMCArIHRoaXMtPm1lbS5yYW0gW2FkZHJdOworCQkJCQlaODBfYWRqdXN0X3RpbWUoIGNwdSwgNiApOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwkKKwkvLyBFbmQgdGltZSBmcmFtZQorCSplbmQgPSBaODBfdGltZSggY3B1ICk7CisJdGhpcy0+bmV4dF9wbGF5IC09ICplbmQ7CisJY2hlY2soIHRoaXMtPm5leHRfcGxheSA+PSAwICk7CisJWjgwX2FkanVzdF90aW1lKCBjcHUsIC0qZW5kICk7CisJQXlfYXB1X2VuZF9mcmFtZSggJnRoaXMtPmFwdSwgKmVuZCApOworCXJldHVybiAwOworfQorCisvLyBFbXVsYXRpb24KKwordm9pZCBjcHVfb3V0Xyggc3RydWN0IEF5X0VtdSAqdGhpcywgY3B1X3RpbWVfdCB0aW1lLCBhZGRyX3QgYWRkciwgaW50IGRhdGEgKQoreworCS8vIFNwZWN0cnVtCisJaWYgKCAhdGhpcy0+Y3BjX21vZGUgKQorCXsKKwkJc3dpdGNoICggYWRkciAmIDB4RkVGRiApCisJCXsKKwkJY2FzZSAweEZFRkQ6CisJCQl0aGlzLT5zcGVjdHJ1bV9tb2RlID0gdHJ1ZTsKKwkJCUF5X2FwdV93cml0ZV9hZGRyKCAmdGhpcy0+YXB1LCBkYXRhICk7CisJCQlyZXR1cm47CisJCQorCQljYXNlIDB4QkVGRDoKKwkJCXRoaXMtPnNwZWN0cnVtX21vZGUgPSB0cnVlOworCQkJQXlfYXB1X3dyaXRlX2RhdGEoICZ0aGlzLT5hcHUsIHRpbWUsIGRhdGEgKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKwkKKwkvLyBDUEMKKwlpZiAoICF0aGlzLT5zcGVjdHJ1bV9tb2RlICkKKwl7CisJCXN3aXRjaCAoIGFkZHIgPj4gOCApCisJCXsKKwkJY2FzZSAweEY2OgorCQkJc3dpdGNoICggZGF0YSAmIDB4QzAgKQorCQkJeworCQkJY2FzZSAweEMwOgorCQkJCUF5X2FwdV93cml0ZV9hZGRyKCAmdGhpcy0+YXB1LCB0aGlzLT5jcGNfbGF0Y2ggKTsKKwkJCQlnb3RvIGVuYWJsZV9jcGM7CisJCQkKKwkJCWNhc2UgMHg4MDoKKwkJCQlBeV9hcHVfd3JpdGVfZGF0YSggJnRoaXMtPmFwdSwgdGltZSwgdGhpcy0+Y3BjX2xhdGNoICk7CisJCQkJZ290byBlbmFibGVfY3BjOworCQkJfQorCQkJYnJlYWs7CisJCQorCQljYXNlIDB4RjQ6CisJCQl0aGlzLT5jcGNfbGF0Y2ggPSBkYXRhOworCQkJZ290byBlbmFibGVfY3BjOworCQl9CisJfQorCQorCS8qIGRwcmludGYoICJVbm1hcHBlZCBPVVQ6ICQlMDRYIDwtICQlMDJYXG4iLCBhZGRyLCBkYXRhICk7ICovCisJcmV0dXJuOworCQorZW5hYmxlX2NwYzoKKwlpZiAoICF0aGlzLT5jcGNfbW9kZSApCisJeworCQl0aGlzLT5jcGNfbW9kZSA9IHRydWU7CisJCWRpc2FibGVfYmVlcGVyKCB0aGlzICk7CisJCisJCWNoYW5nZV9jbG9ja19yYXRlKCB0aGlzLCBjcGNfY2xvY2sgKTsKKwkJU291bmRfc2V0X3RlbXBvKCB0aGlzLCB0aGlzLT50ZW1wbyApOworCX0KK30KKworYmxhcmdnX2Vycl90IEF5X3NldF9zYW1wbGVfcmF0ZSggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IHJhdGUgKQoreworCXJlcXVpcmUoICF0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyBzYW1wbGUgcmF0ZSBjYW4ndCBiZSBjaGFuZ2VkIG9uY2Ugc2V0CisJQnVmZmVyX2luaXQoICZ0aGlzLT5zdGVyZW9fYnVmICk7CisJUkVUVVJOX0VSUiggQnVmZmVyX3NldF9zYW1wbGVfcmF0ZSggJnRoaXMtPnN0ZXJlb19idWYsIHJhdGUsIDEwMDAgLyAyMCApICk7CisJCisJLy8gU2V0IGJ1ZmZlciBiYXNzCisJQnVmZmVyX2Jhc3NfZnJlcSggJnRoaXMtPnN0ZXJlb19idWYsIDE2MCApOworCQorCXRoaXMtPnNhbXBsZV9yYXRlID0gcmF0ZTsKKwlSRVRVUk5fRVJSKCB0cmFja19pbml0KCAmdGhpcy0+dHJhY2tfZmlsdGVyLCB0aGlzICkgKTsKKwl0aGlzLT50ZmlsdGVyLm1heF9zaWxlbmNlID0gNiAqIHN0ZXJlbyAqIHRoaXMtPnNhbXBsZV9yYXRlOworCXJldHVybiAwOworfQorCit2b2lkIFNvdW5kX211dGVfdm9pY2UoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBpbmRleCwgYm9vbCBtdXRlICkKK3sKKwlyZXF1aXJlKCAodW5zaWduZWQpIGluZGV4IDwgKHVuc2lnbmVkKSB0aGlzLT52b2ljZV9jb3VudCApOworCWludCBiaXQgPSAxIDw8IGluZGV4OworCWludCBtYXNrID0gdGhpcy0+bXV0ZV9tYXNrXyB8IGJpdDsKKwlpZiAoICFtdXRlICkKKwkJbWFzayBePSBiaXQ7CisJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIG1hc2sgKTsKK30KKwordm9pZCBTb3VuZF9tdXRlX3ZvaWNlcyggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IG1hc2sgKQoreworCXJlcXVpcmUoIHRoaXMtPnNhbXBsZV9yYXRlICk7IC8vIHNhbXBsZSByYXRlIG11c3QgYmUgc2V0IGZpcnN0CisJdGhpcy0+bXV0ZV9tYXNrXyA9IG1hc2s7CisJCisJaW50IGk7CisJZm9yICggaSA9IHRoaXMtPnZvaWNlX2NvdW50OyBpLS07ICkKKwl7CisJCWlmICggbWFzayAmICgxIDw8IGkpICkKKwkJeworCQkJc2V0X3ZvaWNlKCB0aGlzLCBpLCAwICk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlzdHJ1Y3QgY2hhbm5lbF90IGNoID0gQnVmZmVyX2NoYW5uZWwoICZ0aGlzLT5zdGVyZW9fYnVmLCBpICk7CisJCQlhc3NlcnQoIChjaC5jZW50ZXIgJiYgY2gubGVmdCAmJiBjaC5yaWdodCkgfHwKKwkJCQkJKCFjaC5jZW50ZXIgJiYgIWNoLmxlZnQgJiYgIWNoLnJpZ2h0KSApOyAvLyBhbGwgb3Igbm90aGluZworCQkJc2V0X3ZvaWNlKCB0aGlzLCBpLCBjaC5jZW50ZXIgKTsKKwkJfQorCX0KK30KKwordm9pZCBTb3VuZF9zZXRfdGVtcG8oIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCB0ICkKK3sKKwlyZXF1aXJlKCB0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyBzYW1wbGUgcmF0ZSBtdXN0IGJlIHNldCBmaXJzdAorCWludCBjb25zdCBtaW4gPSAoaW50KShGUF9PTkVfVEVNUE8qMC4wMik7CisJaW50IGNvbnN0IG1heCA9IChpbnQpKEZQX09ORV9URU1QTyo0LjAwKTsKKwlpZiAoIHQgPCBtaW4gKSB0ID0gbWluOworCWlmICggdCA+IG1heCApIHQgPSBtYXg7CisJdGhpcy0+dGVtcG8gPSB0OworCQorCWludCBwID0gc3BlY3RydW1fcGVyaW9kOworCWlmICggdGhpcy0+Y2xvY2tfcmF0ZV8gIT0gc3BlY3RydW1fY2xvY2sgKQorCQlwID0gdGhpcy0+Y2xvY2tfcmF0ZV8gLyA1MDsKKwkKKwl0aGlzLT5wbGF5X3BlcmlvZCA9IChibGlwX3RpbWVfdCkgKChwICogRlBfT05FX1RFTVBPKSAvIHQpOworfQorCitibGFyZ2dfZXJyX3QgQXlfc3RhcnRfdHJhY2soIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCB0cmFjayApCit7CisJY2xlYXJfdHJhY2tfdmFycyggdGhpcyApOworCQorCS8vIFJlbWFwIHRyYWNrIGlmIHBsYXlsaXN0IGF2YWlsYWJsZQorCWlmICggdGhpcy0+bTN1LnNpemUgPiAwICkgeworCQlzdHJ1Y3QgZW50cnlfdCogZSA9ICZ0aGlzLT5tM3UuZW50cmllc1t0cmFja107CisJCXRyYWNrID0gZS0+dHJhY2s7CisJfQorCQorCXRoaXMtPmN1cnJlbnRfdHJhY2sgPSB0cmFjazsKKwlCdWZmZXJfY2xlYXIoICZ0aGlzLT5zdGVyZW9fYnVmICk7CisJCisJYnl0ZSogY29uc3QgbWVtID0gdGhpcy0+bWVtLnJhbTsKKwkKKwltZW1zZXQoIG1lbSArIDB4MDAwMCwgMHhDOSwgMHgxMDAgKTsgLy8gZmlsbCBSU1QgdmVjdG9ycyB3aXRoIFJFVAorCW1lbXNldCggbWVtICsgMHgwMTAwLCAweEZGLCAweDQwMDAgLSAweDEwMCApOworCW1lbXNldCggbWVtICsgcmFtX2FkZHIsIDB4MDAsIG1lbV9zaXplIC0gcmFtX2FkZHIgKTsKKworCS8vIGxvY2F0ZSBkYXRhIGJsb2NrcworCWJ5dGUgY29uc3QqIGNvbnN0IGRhdGEgPSBnZXRfZGF0YSggJnRoaXMtPmZpbGUsIHRoaXMtPmZpbGUudHJhY2tzICsgdHJhY2sgKiA0ICsgMiwgMTQgKTsKKwlpZiAoICFkYXRhICkKKwkJcmV0dXJuICJmaWxlIGRhdGEgbWlzc2luZyI7CisJCisJYnl0ZSBjb25zdCogY29uc3QgbW9yZV9kYXRhID0gZ2V0X2RhdGEoICZ0aGlzLT5maWxlLCBkYXRhICsgMTAsIDYgKTsKKwlpZiAoICFtb3JlX2RhdGEgKQorCQlyZXR1cm4gImZpbGUgZGF0YSBtaXNzaW5nIjsKKwkKKwlieXRlIGNvbnN0KiBibG9ja3MgPSBnZXRfZGF0YSggJnRoaXMtPmZpbGUsIGRhdGEgKyAxMiwgOCApOworCWlmICggIWJsb2NrcyApCisJCXJldHVybiAiZmlsZSBkYXRhIG1pc3NpbmciOworCQorCS8vIGluaXRpYWwgYWRkcmVzc2VzCisJdW5zaWduZWQgYWRkciA9IGdldF9iZTE2KCBibG9ja3MgKTsKKwlpZiAoICFhZGRyICkKKwkJcmV0dXJuICJmaWxlIGRhdGEgbWlzc2luZyI7CisJCisJdW5zaWduZWQgaW5pdCA9IGdldF9iZTE2KCBtb3JlX2RhdGEgKyAyICk7CisJaWYgKCAhaW5pdCApCisJCWluaXQgPSBhZGRyOworCQorCS8vIGNvcHkgYmxvY2tzIGludG8gbWVtb3J5CisJZG8KKwl7CisJCWJsb2NrcyArPSAyOworCQl1bnNpZ25lZCBsZW4gPSBnZXRfYmUxNiggYmxvY2tzICk7IGJsb2NrcyArPSAyOworCQlpZiAoIGFkZHIgKyBsZW4gPiBtZW1fc2l6ZSApCisJCXsKKwkJCS8qIHdhcm5pbmcoICJCYWQgZGF0YSBibG9jayBzaXplIiApOyAqLworCQkJbGVuID0gbWVtX3NpemUgLSBhZGRyOworCQl9CisJCWNoZWNrKCBsZW4gKTsKKwkJYnl0ZSBjb25zdCogaW4gPSBnZXRfZGF0YSggJnRoaXMtPmZpbGUsIGJsb2NrcywgMCApOyBibG9ja3MgKz0gMjsKKwkJaWYgKCBsZW4gPiAodW5zaWduZWQpICh0aGlzLT5maWxlLmVuZCAtIGluKSApCisJCXsKKwkJCS8qIHdhcm5pbmcoICJGaWxlIGRhdGEgbWlzc2luZyIgKTsgKi8KKwkJCWxlbiA9IHRoaXMtPmZpbGUuZW5kIC0gaW47CisJCX0KKworCQltZW1jcHkoIG1lbSArIGFkZHIsIGluLCBsZW4gKTsKKwkJCisJCWlmICggdGhpcy0+ZmlsZS5lbmQgLSBibG9ja3MgPCA4ICkKKwkJeworCQkJLyogd2FybmluZyggIkZpbGUgZGF0YSBtaXNzaW5nIiApOyAqLworCQkJYnJlYWs7CisJCX0KKwl9CisJd2hpbGUgKCAoYWRkciA9IGdldF9iZTE2KCBibG9ja3MgKSkgIT0gMCApOworCQorCS8vIGNvcHkgYW5kIGNvbmZpZ3VyZSBkcml2ZXIKKwlzdGF0aWMgYnl0ZSBjb25zdCBwYXNzaXZlIFtdID0geworCQkweEYzLCAgICAgICAvLyBESQorCQkweENELCAwLCAwLCAvLyBDQUxMIGluaXQKKwkJMHhFRCwgMHg1RSwgLy8gTE9PUDogSU0gMgorCQkweEZCLCAgICAgICAvLyBFSQorCQkweDc2LCAgICAgICAvLyBIQUxUCisJCTB4MTgsIDB4RkEgIC8vIEpSIExPT1AKKwl9OworCXN0YXRpYyBieXRlIGNvbnN0IGFjdGl2ZSBbXSA9IHsKKwkJMHhGMywgICAgICAgLy8gREkKKwkJMHhDRCwgMCwgMCwgLy8gQ0FMTCBpbml0CisJCTB4RUQsIDB4NTYsIC8vIExPT1A6IElNIDEKKwkJMHhGQiwgICAgICAgLy8gRUkKKwkJMHg3NiwgICAgICAgLy8gSEFMVAorCQkweENELCAwLCAwLCAvLyBDQUxMIHBsYXkKKwkJMHgxOCwgMHhGNyAgLy8gSlIgTE9PUAorCX07CisJbWVtY3B5KCBtZW0sIHBhc3NpdmUsIHNpemVvZiBwYXNzaXZlICk7CisJaW50IGNvbnN0IHBsYXlfYWRkciA9IGdldF9iZTE2KCBtb3JlX2RhdGEgKyA0ICk7CisJaWYgKCBwbGF5X2FkZHIgKQorCXsKKwkJbWVtY3B5KCBtZW0sIGFjdGl2ZSwgc2l6ZW9mIGFjdGl2ZSApOworCQltZW0gWyA5XSA9IHBsYXlfYWRkcjsKKwkJbWVtIFsxMF0gPSBwbGF5X2FkZHIgPj4gODsKKwl9CisJbWVtIFsyXSA9IGluaXQ7CisJbWVtIFszXSA9IGluaXQgPj4gODsKKwkKKwltZW0gWzB4MzhdID0gMHhGQjsgLy8gUHV0IEVJIGF0IGludGVycnVwdCB2ZWN0b3IgKGZvbGxvd2VkIGJ5IFJFVCkKKwkKKwkvLyBzdGFydCBhdCBzcGVjdHJ1bSBzcGVlZAorCWNoYW5nZV9jbG9ja19yYXRlKCB0aGlzLCBzcGVjdHJ1bV9jbG9jayApOworCVNvdW5kX3NldF90ZW1wbyggdGhpcywgdGhpcy0+dGVtcG8gKTsKKwkKKwlzdHJ1Y3QgcmVnaXN0ZXJzX3QgcjsKKwltZW1zZXQoICZyLCAwLCBzaXplb2Yoc3RydWN0IHJlZ2lzdGVyc190KSApOworCQorCXIuc3AgPSBnZXRfYmUxNiggbW9yZV9kYXRhICk7CisJci5iLmEgICAgID0gci5iLmIgPSByLmIuZCA9IHIuYi5oID0gZGF0YSBbOF07CisJci5iLmZsYWdzID0gci5iLmMgPSByLmIuZSA9IHIuYi5sID0gZGF0YSBbOV07CisJci5hbHQudyA9IHIudzsKKwlyLml4ID0gci5peSA9IHIudy5obDsKKwkKKwltZW1zZXQoIHRoaXMtPm1lbS5wYWRkaW5nMSwgMHhGRiwgc2l6ZW9mIHRoaXMtPm1lbS5wYWRkaW5nMSApOworCQorCWludCBjb25zdCBtaXJyb3JlZCA9IDB4ODA7IC8vIHRoaXMgbXVjaCBpcyBtaXJyb3JlZCBhZnRlciBlbmQgb2YgbWVtb3J5CisJbWVtc2V0KCB0aGlzLT5tZW0ucmFtICsgbWVtX3NpemUgKyBtaXJyb3JlZCwgMHhGRiwgc2l6ZW9mIHRoaXMtPm1lbS5yYW0gLSBtZW1fc2l6ZSAtIG1pcnJvcmVkICk7CisJbWVtY3B5KCB0aGlzLT5tZW0ucmFtICsgbWVtX3NpemUsIHRoaXMtPm1lbS5yYW0sIG1pcnJvcmVkICk7IC8vIHNvbWUgY29kZSB3cmFwcyBhcm91bmQgKHVnaCkKKwkKKwlaODBfcmVzZXQoICZ0aGlzLT5jcHUsIHRoaXMtPm1lbS5wYWRkaW5nMSwgdGhpcy0+bWVtLnBhZGRpbmcxICk7CisJWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIDAsIG1lbV9zaXplLCB0aGlzLT5tZW0ucmFtLCB0aGlzLT5tZW0ucmFtICk7CisJdGhpcy0+Y3B1LnIgPSByOworCQorCXRoaXMtPmJlZXBlcl9kZWx0YSAgID0gKGludCkgKChheV9hbXBfcmFuZ2UqNCkvNSk7CisJdGhpcy0+bGFzdF9iZWVwZXIgICAgPSAwOworCXRoaXMtPm5leHRfcGxheSAgICAgID0gdGhpcy0+cGxheV9wZXJpb2Q7CisJdGhpcy0+c3BlY3RydW1fbW9kZSAgPSBmYWxzZTsKKwl0aGlzLT5jcGNfbW9kZSAgICAgICA9IGZhbHNlOworCXRoaXMtPmNwY19sYXRjaCAgICAgID0gMDsKKwlzZXRfYmVlcGVyX291dHB1dCggdGhpcywgdGhpcy0+YmVlcGVyX291dHB1dCApOworCUF5X2FwdV9yZXNldCggJnRoaXMtPmFwdSApOworCQorCS8vIGEgZmV3IHR1bmVzIHJlbHkgb24gY2hhbm5lbHMgaGF2aW5nIHRvbmUgZW5hYmxlZCBhdCB0aGUgYmVnaW5uaW5nCisJQXlfYXB1X3dyaXRlX2FkZHIoICZ0aGlzLT5hcHUsIDcgKTsKKwlBeV9hcHVfd3JpdGVfZGF0YSggJnRoaXMtPmFwdSwgMCwgMHgzOCApOworCQorCS8vIGNvbnZlcnQgZmlsdGVyIHRpbWVzIHRvIHNhbXBsZXMKKwlzdHJ1Y3Qgc2V0dXBfdCBzID0gdGhpcy0+dGZpbHRlcjsKKwlzLm1heF9pbml0aWFsICo9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOworCSNpZmRlZiBHTUVfRElTQUJMRV9TSUxFTkNFX0xPT0tBSEVBRAorCQlzLmxvb2thaGVhZCA9IDE7CisJI2VuZGlmCisJdHJhY2tfc2V0dXAoICZ0aGlzLT50cmFja19maWx0ZXIsICZzICk7CisJCisJcmV0dXJuIHRyYWNrX3N0YXJ0KCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7Cit9CisKKy8vIFRlbGwvU2VlaworCitzdGF0aWMgaW50IG1zZWNfdG9fc2FtcGxlcyggaW50IG1zZWMsIGludCBzYW1wbGVfcmF0ZSApCit7CisJaW50IHNlYyA9IG1zZWMgLyAxMDAwOworCW1zZWMgLT0gc2VjICogMTAwMDsKKwlyZXR1cm4gKHNlYyAqIHNhbXBsZV9yYXRlICsgbXNlYyAqIHNhbXBsZV9yYXRlIC8gMTAwMCkgKiBzdGVyZW87Cit9CisKK2ludCBUcmFja190ZWxsKCBzdHJ1Y3QgQXlfRW11ICp0aGlzICkKK3sKKwlpbnQgcmF0ZSA9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOworCWludCBzZWMgPSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSAvIHJhdGU7CisJcmV0dXJuIHNlYyAqIDEwMDAgKyAodHJhY2tfc2FtcGxlX2NvdW50KCAmdGhpcy0+dHJhY2tfZmlsdGVyICkgLSBzZWMgKiByYXRlKSAqIDEwMDAgLyByYXRlOworfQorCitibGFyZ2dfZXJyX3QgVHJhY2tfc2Vlayggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IG1zZWMgKQoreworCWludCB0aW1lID0gbXNlY190b19zYW1wbGVzKCBtc2VjLCB0aGlzLT5zYW1wbGVfcmF0ZSApOworCWlmICggdGltZSA8IHRyYWNrX3NhbXBsZV9jb3VudCggJnRoaXMtPnRyYWNrX2ZpbHRlciApICkKKwlSRVRVUk5fRVJSKCBBeV9zdGFydF90cmFjayggdGhpcywgdGhpcy0+Y3VycmVudF90cmFjayApICk7CisJcmV0dXJuIFRyYWNrX3NraXAoIHRoaXMsIHRpbWUgLSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSApOworfQorCitibGFyZ2dfZXJyX3Qgc2tpcF8oIHZvaWQgKmVtdSwgaW50IGNvdW50ICkKK3sKKwlzdHJ1Y3QgQXlfRW11KiB0aGlzID0gKHN0cnVjdCBBeV9FbXUqKSBlbXU7CisJCisJLy8gZm9yIGxvbmcgc2tpcCwgbXV0ZSBzb3VuZAorCWNvbnN0IGludCB0aHJlc2hvbGQgPSAzMjc2ODsKKwlpZiAoIGNvdW50ID4gdGhyZXNob2xkICkKKwl7CisJCWludCBzYXZlZF9tdXRlID0gdGhpcy0+bXV0ZV9tYXNrXzsKKwkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIH4wICk7CisKKwkJaW50IG4gPSBjb3VudCAtIHRocmVzaG9sZC8yOworCQluICY9IH4oMjA0OC0xKTsgLy8gcm91bmQgdG8gbXVsdGlwbGUgb2YgMjA0OAorCQljb3VudCAtPSBuOworCQlSRVRVUk5fRVJSKCBza2lwcHlfKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCBuICkgKTsKKworCQlTb3VuZF9tdXRlX3ZvaWNlcyggdGhpcywgc2F2ZWRfbXV0ZSApOworCX0KKworCXJldHVybiBza2lwcHlfKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCBjb3VudCApOworfQorCitibGFyZ2dfZXJyX3QgVHJhY2tfc2tpcCggc3RydWN0IEF5X0VtdSAqdGhpcywgaW50IGNvdW50ICkKK3sKKwlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsgLy8gc3RhcnRfdHJhY2soKSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeQorCXJldHVybiB0cmFja19za2lwKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCBjb3VudCApOworfQorCitpbnQgVHJhY2tfZ2V0X2xlbmd0aCggc3RydWN0IEF5X0VtdSogdGhpcywgaW50IG4gKQoreworCWludCBsZW5ndGggPSAwOworCisJYnl0ZSBjb25zdCogdHJhY2tfaW5mbyA9IGdldF9kYXRhKCAmdGhpcy0+ZmlsZSwgdGhpcy0+ZmlsZS50cmFja3MgKyBuICogNCArIDIsIDYgKTsKKwlpZiAoIHRyYWNrX2luZm8gKQorCQlsZW5ndGggPSBnZXRfYmUxNiggdHJhY2tfaW5mbyArIDQgKSAqICgxMDAwIC8gNTApOyAvLyBmcmFtZXMgdG8gbXNlYyAKKworCWlmICggKHRoaXMtPm0zdS5zaXplID4gMCkgJiYgKG4gPCB0aGlzLT5tM3Uuc2l6ZSkgKSB7CisJCXN0cnVjdCBlbnRyeV90KiBlbnRyeSA9ICZ0aGlzLT5tM3UuZW50cmllcyBbbl07CisJCWxlbmd0aCA9IGVudHJ5LT5sZW5ndGg7CisJfSAKKwkKKwlpZiAoIGxlbmd0aCA8PSAwICkKKwkJbGVuZ3RoID0gMTIwICogMTAwMDsgIC8qIDIgbWludXRlcyAqLyAKKworCXJldHVybiBsZW5ndGg7Cit9CisKK3ZvaWQgVHJhY2tfc2V0X2ZhZGUoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBzdGFydF9tc2VjLCBpbnQgbGVuZ3RoX21zZWMgKQoreworCXRyYWNrX3NldF9mYWRlKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCBtc2VjX3RvX3NhbXBsZXMoIHN0YXJ0X21zZWMsIHRoaXMtPnNhbXBsZV9yYXRlICksCisJCWxlbmd0aF9tc2VjICogdGhpcy0+c2FtcGxlX3JhdGUgLyAoMTAwMCAvIHN0ZXJlbykgKTsKK30KKworYmxhcmdnX2Vycl90IEF5X3BsYXkoIHN0cnVjdCBBeV9FbXUgKnRoaXMsIGludCBvdXRfY291bnQsIHNhbXBsZV90KiBvdXQgKQoreworCXJlcXVpcmUoIHRoaXMtPmN1cnJlbnRfdHJhY2sgPj0gMCApOworCXJlcXVpcmUoIG91dF9jb3VudCAlIHN0ZXJlbyA9PSAwICk7CisJcmV0dXJuIHRyYWNrX3BsYXkoICZ0aGlzLT50cmFja19maWx0ZXIsIG91dF9jb3VudCwgb3V0ICk7Cit9CisKK2JsYXJnZ19lcnJfdCBwbGF5Xyggdm9pZCAqZW11LCBpbnQgY291bnQsIHNhbXBsZV90KiBvdXQgKQoreworCXN0cnVjdCBBeV9FbXUqIHRoaXMgPSAoc3RydWN0IEF5X0VtdSopIGVtdTsKKwkKKwlpbnQgcmVtYWluID0gY291bnQ7CisJd2hpbGUgKCByZW1haW4gKQorCXsKKwkJQnVmZmVyX2Rpc2FibGVfaW1tZWRpYXRlX3JlbW92YWwoICZ0aGlzLT5zdGVyZW9fYnVmICk7CisJCXJlbWFpbiAtPSBCdWZmZXJfcmVhZF9zYW1wbGVzKCAmdGhpcy0+c3RlcmVvX2J1ZiwgJm91dCBbY291bnQgLSByZW1haW5dLCByZW1haW4gKTsKKwkJaWYgKCByZW1haW4gKQorCQl7CisJCQlpZiAoIHRoaXMtPmJ1Zl9jaGFuZ2VkX2NvdW50ICE9IEJ1ZmZlcl9jaGFubmVsc19jaGFuZ2VkX2NvdW50KCAmdGhpcy0+c3RlcmVvX2J1ZiApICkKKwkJCXsKKwkJCQl0aGlzLT5idWZfY2hhbmdlZF9jb3VudCA9IEJ1ZmZlcl9jaGFubmVsc19jaGFuZ2VkX2NvdW50KCAmdGhpcy0+c3RlcmVvX2J1ZiApOworCQkJCQorCQkJCS8vIFJlbXV0ZSB2b2ljZXMKKwkJCQlTb3VuZF9tdXRlX3ZvaWNlcyggdGhpcywgdGhpcy0+bXV0ZV9tYXNrXyApOworCQkJfQorCQkJaW50IG1zZWMgPSBCdWZmZXJfbGVuZ3RoKCAmdGhpcy0+c3RlcmVvX2J1ZiApOworCQkJYmxpcF90aW1lX3QgY2xvY2tzX2VtdWxhdGVkID0gbXNlYyAqIHRoaXMtPmNsb2NrX3JhdGVfIC8gMTAwMCAtIDEwMDsKKwkJCVJFVFVSTl9FUlIoIHJ1bl9jbG9ja3MoIHRoaXMsICZjbG9ja3NfZW11bGF0ZWQsIG1zZWMgKSApOworCQkJYXNzZXJ0KCBjbG9ja3NfZW11bGF0ZWQgKTsKKwkJCUJ1ZmZlcl9lbmRfZnJhbWUoICZ0aGlzLT5zdGVyZW9fYnVmLCBjbG9ja3NfZW11bGF0ZWQgKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9ibGFyZ2dfY29uZmlnLmggYi9hcHBzL2NvZGVjcy9saWJnbWUvYmxhcmdnX2NvbmZpZy5oCmluZGV4IDY0OTBjMTUuLjM5ODkxM2QgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9ibGFyZ2dfY29uZmlnLmgKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL2JsYXJnZ19jb25maWcuaApAQCAtMSw0MiArMSw0MiBAQAotLy8gTGlicmFyeSBjb25maWd1cmF0aW9uLiBNb2RpZnkgdGhpcyBmaWxlIGFzIG5lY2Vzc2FyeS4NCi0NCi0jaWZuZGVmIEJMQVJHR19DT05GSUdfSA0KLSNkZWZpbmUgQkxBUkdHX0NPTkZJR19IDQotDQotLy8gVW5jb21tZW50IHRvIGVuYWJsZSBwbGF0Zm9ybS1zcGVjaWZpYyBvcHRpbWl6YXRpb25zDQotLy8jZGVmaW5lIEJMQVJHR19OT05QT1JUQUJMRSAxDQotDQotLy8gVW5jb21tZW50IGlmIGF1dG9tYXRpYyBieXRlLW9yZGVyIGRldGVybWluYXRpb24gZG9lc24ndCB3b3JrDQotI2lmZGVmIFJPQ0tCT1hfQklHX0VORElBTg0KLQkjZGVmaW5lIEJMQVJHR19CSUdfRU5ESUFOIDENCi0jZW5kaWYNCi0NCi0vLyBVbmNvbW1lbnQgaWYgeW91IGdldCBlcnJvcnMgaW4gdGhlIGJvb2wgc2VjdGlvbiBvZiBibGFyZ2dfY29tbW9uLmgNCi0jZGVmaW5lIEJMQVJHR19DT01QSUxFUl9IQVNfQk9PTCAxDQotDQotLy8gVW5jb21tZW50IHRvIHVzZSBmYXN0IGdiIGFwdSBpbXBsZW1lbnRhdGlvbg0KLS8vICNkZWZpbmUgR0JfQVBVX0ZBU1QgMQ0KLQ0KLS8vIFVuY29tbWVudCB0byByZW1vdmUgYWdiIGVtdWxhdGlvbiBzdXBwb3J0DQotLy8gI2RlZmluZSBHQl9BUFVfTk9fQUdCIDENCi0NCi0vLyBVbmNvbW1lbnQgdG8gZW11bGF0ZSBvbmx5IG5lcyBhcHUNCi0vLyAjZGVmaW5lIE5TRl9FTVVfQVBVX09OTFkgMQ0KLQ0KLS8vIFVuY29tbWVudCB0byByZW1vdmUgdnJjNyBhcHUgc3VwcG9ydA0KLS8vICNkZWZpbmUgTlNGX0VNVV9OT19WUkM3IDENCi0NCi0vLyBVbmNvbW1lbnQgdG8gcmVtb3ZlIGZtb3BsIGFwdSBzdXBwb3J0DQotLy8gI2RlZmluZSBLU1NfRU1VX05PX0ZNT1BMIDENCi0NCi0vLyBUbyBoYW5kbGUgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBhc3NlcnQNCi0jZGVmaW5lIE5ERUJVRyAxDQotDQotLy8gVXNlIHN0YW5kYXJkIGNvbmZpZy5oIGlmIHByZXNlbnQNCi0jZGVmaW5lIEhBVkVfQ09ORklHX0ggMQ0KLQ0KLSNpZmRlZiBIQVZFX0NPTkZJR19IDQotCSNpbmNsdWRlICJjb25maWcuaCINCi0jZW5kaWYNCi0NCi0jZW5kaWYNCisvLyBMaWJyYXJ5IGNvbmZpZ3VyYXRpb24uIE1vZGlmeSB0aGlzIGZpbGUgYXMgbmVjZXNzYXJ5LgorCisjaWZuZGVmIEJMQVJHR19DT05GSUdfSAorI2RlZmluZSBCTEFSR0dfQ09ORklHX0gKKworLy8gVW5jb21tZW50IHRvIGVuYWJsZSBwbGF0Zm9ybS1zcGVjaWZpYyBvcHRpbWl6YXRpb25zCisvLyNkZWZpbmUgQkxBUkdHX05PTlBPUlRBQkxFIDEKKworLy8gVW5jb21tZW50IGlmIGF1dG9tYXRpYyBieXRlLW9yZGVyIGRldGVybWluYXRpb24gZG9lc24ndCB3b3JrCisjaWZkZWYgUk9DS0JPWF9CSUdfRU5ESUFOCisJI2RlZmluZSBCTEFSR0dfQklHX0VORElBTiAxCisjZW5kaWYKKworLy8gVW5jb21tZW50IGlmIHlvdSBnZXQgZXJyb3JzIGluIHRoZSBib29sIHNlY3Rpb24gb2YgYmxhcmdnX2NvbW1vbi5oCisjZGVmaW5lIEJMQVJHR19DT01QSUxFUl9IQVNfQk9PTCAxCisKKy8vIFVuY29tbWVudCB0byB1c2UgZmFzdCBnYiBhcHUgaW1wbGVtZW50YXRpb24KKy8vICNkZWZpbmUgR0JfQVBVX0ZBU1QgMQorCisvLyBVbmNvbW1lbnQgdG8gcmVtb3ZlIGFnYiBlbXVsYXRpb24gc3VwcG9ydAorLy8gI2RlZmluZSBHQl9BUFVfTk9fQUdCIDEKKworLy8gVW5jb21tZW50IHRvIGVtdWxhdGUgb25seSBuZXMgYXB1CisvLyAjZGVmaW5lIE5TRl9FTVVfQVBVX09OTFkgMQorCisvLyBVbmNvbW1lbnQgdG8gcmVtb3ZlIHZyYzcgYXB1IHN1cHBvcnQKKy8vICNkZWZpbmUgTlNGX0VNVV9OT19WUkM3IDEKKworLy8gVW5jb21tZW50IHRvIHJlbW92ZSBmbW9wbCBhcHUgc3VwcG9ydAorLy8gI2RlZmluZSBLU1NfRU1VX05PX0ZNT1BMIDEKKworLy8gVG8gaGFuZGxlIHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYXNzZXJ0CisjZGVmaW5lIE5ERUJVRyAxCisKKy8vIFVzZSBzdGFuZGFyZCBjb25maWcuaCBpZiBwcmVzZW50CisjZGVmaW5lIEhBVkVfQ09ORklHX0ggMQorCisjaWZkZWYgSEFWRV9DT05GSUdfSAorCSNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9lbXUyNDEzLmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvZW11MjQxMy5jCmluZGV4IGE0NjM3Y2UuLjAxMDc1ODIgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9lbXUyNDEzLmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL2VtdTI0MTMuYwpAQCAtMSwxOTgxICsxLDE5ODEgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLQ0KLSAgZW11MjQxMy5jIC0tIFlNMjQxMyBlbXVsYXRvciB3cml0dGVuIGJ5IE1pdHN1dGFrYSBPa2F6YWtpIDIwMDENCi0NCi0gIDIwMDEgMDEtMDggOiBWZXJzaW9uIDAuMTAgLS0gMXN0IHZlcnNpb24uDQotICAyMDAxIDAxLTE1IDogVmVyc2lvbiAwLjIwIC0tIHNlbWktcHVibGljIHZlcnNpb24uDQotICAyMDAxIDAxLTE2IDogVmVyc2lvbiAwLjMwIC0tIDFzdCBwdWJsaWMgdmVyc2lvbi4NCi0gIDIwMDEgMDEtMTcgOiBWZXJzaW9uIDAuMzEgLS0gRml4ZWQgYmFzc2RydW0gcHJvYmxlbS4NCi0gICAgICAgICAgICAgOiBWZXJzaW9uIDAuMzIgLS0gTFBGIGltcGxlbWVudGVkLg0KLSAgMjAwMSAwMS0xOCA6IFZlcnNpb24gMC4zMyAtLSBGaXhlZCB0aGUgZHJ1bSBwcm9ibGVtLCByZWZpbmUgdGhlIG1peC1kb3duIG1ldGhvZC4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRml4ZWQgdGhlIExGTyBidWcuDQotICAyMDAxIDAxLTI0IDogVmVyc2lvbiAwLjM1IC0tIEZpeGVkIHRoZSBkcnVtIHByb2JsZW0sIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0IHVuZG9jdW1lbnRlZCBFRyBiZWhhdmlvci4NCi0gIDIwMDEgMDItMDIgOiBWZXJzaW9uIDAuMzggLS0gSW1wcm92ZWQgdGhlIHBlcmZvcm1hbmNlLg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXhlZCB0aGUgaGktaGF0IGFuZCBjeW1iYWwgbW9kZWwuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIHRoZSBkZWZhdWx0IHBlcmN1c3NpdmUgZGF0YXMuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vaXNlIHJlZHVjdGlvbi4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRml4ZWQgdGhlIGZlZWRiYWNrIHByb2JsZW0uDQotICAyMDAxIDAzLTAzIDogVmVyc2lvbiAwLjM5IC0tIEZpeGVkIHNvbWUgZHJ1bSBidWdzLg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgcGVyZm9ybWFuY2UuDQotICAyMDAxIDAzLTA0IDogVmVyc2lvbiAwLjQwIC0tIEltcHJvdmVkIHRoZSBmZWVkYmFjay4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIHRoZSBkZWZhdWx0IHRhYmxlIHNpemUuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrIGFuZCBSYXRlIGNhbiBiZSBjaGFuZ2VkIGR1cmluZyBwbGF5Lg0KLSAgMjAwMSAwNi0yNCA6IFZlcnNpb24gMC41MCAtLSBJbXByb3ZlZCB0aGUgaGktaGF0IGFuZCB0aGUgY3ltYmFsIHRvbmUuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIFZSQzcgcGF0Y2ggKE9QTExfcmVzZXRfcGF0Y2ggaXMgY2hhbmdlZCkuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIE9QTExfcmVzZXQoKSBidWcuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE9QTExfc2V0TWFzaywgT1BMTF9nZXRNYXNrIGFuZCBPUExMX3RvZ2dsZU1hc2suDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIE9QTExfd3JpdGVJTy4NCi0gIDIwMDEgMDktMjggOiBWZXJzaW9uIDAuNTEgLS0gUmVtb3ZlZCB0aGUgbm9pc2UgdGFibGUuDQotICAyMDAyIDAxLTI4IDogVmVyc2lvbiAwLjUyIC0tIEFkZGVkIFN0ZXJlbyBtb2RlLg0KLSAgMjAwMiAwMi0wNyA6IFZlcnNpb24gMC41MyAtLSBGaXhlZCBzb21lIGRydW0gYnVncy4NCi0gIDIwMDIgMDItMjAgOiBWZXJzaW9uIDAuNTQgLS0gQWRkZWQgdGhlIGJlc3QgcXVhbGl0eSBtb2RlLg0KLSAgMjAwMiAwMy0wMiA6IFZlcnNpb24gMC41NSAtLSBSZW1vdmVkIE9QTExfaW5pdCAmIE9QTExfY2xvc2UuDQotICAyMDAyIDA1LTMwIDogVmVyc2lvbiAwLjYwIC0tIEZpeGVkIEhIJkNZTSBnZW5lcmF0b3IgYW5kIGFsbCB2b2ljZSBkYXRhcy4NCi0gIDIwMDQgMDQtMTAgOiBWZXJzaW9uIDAuNjEgLS0gQWRkZWQgWU1GMjgxQiB0b25lIChkZWZpbmVkIGJ5IENoYWJpbikuDQotICANCi0gIDIwMTEgMDMtMjIgOiAtLS0tLS0tLS0tLS0tLS0gTW9kaWZpZWQgYnkgZ2FtYSB0byB1c2UgcHJlY2FsY3VsYXRlZCB0YWJsZXMuDQotDQotICBSZWZlcmVuY2VzOiANCi0gICAgZm1vcGwuYyAgICAgICAgLS0gMTk5OSwyMDAwIHdyaXR0ZW4gYnkgVGF0c3V5dWtpIFNhdG9oIChNQU1FIGRldmVsb3BtZW50KS4NCi0gICAgZm1vcGwuYyhmaXhlZCkgLS0gKEMpIDIwMDIgSmFyZWsgQnVyY3p5bnNraS4NCi0gICAgc19vcGwuYyAgICAgICAgLS0gMjAwMSB3cml0dGVuIGJ5IE1hbWl5YSAoTkVacGx1ZyBkZXZlbG9wbWVudCkuDQotICAgIGZtZ2VuLmNwcCAgICAgIC0tIDE5OTksMjAwMCB3cml0dGVuIGJ5IGNpc2MuDQotICAgIGZtcGFjLmlsbCAgICAgIC0tIDIwMDAgY3JlYXRlZCBieSBOQVJVVE8uDQotICAgIE1TWC1EYXRhcGFjaw0KLSAgICBZTVU3NTcgZGF0YSBzaGVldA0KLSAgICBZTTIxNDMgZGF0YSBzaGVldA0KLQ0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLSNpbmNsdWRlIDxzdGRpby5oPg0KLSNpbmNsdWRlIDxzdGRsaWIuaD4NCi0jaW5jbHVkZSA8c3RyaW5nLmg+DQotI2luY2x1ZGUgPG1hdGguaD4NCi0jaW5jbHVkZSAiZW11MjQxMy5oIg0KLQ0KLSNpbmNsdWRlICJlbXV0YWJsZXMuaCINCi0jaWYgIWRlZmluZWQoUk9DS0JPWCkNCi0JI2RlZmluZSBFTVUyNDEzX0NBTENVTF9UQUJMRVMNCi0jZWxzZQ0KLQkjZGVmaW5lIEVNVTI0MTNfQ09NUEFDVElPTg0KLQkjaW5jbHVkZSAiZW11dGFibGVzLmgiDQotI2VuZGlmDQotDQotI2lmIGRlZmluZWQoRU1VMjQxM19DT01QQUNUSU9OKSAmJiAhZGVmaW5lZChST0NLQk9YKQ0KLSNkZWZpbmUgT1BMTF9UT05FX05VTSAxDQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZGVmYXVsdF9pbnN0W09QTExfVE9ORV9OVU1dWygxNiArIDMpICogMTZdID0gew0KLSAgew0KLSNpbmNsdWRlICIyNDEzdG9uZS5oIg0KLSAgIH0NCi19Ow0KLSNlbHNlDQotI2RlZmluZSBPUExMX1RPTkVfTlVNIDMNCi1zdGF0aWMgdW5zaWduZWQgY2hhciBkZWZhdWx0X2luc3RbT1BMTF9UT05FX05VTV1bKDE2ICsgMykgKiAxNl0gPSB7DQotICB7IA0KLSNpbmNsdWRlICIyNDEzdG9uZS5oIiANCi0gIH0sDQotICB7DQotI2luY2x1ZGUgInZyYzd0b25lLmgiDQotICAgfSwNCi0gIHsNCi0jaW5jbHVkZSAiMjgxYnRvbmUuaCINCi0gIH0NCi19Ow0KLSNlbmRpZg0KLQ0KLS8qIFNpemUgb2YgU2ludGFibGUgKCA4IC0tIDE4IGNhbiBiZSB1c2VkLiA5IHJlY29tbWVuZGVkLikgKi8NCi0jZGVmaW5lIFBHX0JJVFMgOQ0KLSNkZWZpbmUgUEdfV0lEVEggKDE8PFBHX0JJVFMpDQotDQotLyogUGhhc2UgaW5jcmVtZW50IGNvdW50ZXIgKi8NCi0jZGVmaW5lIERQX0JJVFMgMTgNCi0jZGVmaW5lIERQX1dJRFRIICgxPDxEUF9CSVRTKQ0KLSNkZWZpbmUgRFBfQkFTRV9CSVRTIChEUF9CSVRTIC0gUEdfQklUUykNCi0NCi0vKiBEeW5hbWljIHJhbmdlIChBY2N1cmFjeSBvZiBzaW4gdGFibGUpICovDQotI2RlZmluZSBEQl9QUkVDIDQ4DQotI2RlZmluZSBEQl9CSVRTIDgNCi0jZGVmaW5lIERCX1NURVAgKChkb3VibGUpREJfUFJFQy8oMTw8REJfQklUUykpDQotI2RlZmluZSBEQl9NVVRFICgxPDxEQl9CSVRTKQ0KLQ0KLS8qIER5bmFtaWMgcmFuZ2Ugb2YgZW52ZWxvcGUgKi8NCi0jZGVmaW5lIEVHX1NURVAgMC4zNzUNCi0jZGVmaW5lIEVHX0JJVFMgNw0KLSNkZWZpbmUgRUdfTVVURSAoMTw8RUdfQklUUykNCi0NCi0vKiBEeW5hbWljIHJhbmdlIG9mIHRvdGFsIGxldmVsICovDQotI2RlZmluZSBUTF9TVEVQIDAuNzUNCi0jZGVmaW5lIFRMX0JJVFMgNg0KLSNkZWZpbmUgVExfTVVURSAoMTw8VExfQklUUykNCi0NCi0vKiBEeW5hbWljIHJhbmdlIG9mIHN1c3RpbmUgbGV2ZWwgKi8NCi0jZGVmaW5lIFNMX1NURVAgMy4wDQotI2RlZmluZSBTTF9CSVRTIDQNCi0jZGVmaW5lIFNMX01VVEUgKDE8PFNMX0JJVFMpDQotDQotI2RlZmluZSBFRzJEQihkKSAoKGQpKihlX2ludDMyKShFR19TVEVQL0RCX1NURVApKQ0KLSNkZWZpbmUgVEwyRUcoZCkgKChkKSooZV9pbnQzMikoVExfU1RFUC9FR19TVEVQKSkNCi0jZGVmaW5lIFNMMkVHKGQpICgoZCkqKGVfaW50MzIpKFNMX1NURVAvRUdfU1RFUCkpDQotDQotI2RlZmluZSBEQl9QT1MoeCkgKHgqREJfTVVURS9EQl9QUkVDKQ0KLSNkZWZpbmUgREJfTkVHKHgpIChEQl9NVVRFK0RCX01VVEUreCpEQl9NVVRFL0RCX1BSRUMpDQotDQotLyogQml0cyBmb3IgbGluZXIgdmFsdWUgKi8NCi0jZGVmaW5lIERCMkxJTl9BTVBfQklUUyA4DQotI2RlZmluZSBTTE9UX0FNUF9CSVRTIChEQjJMSU5fQU1QX0JJVFMpDQotDQotLyogQml0cyBmb3IgZW52ZWxvcGUgcGhhc2UgaW5jcmVtZW50YWwgY291bnRlciAqLw0KLSNkZWZpbmUgRUdfRFBfQklUUyAyMg0KLSNkZWZpbmUgRUdfRFBfV0lEVEggKDE8PEVHX0RQX0JJVFMpDQotDQotLyogQml0cyBmb3IgUGl0Y2ggYW5kIEFtcCBtb2R1bGF0b3IgKi8NCi0jZGVmaW5lIFBNX1BHX0JJVFMgOA0KLSNkZWZpbmUgUE1fUEdfV0lEVEggKDE8PFBNX1BHX0JJVFMpDQotI2RlZmluZSBQTV9EUF9CSVRTIDE2DQotI2RlZmluZSBQTV9EUF9XSURUSCAoMTw8UE1fRFBfQklUUykNCi0jZGVmaW5lIEFNX1BHX0JJVFMgOA0KLSNkZWZpbmUgQU1fUEdfV0lEVEggKDE8PEFNX1BHX0JJVFMpDQotI2RlZmluZSBBTV9EUF9CSVRTIDE2DQotI2RlZmluZSBBTV9EUF9XSURUSCAoMTw8QU1fRFBfQklUUykNCi0NCi0vKiBQTSB0YWJsZSBpcyBjYWxjdXJhdGVkIGJ5IFBNX0FNUCAqIHBvdygyLFBNX0RFUFRIKnNpbih4KS8xMjAwKSAqLw0KLSNkZWZpbmUgUE1fQU1QX0JJVFMgOA0KLSNkZWZpbmUgUE1fQU1QICgxPDxQTV9BTVBfQklUUykNCi0NCi0vKiBQTSBzcGVlZChIeikgYW5kIGRlcHRoKGNlbnQpICovDQotI2RlZmluZSBQTV9TUEVFRCA2LjQNCi0jZGVmaW5lIFBNX0RFUFRIIDEzLjc1DQotDQotLyogQU0gc3BlZWQoSHopIGFuZCBkZXB0aChkQikgKi8NCi0jZGVmaW5lIEFNX1NQRUVEIDMuNjQxMw0KLSNkZWZpbmUgQU1fREVQVEggNC44NzUNCi0NCi0vKiBDdXQgdGhlIGxvd2VyIGIgYml0KHMpIG9mZi4gKi8NCi0jZGVmaW5lIEhJR0hCSVRTKGMsYikgKChjKT4+KGIpKQ0KLQ0KLS8qIExlYXZlIHRoZSBsb3dlciBiIGJpdChzKS4gKi8NCi0jZGVmaW5lIExPV0JJVFMoYyxiKSAoKGMpJigoMTw8KGIpKS0xKSkNCi0NCi0vKiBFeHBhbmQgeCB3aGljaCBpcyBzIGJpdHMgdG8gZCBiaXRzLiAqLw0KLSNkZWZpbmUgRVhQQU5EX0JJVFMoeCxzLGQpICgoeCk8PCgoZCktKHMpKSkNCi0NCi0vKiBFeHBhbmQgeCB3aGljaCBpcyBzIGJpdHMgdG8gZCBiaXRzIGFuZCBmaWxsIGV4cGFuZGVkIGJpdHMgJzEnICovDQotI2RlZmluZSBFWFBBTkRfQklUU19YKHgscyxkKSAoKCh4KTw8KChkKS0ocykpKXwoKDE8PCgoZCktKHMpKSktMSkpDQotDQotLyogQWRqdXN0IGVudmVsb3BlIHNwZWVkIHdoaWNoIGRlcGVuZHMgb24gc2FtcGxpbmcgcmF0ZS4gKi8NCi0jZGVmaW5lIFJBVEVfQURKVVNUKHgpIChyYXRlPT00OTcxNj8oZV91aW50MzIpeDooZV91aW50MzIpKCgobG9uZyBsb25nKSh4KSpjbGsvcmF0ZSszNikvNzIpKQ0KLQ0KLSNkZWZpbmUgTU9EKG8seCkgKCYobyktPnNsb3RbKHgpPDwxXSkNCi0jZGVmaW5lIENBUihvLHgpICgmKG8pLT5zbG90WygoeCk8PDEpfDFdKQ0KLQ0KLSNkZWZpbmUgQklUKHMsYikgKCgocyk+PihiKSkmMSkNCi0NCi0vKiBJbnB1dCBjbG9jayAqLw0KLXN0YXRpYyBlX3VpbnQzMiBjbGsgPSA4NDQ0NTExNDE7DQotLyogU2FtcGxpbmcgcmF0ZSAqLw0KLXN0YXRpYyBlX3VpbnQzMiByYXRlID0gMzM1NDkzMjsNCi0NCi0vKiBXYXZlVGFibGUgZm9yIGVhY2ggZW52ZWxvcGUgYW1wICovDQotc3RhdGljIGVfdWludDE2IGZ1bGxzaW50YWJsZVtQR19XSURUSF07DQotc3RhdGljIGVfdWludDE2IGhhbGZzaW50YWJsZVtQR19XSURUSF07DQotDQotc3RhdGljIGVfdWludDE2ICp3YXZlZm9ybVsyXSA9IHsgZnVsbHNpbnRhYmxlLCBoYWxmc2ludGFibGUgfTsNCi0NCi0vKiBMRk8gVGFibGUgKi8NCi0jaWZkZWYgRU1VMjQxM19DQUxDVUxfVEFCTEVTDQotICAgIHN0YXRpYyBlX2ludDMyIHBtdGFibGVbUE1fUEdfV0lEVEhdOw0KLSAgICBzdGF0aWMgZV9pbnQzMiBhbXRhYmxlW0FNX1BHX1dJRFRIXTsNCi0gICAgI2RlZmluZSBQTVRBQkxFKHgpIHBtdGFibGVbeF0NCi0gICAgI2RlZmluZSBBTVRBQkxFKHgpIGFtdGFibGVbeF0NCi0jZWxzZQ0KLSAgICAjZGVmaW5lIFBNVEFCTEUoeCkgKGVfaW50MzIpcG1fY29lZmZbeF0NCi0gICAgI2lmIChQTV9QR19XSURUSCAhPSAyNTYpDQotICAgICAgICAjZXJyb3IgUE1fUEdfV0lEVEggbXVzdCBiZSBzZXQgdG8gMjU2IGlmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUyBpcyBub3QgZGVmaW5lZA0KLSAgICAjZW5kaWYNCi0gICAgI2RlZmluZSBBTVRBQkxFKHgpIChlX2ludDMyKWFtX2NvZWZmW3hdDQotICAgICNpZiAoQU1fUEdfV0lEVEggIT0gMjU2KQ0KLSAgICAgICAgI2Vycm9yIEFNX1BHX1dJRFRIIG11c3QgYmUgc2V0IHRvIDI1NiBpZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMgaXMgbm90IGRlZmluZWQNCi0gICAgI2VuZGlmDQotI2VuZGlmDQotDQotLyogUGhhc2UgZGVsdGEgZm9yIExGTyAqLw0KLXN0YXRpYyBlX3VpbnQzMiBwbV9kcGhhc2U7DQotc3RhdGljIGVfdWludDMyIGFtX2RwaGFzZTsNCi0NCi0vKiBkQiB0byBMaW5lciB0YWJsZSAqLw0KLXN0YXRpYyBlX2ludDE2IERCMkxJTl9UQUJMRVsoREJfTVVURSArIERCX01VVEUpICogMl07DQotDQotLyogTGluZXIgdG8gTG9nIGN1cnZlIGNvbnZlcnNpb24gdGFibGUgKGZvciBBdHRhY2sgcmF0ZSkuICovDQotI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUw0KLSAgICBzdGF0aWMgZV91aW50MTYgYXJfYWRqdXN0X3RhYmxlWzEgPDwgRUdfQklUU107DQotICAgICNkZWZpbmUgQVJfQURKVVNUX1RBQkxFKHgpIGFyX2FkanVzdF90YWJsZVt4XQ0KLSNlbHNlDQotICAgICNkZWZpbmUgQVJfQURKVVNUX1RBQkxFKHgpIGFyX2FkanVzdF9jb2VmZlt4XQ0KLSAgICAjaWYgKEVHX0JJVFMgIT0gNykNCi0gICAgICAgICNlcnJvciBFR19CSVRTIG11c3QgYmUgc2V0IHRvIDcgaWYgRU1VMjQxM19DQUxDVUxfVEFCTEVTIGlzIG5vdCBkZWZpbmVkDQotICAgICNlbmRpZg0KLSNlbmRpZg0KLQ0KLS8qIEVtcHR5IHZvaWNlIGRhdGEgKi8NCi1zdGF0aWMgT1BMTF9QQVRDSCBudWxsX3BhdGNoID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07DQotDQotLyogQmFzaWMgdm9pY2UgRGF0YSAqLw0KLXN0YXRpYyBPUExMX1BBVENIIGRlZmF1bHRfcGF0Y2hbT1BMTF9UT05FX05VTV1bKDE2ICsgMykgKiAyXTsNCi0NCi0vKiBEZWZpbml0aW9uIG9mIGVudmVsb3BlIG1vZGUgKi8NCi1lbnVtIE9QTExfRUdfU1RBVEUgDQoteyBSRUFEWSwgQVRUQUNLLCBERUNBWSwgU1VTSE9MRCwgU1VTVElORSwgUkVMRUFTRSwgU0VUVExFLCBGSU5JU0ggfTsNCi0NCi0vKiBQaGFzZSBpbmNyIHRhYmxlIGZvciBBdHRhY2sgKi8NCi1zdGF0aWMgZV91aW50MzIgZHBoYXNlQVJUYWJsZVsxNl1bMTZdOw0KLS8qIFBoYXNlIGluY3IgdGFibGUgZm9yIERlY2F5IGFuZCBSZWxlYXNlICovDQotc3RhdGljIGVfdWludDMyIGRwaGFzZURSVGFibGVbMTZdWzE2XTsNCi0NCi0vKiBLU0wgKyBUTCBUYWJsZSAqLw0KLWVfdWludDggdGxsVGFibGVbMTZdWzhdWzEgPDwgVExfQklUU11bNF07DQotc3RhdGljIGVfaW50MzIgcmtzVGFibGVbMl1bOF1bMl07DQotDQotLyogV2UgbWF5IG5vdCBoYXZlIHRvbyBtdWNoIFNSQU0gaW4gcm9ja2JveCAqLw0KLSNpZiAhZGVmaW5lZChST0NLQk9YKQ0KLS8qIFBoYXNlIGluY3IgdGFibGUgZm9yIFBHICovDQotc3RhdGljIGVfdWludDMyIGRwaGFzZVRhYmxlWzUxMl1bOF1bMTZdOw0KLSNlbmRpZg0KLQ0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gDQotICAgICAgICAgICAgICAgICAgQ3JlYXRlIHRhYmxlcw0KLSANCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLSNpZmRlZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMNCi1JTkxJTkUgc3RhdGljIGVfaW50MzINCi1NaW4gKGVfaW50MzIgaSwgZV9pbnQzMiBqKQ0KLXsNCi0gIGlmIChpIDwgaikNCi0gICAgcmV0dXJuIGk7DQotICBlbHNlDQotICAgIHJldHVybiBqOw0KLX0NCi0NCi0vKiBUYWJsZSBmb3IgQVIgdG8gTG9nQ3VydmUuICovDQotc3RhdGljIHZvaWQNCi1tYWtlQWRqdXN0VGFibGUgKHZvaWQpDQotew0KLSAgZV9pbnQzMiBpOw0KLQ0KLSAgYXJfYWRqdXN0X3RhYmxlWzBdID0gKDEgPDwgRUdfQklUUykgLSAxOw0KLSAgZm9yIChpID0gMTsgaSA8ICgxPDxFR19CSVRTKTsgaSsrKQ0KLSAgICBhcl9hZGp1c3RfdGFibGVbaV0gPSAoZV91aW50MTYpICgoZG91YmxlKSAoMTw8RUdfQklUUyktMSAtICgoMTw8RUdfQklUUyktMSkqbG9nKGkpL2xvZygxMjcpKTsNCi19DQotI2VuZGlmDQotDQotLyogVGFibGUgZm9yIGRCKDAgLS0gKDE8PERCX0JJVFMpLTEpIHRvIExpbmVyKDAgLS0gREIyTElOX0FNUF9XSURUSCkgKi8NCi1zdGF0aWMgdm9pZA0KLW1ha2VEQjJMaW5UYWJsZSAodm9pZCkNCi17DQotICBlX2ludDMyIGk7DQotICBmb3IgKGkgPSAwOyBpIDwgREJfTVVURSArIERCX01VVEU7IGkrKykNCi0gIHsNCi0gICNpZmRlZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMNCi0gICAgREIyTElOX1RBQkxFW2ldID0gKGVfaW50MTYpICgoZG91YmxlKSAoKDEgPDwgREIyTElOX0FNUF9CSVRTKSAtIDEpICogcG93ICgxMCwgLShkb3VibGUpIGkgKiBEQl9TVEVQIC8gMjApKTsNCi0gICNlbHNlDQotICAgIERCMkxJTl9UQUJMRVtpXSA9IGRiMmxpbl9jb2VmZltpXTsNCi0gICNlbmRpZg0KLSAgICBpZiAoaSA+PSBEQl9NVVRFKSBEQjJMSU5fVEFCTEVbaV0gPSAwOw0KLSAgICBEQjJMSU5fVEFCTEVbaSArIERCX01VVEUgKyBEQl9NVVRFXSA9IChlX2ludDE2KSAoLURCMkxJTl9UQUJMRVtpXSk7DQotICB9DQotfQ0KLQ0KLSNpZmRlZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMNCi0vKiBMaW5lcigrMC4wIC0gKzEuMCkgdG8gZEIoKDE8PERCX0JJVFMpIC0gMSAtLSAwKSAqLw0KLXN0YXRpYyBlX2ludDMyDQotbGluMmRiIChkb3VibGUgZCkNCi17DQotICBpZiAoZCA9PSAwKQ0KLSAgICByZXR1cm4gKERCX01VVEUgLSAxKTsNCi0gIGVsc2UNCi0gICAgcmV0dXJuIE1pbiAoLShlX2ludDMyKSAoMjAuMCAqIGxvZzEwIChkKSAvIERCX1NURVApLCBEQl9NVVRFLTEpOyAgLyogMCAtLSAxMjcgKi8NCi19DQotI2VuZGlmDQotDQotLyogU2luIFRhYmxlICovDQotc3RhdGljIHZvaWQNCi1tYWtlU2luVGFibGUgKHZvaWQpDQotew0KLSAgZV9pbnQzMiBpOw0KLQ0KLSAgZm9yIChpID0gMDsgaSA8IFBHX1dJRFRIIC8gNDsgaSsrKQ0KLSAgI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUw0KLSAgICBmdWxsc2ludGFibGVbaV0gPSAoZV91aW50MzIpIGxpbjJkYiAoc2luICgyLjAgKiBQSSAqIGkgLyBQR19XSURUSCkgKTsNCi0gICNlbHNlDQotICAgIGZ1bGxzaW50YWJsZVtpXSA9IHNpbl9jb2VmZltpXTsNCi0gICNlbmRpZg0KLQ0KLSAgZm9yIChpID0gMDsgaSA8IFBHX1dJRFRIIC8gNDsgaSsrKQ0KLSAgew0KLSAgICBmdWxsc2ludGFibGVbUEdfV0lEVEggLyAyIC0gMSAtIGldID0gZnVsbHNpbnRhYmxlW2ldOw0KLSAgfQ0KLQ0KLSAgZm9yIChpID0gMDsgaSA8IFBHX1dJRFRIIC8gMjsgaSsrKQ0KLSAgew0KLSAgICBmdWxsc2ludGFibGVbUEdfV0lEVEggLyAyICsgaV0gPSAoZV91aW50MzIpIChEQl9NVVRFICsgREJfTVVURSArIGZ1bGxzaW50YWJsZVtpXSk7DQotICB9DQotDQotICBmb3IgKGkgPSAwOyBpIDwgUEdfV0lEVEggLyAyOyBpKyspDQotICAgIGhhbGZzaW50YWJsZVtpXSA9IGZ1bGxzaW50YWJsZVtpXTsNCi0gIGZvciAoaSA9IFBHX1dJRFRIIC8gMjsgaSA8IFBHX1dJRFRIOyBpKyspDQotICAgIGhhbGZzaW50YWJsZVtpXSA9IGZ1bGxzaW50YWJsZVswXTsNCi19DQotDQotI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUw0KLXN0YXRpYyBkb3VibGUgc2F3KGRvdWJsZSBwaGFzZSkNCi17DQotICBpZihwaGFzZSA8PSBQSS8yKQ0KLSAgICByZXR1cm4gcGhhc2UgKiAyIC8gUEkgOw0KLSAgZWxzZSBpZihwaGFzZSA8PSBQSSozLzIpDQotICAgIHJldHVybiAyLjAgLSAoIHBoYXNlICogMiAvIFBJICk7DQotICBlbHNlDQotICAgIHJldHVybiAtNC4wICsgcGhhc2UgKiAyIC8gUEk7DQotfQ0KLQ0KLS8qIFRhYmxlIGZvciBQaXRjaCBNb2R1bGF0b3IgKi8NCi1zdGF0aWMgdm9pZA0KLW1ha2VQbVRhYmxlICh2b2lkKQ0KLXsNCi0gIGVfaW50MzIgaTsNCi0NCi0gIGZvciAoaSA9IDA7IGkgPCBQTV9QR19XSURUSDsgaSsrKQ0KLSAgICAvKiBwbXRhYmxlW2ldID0gKGVfaW50MzIpICgoZG91YmxlKSBQTV9BTVAgKiBwb3cgKDIsIChkb3VibGUpIFBNX0RFUFRIICogc2luICgyLjAgKiBQSSAqIGkgLyBQTV9QR19XSURUSCkgLyAxMjAwKSk7ICovDQotICAgIHBtdGFibGVbaV0gPSAoZV9pbnQzMikgKChkb3VibGUpIFBNX0FNUCAqIHBvdyAoMiwgKGRvdWJsZSkgUE1fREVQVEggKiBzYXcgKDIuMCAqIFBJICogaSAvIFBNX1BHX1dJRFRIKSAvIDEyMDApKTsgICAgDQotfQ0KLQ0KLS8qIFRhYmxlIGZvciBBbXAgTW9kdWxhdG9yICovDQotc3RhdGljIHZvaWQNCi1tYWtlQW1UYWJsZSAodm9pZCkNCi17DQotICBlX2ludDMyIGk7DQotDQotICBmb3IgKGkgPSAwOyBpIDwgQU1fUEdfV0lEVEg7IGkrKykNCi0gICAgLyogYW10YWJsZVtpXSA9IChlX2ludDMyKSAoKGRvdWJsZSkgQU1fREVQVEggLyAyIC8gREJfU1RFUCAqICgxLjAgKyBzaW4gKDIuMCAqIFBJICogaSAvIFBNX1BHX1dJRFRIKSkpOyAqLw0KLSAgICBhbXRhYmxlW2ldID0gKGVfaW50MzIpICgoZG91YmxlKSBBTV9ERVBUSCAvIDIgLyBEQl9TVEVQICogKDEuMCArIHNhdyAoMi4wICogUEkgKiBpIC8gUE1fUEdfV0lEVEgpKSk7DQotfQ0KLSNlbmRpZg0KLQ0KLSNpZiAhZGVmaW5lZChST0NLQk9YKQ0KLS8qIFBoYXNlIGluY3JlbWVudCBjb3VudGVyIHRhYmxlICovDQotc3RhdGljIHZvaWQNCi1tYWtlRHBoYXNlVGFibGUgKHZvaWQpDQotew0KLSAgZV91aW50MzIgZm51bSwgYmxvY2ssIE1MOw0KLSAgZV91aW50MzIgbWx0YWJsZVsxNl0gPQ0KLSAgICB7IDEsIDEgKiAyLCAyICogMiwgMyAqIDIsIDQgKiAyLCA1ICogMiwgNiAqIDIsIDcgKiAyLCA4ICogMiwgOSAqIDIsIDEwICogMiwgMTAgKiAyLCAxMiAqIDIsIDEyICogMiwgMTUgKiAyLCAxNSAqIDIgfTsNCi0NCi0gIGZvciAoZm51bSA9IDA7IGZudW0gPCA1MTI7IGZudW0rKykNCi0gICAgZm9yIChibG9jayA9IDA7IGJsb2NrIDwgODsgYmxvY2srKykNCi0gICAgICBmb3IgKE1MID0gMDsgTUwgPCAxNjsgTUwrKykNCi0gICAgICAgIGRwaGFzZVRhYmxlW2ZudW1dW2Jsb2NrXVtNTF0gPSBSQVRFX0FESlVTVCAoKChmbnVtICogbWx0YWJsZVtNTF0pIDw8IGJsb2NrKSA+PiAoMjAgLSBEUF9CSVRTKSk7DQotfQ0KLSNlbmRpZg0KLQ0KLXN0YXRpYyB2b2lkDQotbWFrZVRsbFRhYmxlICh2b2lkKQ0KLXsNCi0vKiBNdWx0aXBsaWNhdGlvbiBvd2l0aCA4IHRvIGhhdmUgYW4gaW50ZWdlciByZXN1bHQuIFRoaXMgYWxsb3dzIHRvIHJlbW92ZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb24uICovDQotI2RlZmluZSBkQjIoeCkgKGludCkoKHgpKjIqOCkNCi0NCi0gIHN0YXRpYyBpbnQga2x0YWJsZVsxNl0gPSB7DQotICAgIGRCMiAoIDAuMDAwKSwgZEIyICggOS4wMDApLCBkQjIgKDEyLjAwMCksIGRCMiAoMTMuODc1KSwgZEIyICgxNS4wMDApLCBkQjIgKDE2LjEyNSksIGRCMiAoMTYuODc1KSwgZEIyICgxNy42MjUpLA0KLSAgICBkQjIgKDE4LjAwMCksIGRCMiAoMTguNzUwKSwgZEIyICgxOS4xMjUpLCBkQjIgKDE5LjUwMCksIGRCMiAoMTkuODc1KSwgZEIyICgyMC4yNTApLCBkQjIgKDIwLjYyNSksIGRCMiAoMjEuMDAwKQ0KLSAgfTsNCi0NCi0gIGVfaW50MzIgdG1wOw0KLSAgZV9pbnQzMiBmbnVtLCBibG9jaywgVEwsIEtMOw0KLQ0KLSAgZm9yIChmbnVtID0gMDsgZm51bSA8IDE2OyBmbnVtKyspDQotICAgIGZvciAoYmxvY2sgPSAwOyBibG9jayA8IDg7IGJsb2NrKyspDQotICAgICAgZm9yIChUTCA9IDA7IFRMIDwgNjQ7IFRMKyspDQotICAgICAgICBmb3IgKEtMID0gMDsgS0wgPCA0OyBLTCsrKQ0KLSAgICAgICAgew0KLSAgICAgICAgICBpZiAoS0wgPT0gMCkNCi0gICAgICAgICAgew0KLSAgICAgICAgICAgIHRsbFRhYmxlW2ZudW1dW2Jsb2NrXVtUTF1bS0xdID0gVEwyRUcgKFRMKTsNCi0gICAgICAgICAgfQ0KLSAgICAgICAgICBlbHNlDQotICAgICAgICAgIHsNCi0gICAgICAgICAgICB0bXAgPSAoZV9pbnQzMikgKChrbHRhYmxlW2ZudW1dIC0gZEIyICgzLjAwMCkgKiAoNyAtIGJsb2NrKSkvOCk7DQotICAgICAgICAgICAgaWYgKHRtcCA8PSAwKQ0KLSAgICAgICAgICAgICAgdGxsVGFibGVbZm51bV1bYmxvY2tdW1RMXVtLTF0gPSBUTDJFRyAoVEwpOw0KLSAgICAgICAgICAgIGVsc2UNCi0gICAgICAgICAgICAgIC8qIHRsbFRhYmxlW2ZudW1dW2Jsb2NrXVtUTF1bS0xdID0gKGVfdWludDMyKSAoKHRtcCA+PiAoMyAtIEtMKSkgLyBFR19TVEVQKSArIFRMMkVHIChUTCk7ICovDQotICAgICAgICAgICAgICB0bGxUYWJsZVtmbnVtXVtibG9ja11bVExdW0tMXSA9IChlX3VpbnQzMikgKCh0bXAgPDwgS0wpIC8gKGludCkoRUdfU1RFUCo4KSkgKyBUTDJFRyAoVEwpOw0KLSAgICAgICAgICB9DQotICAgICAgICB9DQotfQ0KLQ0KLSNpZmRlZiBVU0VfU1BFQ19FTlZfU1BFRUQNCi1zdGF0aWMgZG91YmxlIGF0dGFja3RpbWVbMTZdWzRdID0gew0KLSAgezAsIDAsIDAsIDB9LA0KLSAgezE3MzAuMTUsIDE0MDAuNjAsIDExNTMuNDMsIDk4OC42Nn0sDQotICB7ODY1LjA4LCA3MDAuMzAsIDU3Ni43MiwgNDk0LjMzfSwNCi0gIHs0MzIuNTQsIDM1MC4xNSwgMjg4LjM2LCAyNDcuMTZ9LA0KLSAgezIxNi4yNywgMTc1LjA3LCAxNDQuMTgsIDEyMy41OH0sDQotICB7MTA4LjEzLCA4Ny41NCwgNzIuMDksIDYxLjc5fSwNCi0gIHs1NC4wNywgNDMuNzcsIDM2LjA0LCAzMC45MH0sDQotICB7MjcuMDMsIDIxLjg4LCAxOC4wMiwgMTUuNDV9LA0KLSAgezEzLjUyLCAxMC45NCwgOS4wMSwgNy43Mn0sDQotICB7Ni43NiwgNS40NywgNC41MSwgMy44Nn0sDQotICB7My4zOCwgMi43NCwgMi4yNSwgMS45M30sDQotICB7MS42OSwgMS4zNywgMS4xMywgMC45N30sDQotICB7MC44NCwgMC43MCwgMC42MCwgMC41NH0sDQotICB7MC41MCwgMC40MiwgMC4zNCwgMC4zMH0sDQotICB7MC4yOCwgMC4yMiwgMC4xOCwgMC4xNH0sDQotICB7MC4wMCwgMC4wMCwgMC4wMCwgMC4wMH0NCi19Ow0KLQ0KLXN0YXRpYyBkb3VibGUgZGVjYXl0aW1lWzE2XVs0XSA9IHsNCi0gIHswLCAwLCAwLCAwfSwNCi0gIHsyMDkyNi42MCwgMTY4MDcuMjAsIDE0MDA2LjAwLCAxMjAyOC42MH0sDQotICB7MTA0NjMuMzAsIDg0MDMuNTgsIDcwMDIuOTgsIDYwMTQuMzJ9LA0KLSAgezUyMzEuNjQsIDQyMDEuNzksIDM1MDEuNDksIDMwMDcuMTZ9LA0KLSAgezI2MTUuODIsIDIxMDAuODksIDE3NTAuNzUsIDE1MDMuNTh9LA0KLSAgezEzMDcuOTEsIDEwNTAuNDUsIDg3NS4zNywgNzUxLjc5fSwNCi0gIHs2NTMuOTUsIDUyNS4yMiwgNDM3LjY5LCAzNzUuOTB9LA0KLSAgezMyNi45OCwgMjYyLjYxLCAyMTguODQsIDE4Ny45NX0sDQotICB7MTYzLjQ5LCAxMzEuMzEsIDEwOS40MiwgOTMuOTd9LA0KLSAgezgxLjc0LCA2NS42NSwgNTQuNzEsIDQ2Ljk5fSwNCi0gIHs0MC44NywgMzIuODMsIDI3LjM2LCAyMy40OX0sDQotICB7MjAuNDQsIDE2LjQxLCAxMy42OCwgMTEuNzV9LA0KLSAgezEwLjIyLCA4LjIxLCA2Ljg0LCA1Ljg3fSwNCi0gIHs1LjExLCA0LjEwLCAzLjQyLCAyLjk0fSwNCi0gIHsyLjU1LCAyLjA1LCAxLjcxLCAxLjQ3fSwNCi0gIHsxLjI3LCAxLjI3LCAxLjI3LCAxLjI3fQ0KLX07DQotI2VuZGlmDQotDQotLyogUmF0ZSBUYWJsZSBmb3IgQXR0YWNrICovDQotc3RhdGljIHZvaWQNCi1tYWtlRHBoYXNlQVJUYWJsZSAodm9pZCkNCi17DQotICBlX2ludDMyIEFSLCBSa3MsIFJNLCBSTDsNCi0NCi0jaWZkZWYgVVNFX1NQRUNfRU5WX1NQRUVEDQotICBlX3VpbnQzMiBhdHRhY2t0YWJsZVsxNl1bNF07DQotDQotICBmb3IgKFJNID0gMDsgUk0gPCAxNjsgUk0rKykNCi0gICAgZm9yIChSTCA9IDA7IFJMIDwgNDsgUkwrKykNCi0gICAgew0KLSAgICAgIGlmIChSTSA9PSAwKQ0KLSAgICAgICAgYXR0YWNrdGFibGVbUk1dW1JMXSA9IDA7DQotICAgICAgZWxzZSBpZiAoUk0gPT0gMTUpDQotICAgICAgICBhdHRhY2t0YWJsZVtSTV1bUkxdID0gRUdfRFBfV0lEVEg7DQotICAgICAgZWxzZQ0KLSAgICAgICAgYXR0YWNrdGFibGVbUk1dW1JMXSA9IChlX3VpbnQzMikgKChkb3VibGUpICgxIDw8IEVHX0RQX0JJVFMpIC8gKGF0dGFja3RpbWVbUk1dW1JMXSAqIDM1Nzk1NDUgLyA3MjAwMCkpOw0KLQ0KLSAgICB9DQotI2VuZGlmDQotDQotICBmb3IgKEFSID0gMDsgQVIgPCAxNjsgQVIrKykNCi0gICAgZm9yIChSa3MgPSAwOyBSa3MgPCAxNjsgUmtzKyspDQotICAgIHsNCi0gICAgICBSTSA9IEFSICsgKFJrcyA+PiAyKTsNCi0gICAgICBSTCA9IFJrcyAmIDM7DQotICAgICAgaWYgKFJNID4gMTUpDQotICAgICAgICBSTSA9IDE1Ow0KLSAgICAgIHN3aXRjaCAoQVIpDQotICAgICAgew0KLSAgICAgIGNhc2UgMDoNCi0gICAgICAgIGRwaGFzZUFSVGFibGVbQVJdW1Jrc10gPSAwOw0KLSAgICAgICAgYnJlYWs7DQotICAgICAgY2FzZSAxNToNCi0gICAgICAgIGRwaGFzZUFSVGFibGVbQVJdW1Jrc10gPSAwOy8qRUdfRFBfV0lEVEg7Ki8gDQotICAgICAgICBicmVhazsNCi0gICAgICBkZWZhdWx0Og0KLSNpZmRlZiBVU0VfU1BFQ19FTlZfU1BFRUQNCi0gICAgICAgIGRwaGFzZUFSVGFibGVbQVJdW1Jrc10gPSBSQVRFX0FESlVTVCAoYXR0YWNrdGFibGVbUk1dW1JMXSk7DQotI2Vsc2UNCi0gICAgICAgIGRwaGFzZUFSVGFibGVbQVJdW1Jrc10gPSBSQVRFX0FESlVTVCAoKDMgKiAoUkwgKyA0KSA8PCAoUk0gKyAxKSkpOw0KLSNlbmRpZg0KLSAgICAgICAgYnJlYWs7DQotICAgICAgfQ0KLSAgICB9DQotfQ0KLQ0KLS8qIFJhdGUgVGFibGUgZm9yIERlY2F5IGFuZCBSZWxlYXNlICovDQotc3RhdGljIHZvaWQNCi1tYWtlRHBoYXNlRFJUYWJsZSAodm9pZCkNCi17DQotICBlX2ludDMyIERSLCBSa3MsIFJNLCBSTDsNCi0NCi0jaWZkZWYgVVNFX1NQRUNfRU5WX1NQRUVEDQotICBlX3VpbnQzMiBkZWNheXRhYmxlWzE2XVs0XTsNCi0NCi0gIGZvciAoUk0gPSAwOyBSTSA8IDE2OyBSTSsrKQ0KLSAgICBmb3IgKFJMID0gMDsgUkwgPCA0OyBSTCsrKQ0KLSAgICAgIGlmIChSTSA9PSAwKQ0KLSAgICAgICAgZGVjYXl0YWJsZVtSTV1bUkxdID0gMDsNCi0gICAgICBlbHNlDQotICAgICAgICBkZWNheXRhYmxlW1JNXVtSTF0gPSAoZV91aW50MzIpICgoZG91YmxlKSAoMSA8PCBFR19EUF9CSVRTKSAvIChkZWNheXRpbWVbUk1dW1JMXSAqIDM1Nzk1NDUgLyA3MjAwMCkpOw0KLSNlbmRpZg0KLQ0KLSAgZm9yIChEUiA9IDA7IERSIDwgMTY7IERSKyspDQotICAgIGZvciAoUmtzID0gMDsgUmtzIDwgMTY7IFJrcysrKQ0KLSAgICB7DQotICAgICAgUk0gPSBEUiArIChSa3MgPj4gMik7DQotICAgICAgUkwgPSBSa3MgJiAzOw0KLSAgICAgIGlmIChSTSA+IDE1KQ0KLSAgICAgICAgUk0gPSAxNTsNCi0gICAgICBzd2l0Y2ggKERSKQ0KLSAgICAgIHsNCi0gICAgICBjYXNlIDA6DQotICAgICAgICBkcGhhc2VEUlRhYmxlW0RSXVtSa3NdID0gMDsNCi0gICAgICAgIGJyZWFrOw0KLSAgICAgIGRlZmF1bHQ6DQotI2lmZGVmIFVTRV9TUEVDX0VOVl9TUEVFRA0KLSAgICAgICAgZHBoYXNlRFJUYWJsZVtEUl1bUmtzXSA9IFJBVEVfQURKVVNUIChkZWNheXRhYmxlW1JNXVtSTF0pOw0KLSNlbHNlDQotICAgICAgICBkcGhhc2VEUlRhYmxlW0RSXVtSa3NdID0gUkFURV9BREpVU1QgKChSTCArIDQpIDw8IChSTSAtIDEpKTsNCi0jZW5kaWYNCi0gICAgICAgIGJyZWFrOw0KLSAgICAgIH0NCi0gICAgfQ0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW1ha2VSa3NUYWJsZSAodm9pZCkNCi17DQotDQotICBlX2ludDMyIGZudW04LCBibG9jaywgS1I7DQotDQotICBmb3IgKGZudW04ID0gMDsgZm51bTggPCAyOyBmbnVtOCsrKQ0KLSAgICBmb3IgKGJsb2NrID0gMDsgYmxvY2sgPCA4OyBibG9jaysrKQ0KLSAgICAgIGZvciAoS1IgPSAwOyBLUiA8IDI7IEtSKyspDQotICAgICAgew0KLSAgICAgICAgaWYgKEtSICE9IDApDQotICAgICAgICAgIHJrc1RhYmxlW2ZudW04XVtibG9ja11bS1JdID0gKGJsb2NrIDw8IDEpICsgZm51bTg7DQotICAgICAgICBlbHNlDQotICAgICAgICAgIHJrc1RhYmxlW2ZudW04XVtibG9ja11bS1JdID0gYmxvY2sgPj4gMTsNCi0gICAgICB9DQotfQ0KLQ0KLXZvaWQNCi1PUExMX2R1bXAycGF0Y2ggKGNvbnN0IGVfdWludDggKiBkdW1wLCBPUExMX1BBVENIICogcGF0Y2gpDQotew0KLSAgcGF0Y2hbMF0uQU0gPSAoZHVtcFswXSA+PiA3KSAmIDE7DQotICBwYXRjaFsxXS5BTSA9IChkdW1wWzFdID4+IDcpICYgMTsNCi0gIHBhdGNoWzBdLlBNID0gKGR1bXBbMF0gPj4gNikgJiAxOw0KLSAgcGF0Y2hbMV0uUE0gPSAoZHVtcFsxXSA+PiA2KSAmIDE7DQotICBwYXRjaFswXS5FRyA9IChkdW1wWzBdID4+IDUpICYgMTsNCi0gIHBhdGNoWzFdLkVHID0gKGR1bXBbMV0gPj4gNSkgJiAxOw0KLSAgcGF0Y2hbMF0uS1IgPSAoZHVtcFswXSA+PiA0KSAmIDE7DQotICBwYXRjaFsxXS5LUiA9IChkdW1wWzFdID4+IDQpICYgMTsNCi0gIHBhdGNoWzBdLk1MID0gKGR1bXBbMF0pICYgMTU7DQotICBwYXRjaFsxXS5NTCA9IChkdW1wWzFdKSAmIDE1Ow0KLSAgcGF0Y2hbMF0uS0wgPSAoZHVtcFsyXSA+PiA2KSAmIDM7DQotICBwYXRjaFsxXS5LTCA9IChkdW1wWzNdID4+IDYpICYgMzsNCi0gIHBhdGNoWzBdLlRMID0gKGR1bXBbMl0pICYgNjM7DQotICBwYXRjaFswXS5GQiA9IChkdW1wWzNdKSAmIDc7DQotICBwYXRjaFswXS5XRiA9IChkdW1wWzNdID4+IDMpICYgMTsNCi0gIHBhdGNoWzFdLldGID0gKGR1bXBbM10gPj4gNCkgJiAxOw0KLSAgcGF0Y2hbMF0uQVIgPSAoZHVtcFs0XSA+PiA0KSAmIDE1Ow0KLSAgcGF0Y2hbMV0uQVIgPSAoZHVtcFs1XSA+PiA0KSAmIDE1Ow0KLSAgcGF0Y2hbMF0uRFIgPSAoZHVtcFs0XSkgJiAxNTsNCi0gIHBhdGNoWzFdLkRSID0gKGR1bXBbNV0pICYgMTU7DQotICBwYXRjaFswXS5TTCA9IChkdW1wWzZdID4+IDQpICYgMTU7DQotICBwYXRjaFsxXS5TTCA9IChkdW1wWzddID4+IDQpICYgMTU7DQotICBwYXRjaFswXS5SUiA9IChkdW1wWzZdKSAmIDE1Ow0KLSAgcGF0Y2hbMV0uUlIgPSAoZHVtcFs3XSkgJiAxNTsNCi19DQotDQotdm9pZA0KLU9QTExfZ2V0RGVmYXVsdFBhdGNoIChlX2ludDMyIHR5cGUsIGVfaW50MzIgbnVtLCBPUExMX1BBVENIICogcGF0Y2gpDQotew0KLSAgT1BMTF9kdW1wMnBhdGNoIChkZWZhdWx0X2luc3RbdHlwZV0gKyBudW0gKiAxNiwgcGF0Y2gpOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW1ha2VEZWZhdWx0UGF0Y2ggKCB2b2lkICkNCi17DQotICBlX2ludDMyIGksIGo7DQotDQotICBmb3IgKGkgPSAwOyBpIDwgT1BMTF9UT05FX05VTTsgaSsrKQ0KLSAgICBmb3IgKGogPSAwOyBqIDwgMTk7IGorKykNCi0gICAgICBPUExMX2dldERlZmF1bHRQYXRjaCAoaSwgaiwgJmRlZmF1bHRfcGF0Y2hbaV1baiAqIDJdKTsNCi0NCi19DQotDQotdm9pZA0KLU9QTExfc2V0UGF0Y2ggKE9QTEwgKiBvcGxsLCBjb25zdCBlX3VpbnQ4ICogZHVtcCkNCi17DQotICBPUExMX1BBVENIIHBhdGNoWzJdOw0KLSAgaW50IGk7DQotDQotICBmb3IgKGkgPSAwOyBpIDwgMTk7IGkrKykNCi0gIHsNCi0gICAgT1BMTF9kdW1wMnBhdGNoIChkdW1wICsgaSAqIDE2LCBwYXRjaCk7DQotICAgIG1lbWNweSAoJm9wbGwtPnBhdGNoW2kqMiswXSwgJnBhdGNoWzBdLCBzaXplb2YgKE9QTExfUEFUQ0gpKTsNCi0gICAgbWVtY3B5ICgmb3BsbC0+cGF0Y2hbaSoyKzFdLCAmcGF0Y2hbMV0sIHNpemVvZiAoT1BMTF9QQVRDSCkpOw0KLSAgfQ0KLX0NCi0NCi12b2lkDQotT1BMTF9wYXRjaDJkdW1wIChjb25zdCBPUExMX1BBVENIICogcGF0Y2gsIGVfdWludDggKiBkdW1wKQ0KLXsNCi0gIGR1bXBbMF0gPSAoZV91aW50OCkgKChwYXRjaFswXS5BTSA8PCA3KSArIChwYXRjaFswXS5QTSA8PCA2KSArIChwYXRjaFswXS5FRyA8PCA1KSArIChwYXRjaFswXS5LUiA8PCA0KSArIHBhdGNoWzBdLk1MKTsNCi0gIGR1bXBbMV0gPSAoZV91aW50OCkgKChwYXRjaFsxXS5BTSA8PCA3KSArIChwYXRjaFsxXS5QTSA8PCA2KSArIChwYXRjaFsxXS5FRyA8PCA1KSArIChwYXRjaFsxXS5LUiA8PCA0KSArIHBhdGNoWzFdLk1MKTsNCi0gIGR1bXBbMl0gPSAoZV91aW50OCkgKChwYXRjaFswXS5LTCA8PCA2KSArIHBhdGNoWzBdLlRMKTsNCi0gIGR1bXBbM10gPSAoZV91aW50OCkgKChwYXRjaFsxXS5LTCA8PCA2KSArIChwYXRjaFsxXS5XRiA8PCA0KSArIChwYXRjaFswXS5XRiA8PCAzKSArIHBhdGNoWzBdLkZCKTsNCi0gIGR1bXBbNF0gPSAoZV91aW50OCkgKChwYXRjaFswXS5BUiA8PCA0KSArIHBhdGNoWzBdLkRSKTsNCi0gIGR1bXBbNV0gPSAoZV91aW50OCkgKChwYXRjaFsxXS5BUiA8PCA0KSArIHBhdGNoWzFdLkRSKTsNCi0gIGR1bXBbNl0gPSAoZV91aW50OCkgKChwYXRjaFswXS5TTCA8PCA0KSArIHBhdGNoWzBdLlJSKTsNCi0gIGR1bXBbN10gPSAoZV91aW50OCkgKChwYXRjaFsxXS5TTCA8PCA0KSArIHBhdGNoWzFdLlJSKTsNCi0gIGR1bXBbOF0gPSAwOw0KLSAgZHVtcFs5XSA9IDA7DQotICBkdW1wWzEwXSA9IDA7DQotICBkdW1wWzExXSA9IDA7DQotICBkdW1wWzEyXSA9IDA7DQotICBkdW1wWzEzXSA9IDA7DQotICBkdW1wWzE0XSA9IDA7DQotICBkdW1wWzE1XSA9IDA7DQotfQ0KLQ0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0NCi0gICAgICAgICAgICAgICAgICAgICAgQ2FsYyBQYXJhbWV0ZXJzDQotDQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLQ0KLUlOTElORSBzdGF0aWMgZV91aW50MzINCi1jYWxjX2VnX2RwaGFzZSAoT1BMTF9TTE9UICogc2xvdCkNCi17DQotDQotICBzd2l0Y2ggKHNsb3QtPmVnX21vZGUpDQotICB7DQotICBjYXNlIEFUVEFDSzoNCi0gICAgcmV0dXJuIGRwaGFzZUFSVGFibGVbc2xvdC0+cGF0Y2gtPkFSXVtzbG90LT5ya3NdOw0KLQ0KLSAgY2FzZSBERUNBWToNCi0gICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPkRSXVtzbG90LT5ya3NdOw0KLQ0KLSAgY2FzZSBTVVNIT0xEOg0KLSAgICByZXR1cm4gMDsNCi0NCi0gIGNhc2UgU1VTVElORToNCi0gICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPlJSXVtzbG90LT5ya3NdOw0KLQ0KLSAgY2FzZSBSRUxFQVNFOg0KLSAgICBpZiAoc2xvdC0+c3VzdGluZSkNCi0gICAgICByZXR1cm4gZHBoYXNlRFJUYWJsZVs1XVtzbG90LT5ya3NdOw0KLSAgICBlbHNlIGlmIChzbG90LT5wYXRjaC0+RUcpDQotICAgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPlJSXVtzbG90LT5ya3NdOw0KLSAgICBlbHNlDQotICAgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbN11bc2xvdC0+cmtzXTsNCi0NCi0gIGNhc2UgU0VUVExFOg0KLSAgICByZXR1cm4gZHBoYXNlRFJUYWJsZVsxNV1bMF07DQotDQotICBjYXNlIEZJTklTSDoNCi0gICAgcmV0dXJuIDA7DQotDQotICBkZWZhdWx0Og0KLSAgICByZXR1cm4gMDsNCi0gIH0NCi19DQotDQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0NCi0gICAgICAgICAgICAgICAgICAgIE9QTEwgaW50ZXJuYWwgaW50ZXJmYWNlcw0KLQ0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotI2RlZmluZSBTTE9UX0JEMSAxMg0KLSNkZWZpbmUgU0xPVF9CRDIgMTMNCi0jZGVmaW5lIFNMT1RfSEggMTQNCi0jZGVmaW5lIFNMT1RfU0QgMTUNCi0jZGVmaW5lIFNMT1RfVE9NIDE2DQotI2RlZmluZSBTTE9UX0NZTSAxNw0KLQ0KLS8qIFdlIHdpbGwgc2V0IHRoaXMgZGluYW1pY2FsbHksIGJ1dCBub3Qgc3VyZSBpZiB0aGlzIGFmZmVjdHMgcGxheWJhY2sgKi8NCi0jaWYgZGVmaW5lZChST0NLQk9YKQ0KLUlOTElORSBzdGF0aWMgdm9pZA0KLVVQREFURV9QRyhPUExMX1NMT1QgKiBzbG90KQ0KLXsNCi0gIHN0YXRpYyBjb25zdCBlX3VpbnQzMiBtbHRhYmxlWzE2XSA9DQotICAgIHsgMSwgMSAqIDIsIDIgKiAyLCAzICogMiwgNCAqIDIsIDUgKiAyLCA2ICogMiwgNyAqIDIsIDggKiAyLCA5ICogMiwgMTAgKiAyLCAxMCAqIDIsIDEyICogMiwgMTIgKiAyLCAxNSAqIDIsIDE1ICogMiB9Ow0KLQ0KLSAgc2xvdC0+ZHBoYXNlID0gUkFURV9BREpVU1QgKCgoc2xvdC0+Zm51bSAqIG1sdGFibGVbc2xvdC0+cGF0Y2gtPk1MXSkgPDwgc2xvdC0+YmxvY2spID4+ICgyMCAtIERQX0JJVFMpKTsNCi19DQotI2Vsc2UNCi0jZGVmaW5lIFVQREFURV9QRyhTKSAgKFMpLT5kcGhhc2UgPSBkcGhhc2VUYWJsZVsoUyktPmZudW1dWyhTKS0+YmxvY2tdWyhTKS0+cGF0Y2gtPk1MXQ0KLSNlbmRpZg0KLQ0KLSNkZWZpbmUgVVBEQVRFX1RMTChTKVwNCi0oKChTKS0+dHlwZT09MCk/XA0KLSgoUyktPnRsbCA9IHRsbFRhYmxlWygoUyktPmZudW0pPj41XVsoUyktPmJsb2NrXVsoUyktPnBhdGNoLT5UTF1bKFMpLT5wYXRjaC0+S0xdKTpcDQotKChTKS0+dGxsID0gdGxsVGFibGVbKChTKS0+Zm51bSk+PjVdWyhTKS0+YmxvY2tdWyhTKS0+dm9sdW1lXVsoUyktPnBhdGNoLT5LTF0pKQ0KLSNkZWZpbmUgVVBEQVRFX1JLUyhTKSAoUyktPnJrcyA9IHJrc1RhYmxlWygoUyktPmZudW0pPj44XVsoUyktPmJsb2NrXVsoUyktPnBhdGNoLT5LUl0NCi0jZGVmaW5lIFVQREFURV9XRihTKSAgKFMpLT5zaW50YmwgPSB3YXZlZm9ybVsoUyktPnBhdGNoLT5XRl0NCi0jZGVmaW5lIFVQREFURV9FRyhTKSAgKFMpLT5lZ19kcGhhc2UgPSBjYWxjX2VnX2RwaGFzZShTKQ0KLSNkZWZpbmUgVVBEQVRFX0FMTChTKVwNCi0gIFVQREFURV9QRyhTKTtcDQotICBVUERBVEVfVExMKFMpO1wNCi0gIFVQREFURV9SS1MoUyk7XA0KLSAgVVBEQVRFX1dGKFMpOyBcDQotICBVUERBVEVfRUcoUykgICAgICAgICAgICAgICAgICAvKiBFRyBzaG91bGQgYmUgdXBkYXRlZCBsYXN0LiAqLw0KLQ0KLQ0KLS8qIFNsb3Qga2V5IG9uICAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNsb3RPbiAoT1BMTF9TTE9UICogc2xvdCkNCi17DQotICBzbG90LT5lZ19tb2RlID0gQVRUQUNLOw0KLSAgc2xvdC0+ZWdfcGhhc2UgPSAwOw0KLSAgc2xvdC0+cGhhc2UgPSAwOw0KLSAgVVBEQVRFX0VHKHNsb3QpOw0KLX0NCi0NCi0vKiBTbG90IGtleSBvbiB3aXRob3V0IHJlc2V0aW5nIHRoZSBwaGFzZSAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNsb3RPbjIgKE9QTExfU0xPVCAqIHNsb3QpDQotew0KLSAgc2xvdC0+ZWdfbW9kZSA9IEFUVEFDSzsNCi0gIHNsb3QtPmVnX3BoYXNlID0gMDsNCi0gIFVQREFURV9FRyhzbG90KTsNCi19DQotDQotLyogU2xvdCBrZXkgb2ZmICovDQotSU5MSU5FIHN0YXRpYyB2b2lkDQotc2xvdE9mZiAoT1BMTF9TTE9UICogc2xvdCkNCi17DQotICBpZiAoc2xvdC0+ZWdfbW9kZSA9PSBBVFRBQ0spDQotICAgIHNsb3QtPmVnX3BoYXNlID0gRVhQQU5EX0JJVFMgKEFSX0FESlVTVF9UQUJMRShISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKSksIEVHX0JJVFMsIEVHX0RQX0JJVFMpOw0KLSAgc2xvdC0+ZWdfbW9kZSA9IFJFTEVBU0U7DQotICBVUERBVEVfRUcoc2xvdCk7DQotfQ0KLQ0KLS8qIENoYW5uZWwga2V5IG9uICovDQotSU5MSU5FIHN0YXRpYyB2b2lkDQota2V5T24gKE9QTEwgKiBvcGxsLCBlX2ludDMyIGkpDQotew0KLSAgaWYgKCFvcGxsLT5zbG90X29uX2ZsYWdbaSAqIDJdKQ0KLSAgICBzbG90T24gKE1PRChvcGxsLGkpKTsNCi0gIGlmICghb3BsbC0+c2xvdF9vbl9mbGFnW2kgKiAyICsgMV0pDQotICAgIHNsb3RPbiAoQ0FSKG9wbGwsaSkpOw0KLSAgb3BsbC0+a2V5X3N0YXR1c1tpXSA9IDE7DQotfQ0KLQ0KLS8qIENoYW5uZWwga2V5IG9mZiAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLWtleU9mZiAoT1BMTCAqIG9wbGwsIGVfaW50MzIgaSkNCi17DQotICBpZiAob3BsbC0+c2xvdF9vbl9mbGFnW2kgKiAyICsgMV0pDQotICAgIHNsb3RPZmYgKENBUihvcGxsLGkpKTsNCi0gIG9wbGwtPmtleV9zdGF0dXNbaV0gPSAwOw0KLX0NCi0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPbl9CRCAoT1BMTCAqIG9wbGwpDQotew0KLSAga2V5T24gKG9wbGwsIDYpOw0KLX0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPbl9TRCAoT1BMTCAqIG9wbGwpDQotew0KLSAgaWYgKCFvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9TRF0pDQotICAgIHNsb3RPbiAoQ0FSKG9wbGwsNykpOw0KLX0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPbl9UT00gKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIGlmICghb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfVE9NXSkNCi0gICAgc2xvdE9uIChNT0Qob3BsbCw4KSk7DQotfQ0KLUlOTElORSBzdGF0aWMgdm9pZA0KLWtleU9uX0hIIChPUExMICogb3BsbCkNCi17DQotICBpZiAoIW9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0hIXSkNCi0gICAgc2xvdE9uMiAoTU9EKG9wbGwsNykpOw0KLX0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPbl9DWU0gKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIGlmICghb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfQ1lNXSkNCi0gICAgc2xvdE9uMiAoQ0FSKG9wbGwsOCkpOw0KLX0NCi0NCi0vKiBEcnVtIGtleSBvZmYgKi8NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPZmZfQkQgKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIGtleU9mZiAob3BsbCwgNik7DQotfQ0KLUlOTElORSBzdGF0aWMgdm9pZA0KLWtleU9mZl9TRCAoT1BMTCAqIG9wbGwpDQotew0KLSAgaWYgKG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1NEXSkNCi0gICAgc2xvdE9mZiAoQ0FSKG9wbGwsNykpOw0KLX0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPZmZfVE9NIChPUExMICogb3BsbCkNCi17DQotICBpZiAob3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfVE9NXSkNCi0gICAgc2xvdE9mZiAoTU9EKG9wbGwsOCkpOw0KLX0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1rZXlPZmZfSEggKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIGlmIChvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9ISF0pDQotICAgIHNsb3RPZmYgKE1PRChvcGxsLDcpKTsNCi19DQotSU5MSU5FIHN0YXRpYyB2b2lkDQota2V5T2ZmX0NZTSAoT1BMTCAqIG9wbGwpDQotew0KLSAgaWYgKG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0NZTV0pDQotICAgIHNsb3RPZmYgKENBUihvcGxsLDgpKTsNCi19DQotDQotLyogQ2hhbmdlIGEgdm9pY2UgKi8NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1zZXRQYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgaSwgZV9pbnQzMiBudW0pDQotew0KLSAgb3BsbC0+cGF0Y2hfbnVtYmVyW2ldID0gbnVtOw0KLSAgTU9EKG9wbGwsaSktPnBhdGNoID0gJm9wbGwtPnBhdGNoW251bSAqIDIgKyAwXTsNCi0gIENBUihvcGxsLGkpLT5wYXRjaCA9ICZvcGxsLT5wYXRjaFtudW0gKiAyICsgMV07DQotfQ0KLQ0KLS8qIENoYW5nZSBhIHJoeXRobSB2b2ljZSAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNldFNsb3RQYXRjaCAoT1BMTF9TTE9UICogc2xvdCwgT1BMTF9QQVRDSCAqIHBhdGNoKQ0KLXsNCi0gIHNsb3QtPnBhdGNoID0gcGF0Y2g7DQotfQ0KLQ0KLS8qIFNldCBzdXN0aW5lIHBhcmFtZXRlciAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNldFN1c3RpbmUgKE9QTEwgKiBvcGxsLCBlX2ludDMyIGMsIGVfaW50MzIgc3VzdGluZSkNCi17DQotICBDQVIob3BsbCxjKS0+c3VzdGluZSA9IHN1c3RpbmU7DQotICBpZiAoTU9EKG9wbGwsYyktPnR5cGUpDQotICAgIE1PRChvcGxsLGMpLT5zdXN0aW5lID0gc3VzdGluZTsNCi19DQotDQotLyogVm9sdW1lIDogNmJpdCAoIFZvbHVtZSByZWdpc3RlciA8PCAyICkgKi8NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1zZXRWb2x1bWUgKE9QTEwgKiBvcGxsLCBlX2ludDMyIGMsIGVfaW50MzIgdm9sdW1lKQ0KLXsNCi0gIENBUihvcGxsLGMpLT52b2x1bWUgPSB2b2x1bWU7DQotfQ0KLQ0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNldFNsb3RWb2x1bWUgKE9QTExfU0xPVCAqIHNsb3QsIGVfaW50MzIgdm9sdW1lKQ0KLXsNCi0gIHNsb3QtPnZvbHVtZSA9IHZvbHVtZTsNCi19DQotDQotLyogU2V0IEYtTnVtYmVyICggZm51bSA6IDliaXQgKSAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNldEZudW1iZXIgKE9QTEwgKiBvcGxsLCBlX2ludDMyIGMsIGVfaW50MzIgZm51bSkNCi17DQotICBDQVIob3BsbCxjKS0+Zm51bSA9IGZudW07DQotICBNT0Qob3BsbCxjKS0+Zm51bSA9IGZudW07DQotfQ0KLQ0KLS8qIFNldCBCbG9jayBkYXRhIChibG9jayA6IDNiaXQgKSAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXNldEJsb2NrIChPUExMICogb3BsbCwgZV9pbnQzMiBjLCBlX2ludDMyIGJsb2NrKQ0KLXsNCi0gIENBUihvcGxsLGMpLT5ibG9jayA9IGJsb2NrOw0KLSAgTU9EKG9wbGwsYyktPmJsb2NrID0gYmxvY2s7DQotfQ0KLQ0KLS8qIENoYW5nZSBSaHl0aG0gTW9kZSAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXVwZGF0ZV9yaHl0aG1fbW9kZSAoT1BMTCAqIG9wbGwpDQotew0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls2XSAmIDB4MTApDQotICB7DQotICAgIGlmICghKG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0JEMl0gfCAob3BsbC0+cmVnWzB4MGVdICYgMzIpKSkNCi0gICAgew0KLSAgICAgIG9wbGwtPnNsb3RbU0xPVF9CRDFdLmVnX21vZGUgPSBGSU5JU0g7DQotICAgICAgb3BsbC0+c2xvdFtTTE9UX0JEMl0uZWdfbW9kZSA9IEZJTklTSDsNCi0gICAgICBzZXRQYXRjaCAob3BsbCwgNiwgb3BsbC0+cmVnWzB4MzZdID4+IDQpOw0KLSAgICB9DQotICB9DQotICBlbHNlIGlmIChvcGxsLT5yZWdbMHgwZV0gJiAzMikNCi0gIHsNCi0gICAgb3BsbC0+cGF0Y2hfbnVtYmVyWzZdID0gMTY7DQotICAgIG9wbGwtPnNsb3RbU0xPVF9CRDFdLmVnX21vZGUgPSBGSU5JU0g7DQotICAgIG9wbGwtPnNsb3RbU0xPVF9CRDJdLmVnX21vZGUgPSBGSU5JU0g7DQotICAgIHNldFNsb3RQYXRjaCAoJm9wbGwtPnNsb3RbU0xPVF9CRDFdLCAmb3BsbC0+cGF0Y2hbMTYgKiAyICsgMF0pOw0KLSAgICBzZXRTbG90UGF0Y2ggKCZvcGxsLT5zbG90W1NMT1RfQkQyXSwgJm9wbGwtPnBhdGNoWzE2ICogMiArIDFdKTsNCi0gIH0NCi0NCi0gIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbN10gJiAweDEwKQ0KLSAgew0KLSAgICBpZiAoISgob3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfSEhdICYmIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1NEXSkgfCAob3BsbC0+cmVnWzB4MGVdICYgMzIpKSkNCi0gICAgew0KLSAgICAgIG9wbGwtPnNsb3RbU0xPVF9ISF0udHlwZSA9IDA7DQotICAgICAgb3BsbC0+c2xvdFtTTE9UX0hIXS5lZ19tb2RlID0gRklOSVNIOw0KLSAgICAgIG9wbGwtPnNsb3RbU0xPVF9TRF0uZWdfbW9kZSA9IEZJTklTSDsNCi0gICAgICBzZXRQYXRjaCAob3BsbCwgNywgb3BsbC0+cmVnWzB4MzddID4+IDQpOw0KLSAgICB9DQotICB9DQotICBlbHNlIGlmIChvcGxsLT5yZWdbMHgwZV0gJiAzMikNCi0gIHsNCi0gICAgb3BsbC0+cGF0Y2hfbnVtYmVyWzddID0gMTc7DQotICAgIG9wbGwtPnNsb3RbU0xPVF9ISF0udHlwZSA9IDE7DQotICAgIG9wbGwtPnNsb3RbU0xPVF9ISF0uZWdfbW9kZSA9IEZJTklTSDsNCi0gICAgb3BsbC0+c2xvdFtTTE9UX1NEXS5lZ19tb2RlID0gRklOSVNIOw0KLSAgICBzZXRTbG90UGF0Y2ggKCZvcGxsLT5zbG90W1NMT1RfSEhdLCAmb3BsbC0+cGF0Y2hbMTcgKiAyICsgMF0pOw0KLSAgICBzZXRTbG90UGF0Y2ggKCZvcGxsLT5zbG90W1NMT1RfU0RdLCAmb3BsbC0+cGF0Y2hbMTcgKiAyICsgMV0pOw0KLSAgfQ0KLQ0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls4XSAmIDB4MTApDQotICB7DQotICAgIGlmICghKChvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9DWU1dICYmIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1RPTV0pIHwgKG9wbGwtPnJlZ1sweDBlXSAmIDMyKSkpDQotICAgIHsNCi0gICAgICBvcGxsLT5zbG90W1NMT1RfVE9NXS50eXBlID0gMDsNCi0gICAgICBvcGxsLT5zbG90W1NMT1RfVE9NXS5lZ19tb2RlID0gRklOSVNIOw0KLSAgICAgIG9wbGwtPnNsb3RbU0xPVF9DWU1dLmVnX21vZGUgPSBGSU5JU0g7DQotICAgICAgc2V0UGF0Y2ggKG9wbGwsIDgsIG9wbGwtPnJlZ1sweDM4XSA+PiA0KTsNCi0gICAgfQ0KLSAgfQ0KLSAgZWxzZSBpZiAob3BsbC0+cmVnWzB4MGVdICYgMzIpDQotICB7DQotICAgIG9wbGwtPnBhdGNoX251bWJlcls4XSA9IDE4Ow0KLSAgICBvcGxsLT5zbG90W1NMT1RfVE9NXS50eXBlID0gMTsNCi0gICAgb3BsbC0+c2xvdFtTTE9UX1RPTV0uZWdfbW9kZSA9IEZJTklTSDsNCi0gICAgb3BsbC0+c2xvdFtTTE9UX0NZTV0uZWdfbW9kZSA9IEZJTklTSDsNCi0gICAgc2V0U2xvdFBhdGNoICgmb3BsbC0+c2xvdFtTTE9UX1RPTV0sICZvcGxsLT5wYXRjaFsxOCAqIDIgKyAwXSk7DQotICAgIHNldFNsb3RQYXRjaCAoJm9wbGwtPnNsb3RbU0xPVF9DWU1dLCAmb3BsbC0+cGF0Y2hbMTggKiAyICsgMV0pOw0KLSAgfQ0KLX0NCi0NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi11cGRhdGVfa2V5X3N0YXR1cyAoT1BMTCAqIG9wbGwpDQotew0KLSAgaW50IGNoOw0KLQ0KLSAgZm9yIChjaCA9IDA7IGNoIDwgOTsgY2grKykNCi0gICAgb3BsbC0+c2xvdF9vbl9mbGFnW2NoICogMl0gPSBvcGxsLT5zbG90X29uX2ZsYWdbY2ggKiAyICsgMV0gPSAob3BsbC0+cmVnWzB4MjAgKyBjaF0pICYgMHgxMDsNCi0NCi0gIGlmIChvcGxsLT5yZWdbMHgwZV0gJiAzMikNCi0gIHsNCi0gICAgb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfQkQxXSB8PSAob3BsbC0+cmVnWzB4MGVdICYgMHgxMCk7DQotICAgIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0JEMl0gfD0gKG9wbGwtPnJlZ1sweDBlXSAmIDB4MTApOw0KLSAgICBvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9TRF0gfD0gKG9wbGwtPnJlZ1sweDBlXSAmIDB4MDgpOw0KLSAgICBvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9ISF0gfD0gKG9wbGwtPnJlZ1sweDBlXSAmIDB4MDEpOw0KLSAgICBvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9UT01dIHw9IChvcGxsLT5yZWdbMHgwZV0gJiAweDA0KTsNCi0gICAgb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfQ1lNXSB8PSAob3BsbC0+cmVnWzB4MGVdICYgMHgwMik7DQotICB9DQotfQ0KLQ0KLXZvaWQNCi1PUExMX2NvcHlQYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgbnVtLCBPUExMX1BBVENIICogcGF0Y2gpDQotew0KLSAgbWVtY3B5ICgmb3BsbC0+cGF0Y2hbbnVtXSwgcGF0Y2gsIHNpemVvZiAoT1BMTF9QQVRDSCkpOw0KLX0NCi0NCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0NCi0gICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbGl6aW5nDQotDQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotDQotc3RhdGljIHZvaWQNCi1PUExMX1NMT1RfcmVzZXQgKE9QTExfU0xPVCAqIHNsb3QsIGludCB0eXBlKQ0KLXsNCi0gIHNsb3QtPnR5cGUgPSB0eXBlOw0KLSAgc2xvdC0+c2ludGJsID0gd2F2ZWZvcm1bMF07DQotICBzbG90LT5waGFzZSA9IDA7DQotICBzbG90LT5kcGhhc2UgPSAwOw0KLSAgc2xvdC0+b3V0cHV0WzBdID0gMDsNCi0gIHNsb3QtPm91dHB1dFsxXSA9IDA7DQotICBzbG90LT5mZWVkYmFjayA9IDA7DQotICBzbG90LT5lZ19tb2RlID0gRklOSVNIOw0KLSAgc2xvdC0+ZWdfcGhhc2UgPSBFR19EUF9XSURUSDsNCi0gIHNsb3QtPmVnX2RwaGFzZSA9IDA7DQotICBzbG90LT5ya3MgPSAwOw0KLSAgc2xvdC0+dGxsID0gMDsNCi0gIHNsb3QtPnN1c3RpbmUgPSAwOw0KLSAgc2xvdC0+Zm51bSA9IDA7DQotICBzbG90LT5ibG9jayA9IDA7DQotICBzbG90LT52b2x1bWUgPSAwOw0KLSAgc2xvdC0+cGdvdXQgPSAwOw0KLSAgc2xvdC0+ZWdvdXQgPSAwOw0KLSAgc2xvdC0+cGF0Y2ggPSAmbnVsbF9wYXRjaDsNCi19DQotDQotc3RhdGljIHZvaWQNCi1pbnRlcm5hbF9yZWZyZXNoICh2b2lkKQ0KLXsNCi0jaWYgIWRlZmluZWQoUk9DS0JPWCkNCi0gIG1ha2VEcGhhc2VUYWJsZSAoKTsNCi0jZW5kaWYNCi0gIG1ha2VEcGhhc2VBUlRhYmxlICgpOw0KLSAgbWFrZURwaGFzZURSVGFibGUgKCk7DQotICBwbV9kcGhhc2UgPSAoZV91aW50MzIpIFJBVEVfQURKVVNUICgoaW50KShQTV9TUEVFRCAqIFBNX0RQX1dJRFRIKSAvIChjbGsgLyA3MikpOw0KLSAgYW1fZHBoYXNlID0gKGVfdWludDMyKSBSQVRFX0FESlVTVCAoKGludCkoQU1fU1BFRUQgKiBBTV9EUF9XSURUSCkgLyAoY2xrIC8gNzIpKTsNCi19DQotDQotc3RhdGljIHZvaWQNCi1tYWtldGFibGVzIChlX3VpbnQzMiBjLCBlX3VpbnQzMiByKQ0KLXsNCi0gIGlmIChjICE9IGNsaykNCi0gIHsNCi0gICAgY2xrID0gYzsNCi0jaWZkZWYgRU1VMjQxM19DQUxDVUxfVEFCTEVTDQotICAgIG1ha2VQbVRhYmxlICgpOw0KLSAgICBtYWtlQW1UYWJsZSAoKTsNCi0gICAgbWFrZUFkanVzdFRhYmxlICgpOw0KLSNlbmRpZg0KLSAgICBtYWtlREIyTGluVGFibGUgKCk7DQotICAgIG1ha2VUbGxUYWJsZSAoKTsNCi0gICAgbWFrZVJrc1RhYmxlICgpOw0KLSAgICBtYWtlU2luVGFibGUgKCk7DQotICAgIG1ha2VEZWZhdWx0UGF0Y2ggKCk7DQotICB9DQotDQotICBpZiAociAhPSByYXRlKQ0KLSAgew0KLSAgICByYXRlID0gcjsNCi0gICAgaW50ZXJuYWxfcmVmcmVzaCAoKTsNCi0gIH0NCi19DQotDQotdm9pZA0KLU9QTExfbmV3IChPUExMICpvcGxsLCBlX3VpbnQzMiBjbGssIGVfdWludDMyIHJhdGUpDQotew0KLSAgZV9pbnQzMiBpOw0KLQ0KLSAgbWFrZXRhYmxlcyAoY2xrLCByYXRlKTsNCi0NCi0gIG1lbXNldChvcGxsLCAwLCBzaXplb2YgKE9QTEwpKTsNCi0gIGZvciAoaSA9IDA7IGkgPCAxOSAqIDI7IGkrKykNCi0gICAgbWVtY3B5KCZvcGxsLT5wYXRjaFtpXSwmbnVsbF9wYXRjaCxzaXplb2YoT1BMTF9QQVRDSCkpOw0KLQ0KLSAgb3BsbC0+bWFzayA9IDA7DQotDQotICBPUExMX3Jlc2V0IChvcGxsKTsNCi0gIE9QTExfcmVzZXRfcGF0Y2ggKG9wbGwsIDApOw0KLX0NCi0NCi0NCi12b2lkDQotT1BMTF9kZWxldGUgKE9QTEwgKiBvcGxsKQ0KLXsNCi0gICh2b2lkKSBvcGxsOw0KLX0NCi0NCi0NCi0vKiBSZXNldCBwYXRjaCBkYXRhcyBieSBzeXN0ZW0gZGVmYXVsdC4gKi8NCi12b2lkDQotT1BMTF9yZXNldF9wYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgdHlwZSkNCi17DQotICBlX2ludDMyIGk7DQotDQotICBmb3IgKGkgPSAwOyBpIDwgMTkgKiAyOyBpKyspDQotICAgIE9QTExfY29weVBhdGNoIChvcGxsLCBpLCAmZGVmYXVsdF9wYXRjaFt0eXBlICUgT1BMTF9UT05FX05VTV1baV0pOw0KLX0NCi0NCi0vKiBSZXNldCB3aG9sZSBvZiBPUExMIGV4Y2VwdCBwYXRjaCBkYXRhcy4gKi8NCi12b2lkDQotT1BMTF9yZXNldCAoT1BMTCAqIG9wbGwpDQotew0KLSAgZV9pbnQzMiBpOw0KLQ0KLSAgaWYgKCFvcGxsKQ0KLSAgICByZXR1cm47DQotDQotICBvcGxsLT5hZHIgPSAwOw0KLSAgb3BsbC0+b3V0ID0gMDsNCi0NCi0gIG9wbGwtPnBtX3BoYXNlID0gMDsNCi0gIG9wbGwtPmFtX3BoYXNlID0gMDsNCi0NCi0gIG9wbGwtPm5vaXNlX3NlZWQgPSAweGZmZmY7DQotICBvcGxsLT5tYXNrID0gMDsNCi0NCi0gIGZvciAoaSA9IDA7IGkgPDE4OyBpKyspDQotICAgIE9QTExfU0xPVF9yZXNldCgmb3BsbC0+c2xvdFtpXSwgaSUyKTsNCi0NCi0gIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspDQotICB7DQotICAgIG9wbGwtPmtleV9zdGF0dXNbaV0gPSAwOw0KLSAgICBzZXRQYXRjaCAob3BsbCwgaSwgMCk7DQotICB9DQotDQotICBmb3IgKGkgPSAwOyBpIDwgMHg0MDsgaSsrKQ0KLSAgICBPUExMX3dyaXRlUmVnIChvcGxsLCBpLCAwKTsNCi0NCi0jaWZuZGVmIEVNVTI0MTNfQ09NUEFDVElPTg0KLSAgb3BsbC0+cmVhbHN0ZXAgPSAoZV91aW50MzIpICgoMSA8PCAzMSkgLyByYXRlKTsNCi0gIG9wbGwtPm9wbGxzdGVwID0gKGVfdWludDMyKSAoKDEgPDwgMzEpIC8gKGNsayAvIDcyKSk7DQotICBvcGxsLT5vcGxsdGltZSA9IDA7DQotICBmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykNCi0gICAgb3BsbC0+cGFuW2ldID0gMjsNCi0gIG9wbGwtPnNwcmV2WzBdID0gb3BsbC0+c3ByZXZbMV0gPSAwOw0KLSAgb3BsbC0+c25leHRbMF0gPSBvcGxsLT5zbmV4dFsxXSA9IDA7DQotI2VuZGlmDQotfQ0KLQ0KLS8qIEZvcmNlIFJlZnJlc2ggKFdoZW4gZXh0ZXJuYWwgcHJvZ3JhbSBjaGFuZ2VzIHNvbWUgcGFyYW1ldGVycykuICovDQotdm9pZA0KLU9QTExfZm9yY2VSZWZyZXNoIChPUExMICogb3BsbCkNCi17DQotICBlX2ludDMyIGk7DQotDQotICBpZiAob3BsbCA9PSBOVUxMKQ0KLSAgICByZXR1cm47DQotDQotICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQ0KLSAgICBzZXRQYXRjaChvcGxsLGksb3BsbC0+cGF0Y2hfbnVtYmVyW2ldKTsNCi0NCi0gIGZvciAoaSA9IDA7IGkgPCAxODsgaSsrKQ0KLSAgew0KLSAgICBVUERBVEVfUEcgKCZvcGxsLT5zbG90W2ldKTsNCi0gICAgVVBEQVRFX1JLUyAoJm9wbGwtPnNsb3RbaV0pOw0KLSAgICBVUERBVEVfVExMICgmb3BsbC0+c2xvdFtpXSk7DQotICAgIFVQREFURV9XRiAoJm9wbGwtPnNsb3RbaV0pOw0KLSAgICBVUERBVEVfRUcgKCZvcGxsLT5zbG90W2ldKTsNCi0gIH0NCi19DQotDQotdm9pZA0KLU9QTExfc2V0X3JhdGUgKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiByKQ0KLXsNCi0gIGlmIChyYXRlID09IHIpIHJldHVybjsNCi0gIGlmIChvcGxsLT5xdWFsaXR5KQ0KLSAgICByYXRlID0gNDk3MTY7DQotICBlbHNlDQotICAgIHJhdGUgPSByOw0KLSAgaW50ZXJuYWxfcmVmcmVzaCAoKTsNCi0gIHJhdGUgPSByOw0KLX0NCi0NCi12b2lkDQotT1BMTF9zZXRfcXVhbGl0eSAoT1BMTCAqIG9wbGwsIGVfdWludDMyIHEpDQotew0KLSAgb3BsbC0+cXVhbGl0eSA9IHE7DQotICBPUExMX3NldF9yYXRlIChvcGxsLCByYXRlKTsNCi19DQotDQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLQ0KLSAgICAgICAgICAgICAgICAgR2VuZXJhdGUgd2F2ZSBkYXRhDQotDQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLS8qIENvbnZlcnQgQW1wKDAgdG8gRUdfSEVJR0hUKSB0byBQaGFzZSgwIHRvIDJQSSkuICovDQotI2lmICggU0xPVF9BTVBfQklUUyAtIFBHX0JJVFMgKSA+IDANCi0jZGVmaW5lIHdhdmUyXzJwaShlKSAgKCAoZSkgPj4gKCBTTE9UX0FNUF9CSVRTIC0gUEdfQklUUyApKQ0KLSNlbHNlDQotI2RlZmluZSB3YXZlMl8ycGkoZSkgICggKGUpIDw8ICggUEdfQklUUyAtIFNMT1RfQU1QX0JJVFMgKSkNCi0jZW5kaWYNCi0NCi0vKiBDb252ZXJ0IEFtcCgwIHRvIEVHX0hFSUdIVCkgdG8gUGhhc2UoMCB0byA0UEkpLiAqLw0KLSNpZiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTIC0gMSApID09IDANCi0jZGVmaW5lIHdhdmUyXzRwaShlKSAgKGUpDQotI2VsaWYgKCBTTE9UX0FNUF9CSVRTIC0gUEdfQklUUyAtIDEgKSA+IDANCi0jZGVmaW5lIHdhdmUyXzRwaShlKSAgKCAoZSkgPj4gKCBTTE9UX0FNUF9CSVRTIC0gUEdfQklUUyAtIDEgKSkNCi0jZWxzZQ0KLSNkZWZpbmUgd2F2ZTJfNHBpKGUpICAoIChlKSA8PCAoIDEgKyBQR19CSVRTIC0gU0xPVF9BTVBfQklUUyApKQ0KLSNlbmRpZg0KLQ0KLS8qIENvbnZlcnQgQW1wKDAgdG8gRUdfSEVJR0hUKSB0byBQaGFzZSgwIHRvIDhQSSkuICovDQotI2lmICggU0xPVF9BTVBfQklUUyAtIFBHX0JJVFMgLSAyICkgPT0gMA0KLSNkZWZpbmUgd2F2ZTJfOHBpKGUpICAoZSkNCi0jZWxpZiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTIC0gMiApID4gMA0KLSNkZWZpbmUgd2F2ZTJfOHBpKGUpICAoIChlKSA+PiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTIC0gMiApKQ0KLSNlbHNlDQotI2RlZmluZSB3YXZlMl84cGkoZSkgICggKGUpIDw8ICggMiArIFBHX0JJVFMgLSBTTE9UX0FNUF9CSVRTICkpDQotI2VuZGlmDQotDQotLyogVXBkYXRlIEFNLCBQTSB1bml0ICovDQotSU5MSU5FIHN0YXRpYyB2b2lkDQotdXBkYXRlX2FtcG0gKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIG9wbGwtPnBtX3BoYXNlID0gKG9wbGwtPnBtX3BoYXNlICsgcG1fZHBoYXNlKSAmIChQTV9EUF9XSURUSCAtIDEpOw0KLSAgb3BsbC0+YW1fcGhhc2UgPSAob3BsbC0+YW1fcGhhc2UgKyBhbV9kcGhhc2UpICYgKEFNX0RQX1dJRFRIIC0gMSk7DQotICBvcGxsLT5sZm9fYW0gPSBBTVRBQkxFKEhJR0hCSVRTIChvcGxsLT5hbV9waGFzZSwgQU1fRFBfQklUUyAtIEFNX1BHX0JJVFMpKTsNCi0gIG9wbGwtPmxmb19wbSA9IFBNVEFCTEUoSElHSEJJVFMgKG9wbGwtPnBtX3BoYXNlLCBQTV9EUF9CSVRTIC0gUE1fUEdfQklUUykpOw0KLX0NCi0NCi0vKiBQRyAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLWNhbGNfcGhhc2UgKE9QTExfU0xPVCAqIHNsb3QsIGVfaW50MzIgbGZvKQ0KLXsNCi0gIGlmIChzbG90LT5wYXRjaC0+UE0pDQotICAgIHNsb3QtPnBoYXNlICs9IChzbG90LT5kcGhhc2UgKiBsZm8pID4+IFBNX0FNUF9CSVRTOw0KLSAgZWxzZQ0KLSAgICBzbG90LT5waGFzZSArPSBzbG90LT5kcGhhc2U7DQotDQotICBzbG90LT5waGFzZSAmPSAoRFBfV0lEVEggLSAxKTsNCi0NCi0gIHNsb3QtPnBnb3V0ID0gSElHSEJJVFMgKHNsb3QtPnBoYXNlLCBEUF9CQVNFX0JJVFMpOw0KLX0NCi0NCi0vKiBVcGRhdGUgTm9pc2UgdW5pdCAqLw0KLUlOTElORSBzdGF0aWMgdm9pZA0KLXVwZGF0ZV9ub2lzZSAoT1BMTCAqIG9wbGwpDQotew0KLSAgIGlmKG9wbGwtPm5vaXNlX3NlZWQmMSkgb3BsbC0+bm9pc2Vfc2VlZCBePSAweDgwMDMwMjA7DQotICAgb3BsbC0+bm9pc2Vfc2VlZCA+Pj0gMTsNCi19DQotDQotLyogRUcgKi8NCi1JTkxJTkUgc3RhdGljIHZvaWQNCi1jYWxjX2VudmVsb3BlIChPUExMX1NMT1QgKiBzbG90LCBlX2ludDMyIGxmbykNCi17DQotI2RlZmluZSBTMkUoeCkgKFNMMkVHKChlX2ludDMyKSh4L1NMX1NURVApKTw8KEVHX0RQX0JJVFMtRUdfQklUUykpDQotDQotICBzdGF0aWMgZV91aW50MzIgU0xbMTZdID0gew0KLSAgICBTMkUgKDAuMCksIFMyRSAoMy4wKSwgUzJFICg2LjApLCBTMkUgKDkuMCksIFMyRSAoMTIuMCksIFMyRSAoMTUuMCksIFMyRSAoMTguMCksIFMyRSAoMjEuMCksDQotICAgIFMyRSAoMjQuMCksIFMyRSAoMjcuMCksIFMyRSAoMzAuMCksIFMyRSAoMzMuMCksIFMyRSAoMzYuMCksIFMyRSAoMzkuMCksIFMyRSAoNDIuMCksIFMyRSAoNDguMCkNCi0gIH07DQotDQotICBlX3VpbnQzMiBlZ291dDsNCi0NCi0gIHN3aXRjaCAoc2xvdC0+ZWdfbW9kZSkNCi0gIHsNCi0gIGNhc2UgQVRUQUNLOg0KLSAgICBlZ291dCA9IEFSX0FESlVTVF9UQUJMRShISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKSk7DQotICAgIHNsb3QtPmVnX3BoYXNlICs9IHNsb3QtPmVnX2RwaGFzZTsNCi0gICAgaWYoKEVHX0RQX1dJRFRIICYgc2xvdC0+ZWdfcGhhc2UpfHwoc2xvdC0+cGF0Y2gtPkFSPT0xNSkpDQotICAgIHsNCi0gICAgICBlZ291dCA9IDA7DQotICAgICAgc2xvdC0+ZWdfcGhhc2UgPSAwOw0KLSAgICAgIHNsb3QtPmVnX21vZGUgPSBERUNBWTsNCi0gICAgICBVUERBVEVfRUcgKHNsb3QpOw0KLSAgICB9DQotICAgIGJyZWFrOw0KLQ0KLSAgY2FzZSBERUNBWToNCi0gICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsNCi0gICAgc2xvdC0+ZWdfcGhhc2UgKz0gc2xvdC0+ZWdfZHBoYXNlOw0KLSAgICBpZiAoc2xvdC0+ZWdfcGhhc2UgPj0gU0xbc2xvdC0+cGF0Y2gtPlNMXSkNCi0gICAgew0KLSAgICAgIGlmIChzbG90LT5wYXRjaC0+RUcpDQotICAgICAgew0KLSAgICAgICAgc2xvdC0+ZWdfcGhhc2UgPSBTTFtzbG90LT5wYXRjaC0+U0xdOw0KLSAgICAgICAgc2xvdC0+ZWdfbW9kZSA9IFNVU0hPTEQ7DQotICAgICAgICBVUERBVEVfRUcgKHNsb3QpOw0KLSAgICAgIH0NCi0gICAgICBlbHNlDQotICAgICAgew0KLSAgICAgICAgc2xvdC0+ZWdfcGhhc2UgPSBTTFtzbG90LT5wYXRjaC0+U0xdOw0KLSAgICAgICAgc2xvdC0+ZWdfbW9kZSA9IFNVU1RJTkU7DQotICAgICAgICBVUERBVEVfRUcgKHNsb3QpOw0KLSAgICAgIH0NCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgU1VTSE9MRDoNCi0gICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsNCi0gICAgaWYgKHNsb3QtPnBhdGNoLT5FRyA9PSAwKQ0KLSAgICB7DQotICAgICAgc2xvdC0+ZWdfbW9kZSA9IFNVU1RJTkU7DQotICAgICAgVVBEQVRFX0VHIChzbG90KTsNCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgU1VTVElORToNCi0gIGNhc2UgUkVMRUFTRToNCi0gICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsNCi0gICAgc2xvdC0+ZWdfcGhhc2UgKz0gc2xvdC0+ZWdfZHBoYXNlOw0KLSAgICBpZiAoZWdvdXQgPj0gKDEgPDwgRUdfQklUUykpDQotICAgIHsNCi0gICAgICBzbG90LT5lZ19tb2RlID0gRklOSVNIOw0KLSAgICAgIGVnb3V0ID0gKDEgPDwgRUdfQklUUykgLSAxOw0KLSAgICB9DQotICAgIGJyZWFrOw0KLQ0KLSAgY2FzZSBTRVRUTEU6DQotICAgIGVnb3V0ID0gSElHSEJJVFMgKHNsb3QtPmVnX3BoYXNlLCBFR19EUF9CSVRTIC0gRUdfQklUUyk7DQotICAgIHNsb3QtPmVnX3BoYXNlICs9IHNsb3QtPmVnX2RwaGFzZTsNCi0gICAgaWYgKGVnb3V0ID49ICgxIDw8IEVHX0JJVFMpKQ0KLSAgICB7DQotICAgICAgc2xvdC0+ZWdfbW9kZSA9IEFUVEFDSzsNCi0gICAgICBlZ291dCA9ICgxIDw8IEVHX0JJVFMpIC0gMTsNCi0gICAgICBVUERBVEVfRUcoc2xvdCk7DQotICAgIH0NCi0gICAgYnJlYWs7DQotDQotICBjYXNlIEZJTklTSDoNCi0gICAgZWdvdXQgPSAoMSA8PCBFR19CSVRTKSAtIDE7DQotICAgIGJyZWFrOw0KLQ0KLSAgZGVmYXVsdDoNCi0gICAgZWdvdXQgPSAoMSA8PCBFR19CSVRTKSAtIDE7DQotICAgIGJyZWFrOw0KLSAgfQ0KLQ0KLSAgaWYgKHNsb3QtPnBhdGNoLT5BTSkNCi0gICAgZWdvdXQgPSBFRzJEQiAoZWdvdXQgKyBzbG90LT50bGwpICsgbGZvOw0KLSAgZWxzZQ0KLSAgICBlZ291dCA9IEVHMkRCIChlZ291dCArIHNsb3QtPnRsbCk7DQotDQotICBpZiAoZWdvdXQgPj0gREJfTVVURSkNCi0gICAgZWdvdXQgPSBEQl9NVVRFIC0gMTsNCi0gIA0KLSAgc2xvdC0+ZWdvdXQgPSBlZ291dCB8IDM7DQotfQ0KLQ0KLS8qIENBUlJJT1IgKi8NCi1JTkxJTkUgc3RhdGljIGVfaW50MzINCi1jYWxjX3Nsb3RfY2FyIChPUExMX1NMT1QgKiBzbG90LCBlX2ludDMyIGZtKQ0KLXsNCi0gIGlmIChzbG90LT5lZ291dCA+PSAoREJfTVVURSAtIDEpKQ0KLSAgew0KLSAgICBzbG90LT5vdXRwdXRbMF0gPSAwOw0KLSAgfQ0KLSAgZWxzZQ0KLSAgew0KLSAgICBzbG90LT5vdXRwdXRbMF0gPSBEQjJMSU5fVEFCTEVbc2xvdC0+c2ludGJsWyhzbG90LT5wZ291dCt3YXZlMl84cGkoZm0pKSYoUEdfV0lEVEgtMSldICsgc2xvdC0+ZWdvdXRdOw0KLSAgfQ0KLQ0KLSAgc2xvdC0+b3V0cHV0WzFdID0gKHNsb3QtPm91dHB1dFsxXSArIHNsb3QtPm91dHB1dFswXSkgPj4gMTsNCi0gIHJldHVybiBzbG90LT5vdXRwdXRbMV07DQotfQ0KLQ0KLS8qIE1PRFVMQVRPUiAqLw0KLUlOTElORSBzdGF0aWMgZV9pbnQzMg0KLWNhbGNfc2xvdF9tb2QgKE9QTExfU0xPVCAqIHNsb3QpDQotew0KLSAgZV9pbnQzMiBmbTsNCi0NCi0gIHNsb3QtPm91dHB1dFsxXSA9IHNsb3QtPm91dHB1dFswXTsNCi0NCi0gIGlmIChzbG90LT5lZ291dCA+PSAoREJfTVVURSAtIDEpKQ0KLSAgew0KLSAgICBzbG90LT5vdXRwdXRbMF0gPSAwOw0KLSAgfQ0KLSAgZWxzZSBpZiAoc2xvdC0+cGF0Y2gtPkZCICE9IDApDQotICB7DQotICAgIGZtID0gd2F2ZTJfNHBpIChzbG90LT5mZWVkYmFjaykgPj4gKDcgLSBzbG90LT5wYXRjaC0+RkIpOw0KLSAgICBzbG90LT5vdXRwdXRbMF0gPSBEQjJMSU5fVEFCTEVbc2xvdC0+c2ludGJsWyhzbG90LT5wZ291dCtmbSkmKFBHX1dJRFRILTEpXSArIHNsb3QtPmVnb3V0XTsNCi0gIH0NCi0gIGVsc2UNCi0gIHsNCi0gICAgc2xvdC0+b3V0cHV0WzBdID0gREIyTElOX1RBQkxFW3Nsb3QtPnNpbnRibFtzbG90LT5wZ291dF0gKyBzbG90LT5lZ291dF07DQotICB9DQotDQotICBzbG90LT5mZWVkYmFjayA9IChzbG90LT5vdXRwdXRbMV0gKyBzbG90LT5vdXRwdXRbMF0pID4+IDE7DQotDQotICByZXR1cm4gc2xvdC0+ZmVlZGJhY2s7DQotDQotfQ0KLQ0KLS8qIFRPTSAqLw0KLUlOTElORSBzdGF0aWMgZV9pbnQzMg0KLWNhbGNfc2xvdF90b20gKE9QTExfU0xPVCAqIHNsb3QpDQotew0KLSAgaWYgKHNsb3QtPmVnb3V0ID49IChEQl9NVVRFIC0gMSkpDQotICAgIHJldHVybiAwOw0KLQ0KLSAgcmV0dXJuIERCMkxJTl9UQUJMRVtzbG90LT5zaW50Ymxbc2xvdC0+cGdvdXRdICsgc2xvdC0+ZWdvdXRdOw0KLQ0KLX0NCi0NCi0vKiBTTkFSRSAqLw0KLUlOTElORSBzdGF0aWMgZV9pbnQzMg0KLWNhbGNfc2xvdF9zbmFyZSAoT1BMTF9TTE9UICogc2xvdCwgZV91aW50MzIgbm9pc2UpDQotew0KLSAgaWYoc2xvdC0+ZWdvdXQ+PShEQl9NVVRFLTEpKQ0KLSAgICByZXR1cm4gMDsNCi0gIA0KLSAgaWYoQklUKHNsb3QtPnBnb3V0LDcpKQ0KLSAgICByZXR1cm4gREIyTElOX1RBQkxFWyhub2lzZT9EQl9QT1MoMCk6REJfUE9TKDE1KSkrc2xvdC0+ZWdvdXRdOw0KLSAgZWxzZQ0KLSAgICByZXR1cm4gREIyTElOX1RBQkxFWyhub2lzZT9EQl9ORUcoMCk6REJfTkVHKDE1KSkrc2xvdC0+ZWdvdXRdOw0KLX0NCi0NCi0vKiANCi0gIFRPUC1DWU0gDQotICovDQotSU5MSU5FIHN0YXRpYyBlX2ludDMyDQotY2FsY19zbG90X2N5bSAoT1BMTF9TTE9UICogc2xvdCwgZV91aW50MzIgcGdvdXRfaGgpDQotew0KLSAgZV91aW50MzIgZGJvdXQ7DQotDQotICBpZiAoc2xvdC0+ZWdvdXQgPj0gKERCX01VVEUgLSAxKSkgDQotICAgIHJldHVybiAwOw0KLSAgZWxzZSBpZiggDQotICAgICAgLyogdGhlIHNhbWUgYXMgZm1vcGwuYyAqLw0KLSAgICAgICgoQklUKHBnb3V0X2hoLFBHX0JJVFMtOCleQklUKHBnb3V0X2hoLFBHX0JJVFMtMSkpfEJJVChwZ291dF9oaCxQR19CSVRTLTcpKSBeDQotICAgICAgLyogZGlmZmVyZW50IGZyb20gZm1vcGwuYyAqLw0KLSAgICAgKEJJVChzbG90LT5wZ291dCxQR19CSVRTLTcpJiFCSVQoc2xvdC0+cGdvdXQsUEdfQklUUy01KSkNCi0gICAgKQ0KLSAgICBkYm91dCA9IERCX05FRygzKTsNCi0gIGVsc2UNCi0gICAgZGJvdXQgPSBEQl9QT1MoMyk7DQotDQotICByZXR1cm4gREIyTElOX1RBQkxFW2Rib3V0ICsgc2xvdC0+ZWdvdXRdOw0KLX0NCi0NCi0vKiANCi0gIEhJLUhBVCANCi0qLw0KLUlOTElORSBzdGF0aWMgZV9pbnQzMg0KLWNhbGNfc2xvdF9oYXQgKE9QTExfU0xPVCAqc2xvdCwgZV9pbnQzMiBwZ291dF9jeW0sIGVfdWludDMyIG5vaXNlKQ0KLXsNCi0gIGVfdWludDMyIGRib3V0Ow0KLQ0KLSAgaWYgKHNsb3QtPmVnb3V0ID49IChEQl9NVVRFIC0gMSkpIA0KLSAgICByZXR1cm4gMDsNCi0gIGVsc2UgaWYoIA0KLSAgICAgIC8qIHRoZSBzYW1lIGFzIGZtb3BsLmMgKi8NCi0gICAgICAoKEJJVChzbG90LT5wZ291dCxQR19CSVRTLTgpXkJJVChzbG90LT5wZ291dCxQR19CSVRTLTEpKXxCSVQoc2xvdC0+cGdvdXQsUEdfQklUUy03KSkgXg0KLSAgICAgIC8qIGRpZmZlcmVudCBmcm9tIGZtb3BsLmMgKi8NCi0gICAgICAoQklUKHBnb3V0X2N5bSxQR19CSVRTLTcpJiFCSVQocGdvdXRfY3ltLFBHX0JJVFMtNSkpDQotICAgICkNCi0gIHsNCi0gICAgaWYobm9pc2UpDQotICAgICAgZGJvdXQgPSBEQl9ORUcoMTIpOw0KLSAgICBlbHNlDQotICAgICAgZGJvdXQgPSBEQl9ORUcoMjQpOw0KLSAgfQ0KLSAgZWxzZQ0KLSAgew0KLSAgICBpZihub2lzZSkNCi0gICAgICBkYm91dCA9IERCX1BPUygxMik7DQotICAgIGVsc2UNCi0gICAgICBkYm91dCA9IERCX1BPUygyNCk7DQotICB9DQotDQotICByZXR1cm4gREIyTElOX1RBQkxFW2Rib3V0ICsgc2xvdC0+ZWdvdXRdOw0KLX0NCi0NCi1zdGF0aWMgZV9pbnQxNg0KLWNhbGMgKE9QTEwgKiBvcGxsKSBFTVUyNDEzX0NBTENfSUNPREU7DQotc3RhdGljIGVfaW50MTYNCi1jYWxjIChPUExMICogb3BsbCkNCi17DQotICBlX2ludDMyIGk7DQotDQotICB1cGRhdGVfYW1wbSAob3BsbCk7DQotICB1cGRhdGVfbm9pc2UgKG9wbGwpOw0KLQ0KLSAgZm9yIChpID0gMDsgaSA8IDE4OyBpKyspDQotICB7DQotICAgIGNhbGNfcGhhc2UoJm9wbGwtPnNsb3RbaV0sb3BsbC0+bGZvX3BtKTsNCi0gICAgY2FsY19lbnZlbG9wZSgmb3BsbC0+c2xvdFtpXSxvcGxsLT5sZm9fYW0pOw0KLSAgfQ0KLQ0KLSAgZV91aW50MzIgY2hhbm5lbF9tYXNrID0gb3BsbC0+bWFzazsNCi0gIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHsNCi0gICAgaWYgKENBUihvcGxsLGkpLT5lZ19tb2RlICE9IEZJTklTSCkNCi0gICAgICBjaGFubmVsX21hc2sgfD0gKDEgPDwgaSk7DQotICB9DQotDQotICBlX2ludDMyIG1peCA9IDA7DQotICANCi0gIC8qIENINiAqLw0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls2XSAmIDB4MTApIHsNCi0gICAgaWYgKGNoYW5uZWxfbWFzayAmIE9QTExfTUFTS19DSCAoNikpIHsNCi0gICAgICBtaXggKz0gY2FsY19zbG90X2NhciAoQ0FSKG9wbGwsNiksIGNhbGNfc2xvdF9tb2QoTU9EKG9wbGwsNikpKTsNCi0gICAgICBjaGFubmVsX21hc2sgJj0gfigxIDw8IDYpOw0KLQl9DQotICB9DQotDQotICAvKiBDSDcgKi8NCi0gIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbN10gJiAweDEwKSB7DQotICAgIGlmIChNT0Qob3BsbCw3KS0+ZWdfbW9kZSAhPSBGSU5JU0gpDQotICAgICAgbWl4ICs9IGNhbGNfc2xvdF9oYXQgKE1PRChvcGxsLDcpLCBDQVIob3BsbCw4KS0+cGdvdXQsIG9wbGwtPm5vaXNlX3NlZWQmMSk7DQotICAgIGlmIChjaGFubmVsX21hc2sgJiBPUExMX01BU0tfU0QpIHsNCi0gICAgICBtaXggLT0gY2FsY19zbG90X3NuYXJlIChDQVIob3BsbCw3KSwgb3BsbC0+bm9pc2Vfc2VlZCYxKTsNCi0gICAgICBjaGFubmVsX21hc2sgJj0gfk9QTExfTUFTS19TRDsNCi0JfQ0KLSAgfQ0KLQ0KLSAgLyogQ0g4ICovDQotICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzhdICYgMHgxMCkgew0KLSAgICBpZiAoTU9EKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKQ0KLSAgICAgIG1peCArPSBjYWxjX3Nsb3RfdG9tIChNT0Qob3BsbCw4KSk7DQotICAgIGlmIChjaGFubmVsX21hc2sgJiBPUExMX01BU0tfQ1lNKSB7DQotICAgICAgbWl4IC09IGNhbGNfc2xvdF9jeW0gKENBUihvcGxsLDgpLCBNT0Qob3BsbCw3KS0+cGdvdXQpOw0KLSAgICAgIGNoYW5uZWxfbWFzayAmPSB+T1BMTF9NQVNLX0NZTTsNCi0gICAgfQ0KLSAgfQ0KLSAgDQotICBtaXggPDw9IDE7DQotICANCi0gIG9wbGwtPmN1cnJlbnRfbWFzayA9IGNoYW5uZWxfbWFzazsNCi0gIGZvciAoaSA9IDA7IGNoYW5uZWxfbWFzazsgY2hhbm5lbF9tYXNrID4+PSAxLCArK2kpIHsNCi0gICAgaWYgKGNoYW5uZWxfbWFzayAmIDEpIHsNCi0gICAgICBtaXggKz0gY2FsY19zbG90X2NhciAoQ0FSKG9wbGwsaSksIGNhbGNfc2xvdF9tb2QoTU9EKG9wbGwsaSkpKTsNCi0gICAgfQ0KLSAgfQ0KLQ0KLSAgcmV0dXJuIChlX2ludDE2KSBtaXggPDwgMzsNCi19DQotDQotdm9pZA0KLU9QTExfc2V0X2ludGVybmFsX211dGUoT1BMTCAqIG9wbGwsIGVfdWludDMyIG11dGUpDQotew0KLSAgb3BsbC0+aW50ZXJuYWxfbXV0ZSA9IG11dGU7DQotfQ0KLQ0KLWVfdWludDMyDQotT1BMTF9pc19pbnRlcm5hbF9tdXRlZChPUExMICogb3BsbCkNCi17DQotICByZXR1cm4gb3BsbC0+aW50ZXJuYWxfbXV0ZTsgDQotfQ0KLQ0KLXN0YXRpYyBlX3VpbnQzMg0KLWNoZWNrX211dGVfaGVscGVyKE9QTEwgKiBvcGxsKQ0KLXsJCQ0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCA2OyBpKyspIHsNCi0gICAgLyogaWYgKGNoW2ldLmNhci5lZ19tb2RlICE9IEZJTklTSCkgcmV0dXJuIDA7ICovDQotICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoaSkpICYmIChDQVIob3BsbCxpKS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsNCi0gIH0NCi0NCi0gIGlmICghKG9wbGwtPnJlZ1sweDBlXSAmIDB4MjApKSB7DQotICAgIGZvcihpbnQgaSA9IDY7IGkgPCA5OyBpKyspIHsNCi0gICAgICAvKiBpZiAoY2hbaV0uY2FyLmVnX21vZGUgIT0gRklOSVNIKSByZXR1cm4gMDsgKi8NCi0gICAgICBpZiAoIShvcGxsLT5jdXJyZW50X21hc2sgJiBPUExMX01BU0tfQ0ggKGkpKSAmJiAoQ0FSKG9wbGwsaSktPmVnX21vZGUgIT0gRklOSVNIKSkgcmV0dXJuIDA7DQotICAgIH0NCi0gIH0gZWxzZSB7DQotICAgIC8qIGlmIChjaFs2XS5jYXIuZWdfbW9kZSAhPSBGSU5JU0gpIHJldHVybiBmYWxzZTsNCi0gICAgaWYgKGNoWzddLm1vZC5lZ19tb2RlICE9IEZJTklTSCkgcmV0dXJuIGZhbHNlOw0KLSAgICBpZiAoY2hbN10uY2FyLmVnX21vZGUgIT0gRklOSVNIKSByZXR1cm4gZmFsc2U7DQotICAgIGlmIChjaFs4XS5tb2QuZWdfbW9kZSAhPSBGSU5JU0gpIHJldHVybiBmYWxzZTsNCi0gICAgaWYgKGNoWzhdLmNhci5lZ19tb2RlICE9IEZJTklTSCkgcmV0dXJuIGZhbHNlOyAqLw0KLSAgICBpZiAoIShvcGxsLT5jdXJyZW50X21hc2sgJiBPUExMX01BU0tfQ0ggKDYpKSAmJiAoQ0FSKG9wbGwsNiktPmVnX21vZGUgIT0gRklOSVNIKSkgcmV0dXJuIDA7DQotICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoNykpICYmIChNT0Qob3BsbCw3KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsNCi0gICAgaWYgKCEob3BsbC0+Y3VycmVudF9tYXNrICYgT1BMTF9NQVNLX0NIICg3KSkgJiYgKENBUihvcGxsLDcpLT5lZ19tb2RlICE9IEZJTklTSCkpIHJldHVybiAwOw0KLSAgICBpZiAoIShvcGxsLT5jdXJyZW50X21hc2sgJiBPUExMX01BU0tfQ0ggKDgpKSAmJiAoTU9EKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKSkgcmV0dXJuIDA7DQotICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoOCkpICYmIChDQVIob3BsbCw4KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsNCi0gIH0NCi0gIA0KLSAgcmV0dXJuIDE7ICAgIC8qIG5vdGhpbmcgaXMgcGxheWluZywgdGhlbiBtdXRlICovDQotfQ0KLQ0KLXN0YXRpYyB2b2lkDQotY2hlY2tfbXV0ZShPUExMICogb3BsbCkNCi17DQotICBPUExMX3NldF9pbnRlcm5hbF9tdXRlIChvcGxsLCBjaGVja19tdXRlX2hlbHBlciAob3BsbCkpOw0KLX0NCi0NCi1FTVUyNDEzX0FQSSBlX2ludDE2ICpPUExMX3VwZGF0ZV9idWZmZXIoT1BMTCAqIG9wbGwsIGVfdWludDMyIGxlbmd0aCkNCi17DQotICBlX2ludDE2KiBidWYgPSBvcGxsLT5idWZmZXI7DQotICB3aGlsZSAobGVuZ3RoLS0pIHsNCi0gICAgKihidWYrKykgPSBjYWxjIChvcGxsKTsNCi0gIH0NCi0gIGNoZWNrX211dGUgKG9wbGwpOw0KLQ0KLSAgcmV0dXJuIG9wbGwtPmJ1ZmZlcjsNCi19DQotDQotI2lmZGVmIEVNVTI0MTNfQ09NUEFDVElPTg0KLWVfaW50MTYNCi1PUExMX2NhbGMgKE9QTEwgKiBvcGxsKQ0KLXsNCi0gIHJldHVybiBjYWxjIChvcGxsKTsNCi19DQotI2Vsc2UNCi1lX2ludDE2DQotT1BMTF9jYWxjIChPUExMICogb3BsbCkNCi17DQotICBpZiAoIW9wbGwtPnF1YWxpdHkpDQotICAgIHJldHVybiBjYWxjIChvcGxsKTsNCi0NCi0gIHdoaWxlIChvcGxsLT5yZWFsc3RlcCA+IG9wbGwtPm9wbGx0aW1lKQ0KLSAgew0KLSAgICBvcGxsLT5vcGxsdGltZSArPSBvcGxsLT5vcGxsc3RlcDsNCi0gICAgb3BsbC0+cHJldiA9IG9wbGwtPm5leHQ7DQotICAgIG9wbGwtPm5leHQgPSBjYWxjIChvcGxsKTsNCi0gIH0NCi0NCi0gIG9wbGwtPm9wbGx0aW1lIC09IG9wbGwtPnJlYWxzdGVwOw0KLSAgb3BsbC0+b3V0ID0gKGVfaW50MTYpICgoKGRvdWJsZSkgb3BsbC0+bmV4dCAqIChvcGxsLT5vcGxsc3RlcCAtIG9wbGwtPm9wbGx0aW1lKQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZG91YmxlKSBvcGxsLT5wcmV2ICogb3BsbC0+b3BsbHRpbWUpIC8gb3BsbC0+b3BsbHN0ZXApOw0KLQ0KLSAgcmV0dXJuIChlX2ludDE2KSBvcGxsLT5vdXQ7DQotfQ0KLSNlbmRpZg0KLQ0KLWVfdWludDMyDQotT1BMTF9zZXRNYXNrIChPUExMICogb3BsbCwgZV91aW50MzIgbWFzaykNCi17DQotICBlX3VpbnQzMiByZXQ7DQotDQotICBpZiAob3BsbCkNCi0gIHsNCi0gICAgcmV0ID0gb3BsbC0+bWFzazsNCi0gICAgb3BsbC0+bWFzayA9IG1hc2s7DQotICAgIHJldHVybiByZXQ7DQotICB9DQotICBlbHNlDQotICAgIHJldHVybiAwOw0KLX0NCi0NCi1lX3VpbnQzMg0KLU9QTExfdG9nZ2xlTWFzayAoT1BMTCAqIG9wbGwsIGVfdWludDMyIG1hc2spDQotew0KLSAgZV91aW50MzIgcmV0Ow0KLQ0KLSAgaWYgKG9wbGwpDQotICB7DQotICAgIHJldCA9IG9wbGwtPm1hc2s7DQotICAgIG9wbGwtPm1hc2sgXj0gbWFzazsNCi0gICAgcmV0dXJuIHJldDsNCi0gIH0NCi0gIGVsc2UNCi0gICAgcmV0dXJuIDA7DQotfQ0KLQ0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotDQotICAgICAgICAgICAgICAgICAgICAgICBJL08gQ3RybA0KLQ0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLQ0KLXZvaWQNCi1PUExMX3dyaXRlUmVnIChPUExMICogb3BsbCwgZV91aW50MzIgcmVnLCBlX3VpbnQzMiBkYXRhKQ0KLXsNCi0gIGVfaW50MzIgaSwgdiwgY2g7DQotDQotICBkYXRhID0gZGF0YSAmIDB4ZmY7DQotICByZWcgPSByZWcgJiAweDNmOw0KLSAgb3BsbC0+cmVnW3JlZ10gPSAoZV91aW50OCkgZGF0YTsNCi0NCi0gIHN3aXRjaCAocmVnKQ0KLSAgew0KLSAgY2FzZSAweDAwOg0KLSAgICBvcGxsLT5wYXRjaFswXS5BTSA9IChkYXRhID4+IDcpICYgMTsNCi0gICAgb3BsbC0+cGF0Y2hbMF0uUE0gPSAoZGF0YSA+PiA2KSAmIDE7DQotICAgIG9wbGwtPnBhdGNoWzBdLkVHID0gKGRhdGEgPj4gNSkgJiAxOw0KLSAgICBvcGxsLT5wYXRjaFswXS5LUiA9IChkYXRhID4+IDQpICYgMTsNCi0gICAgb3BsbC0+cGF0Y2hbMF0uTUwgPSAoZGF0YSkgJiAxNTsNCi0gICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykNCi0gICAgew0KLSAgICAgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbaV0gPT0gMCkNCi0gICAgICB7DQotICAgICAgICBVUERBVEVfUEcgKE1PRChvcGxsLGkpKTsNCi0gICAgICAgIFVQREFURV9SS1MgKE1PRChvcGxsLGkpKTsNCi0gICAgICAgIFVQREFURV9FRyAoTU9EKG9wbGwsaSkpOw0KLSAgICAgIH0NCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgwMToNCi0gICAgb3BsbC0+cGF0Y2hbMV0uQU0gPSAoZGF0YSA+PiA3KSAmIDE7DQotICAgIG9wbGwtPnBhdGNoWzFdLlBNID0gKGRhdGEgPj4gNikgJiAxOw0KLSAgICBvcGxsLT5wYXRjaFsxXS5FRyA9IChkYXRhID4+IDUpICYgMTsNCi0gICAgb3BsbC0+cGF0Y2hbMV0uS1IgPSAoZGF0YSA+PiA0KSAmIDE7DQotICAgIG9wbGwtPnBhdGNoWzFdLk1MID0gKGRhdGEpICYgMTU7DQotICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspDQotICAgIHsNCi0gICAgICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyW2ldID09IDApDQotICAgICAgew0KLSAgICAgICAgVVBEQVRFX1BHIChDQVIob3BsbCxpKSk7DQotICAgICAgICBVUERBVEVfUktTIChDQVIob3BsbCxpKSk7DQotICAgICAgICBVUERBVEVfRUcgKENBUihvcGxsLGkpKTsNCi0gICAgICB9DQotICAgIH0NCi0gICAgYnJlYWs7DQotDQotICBjYXNlIDB4MDI6DQotICAgIG9wbGwtPnBhdGNoWzBdLktMID0gKGRhdGEgPj4gNikgJiAzOw0KLSAgICBvcGxsLT5wYXRjaFswXS5UTCA9IChkYXRhKSAmIDYzOw0KLSAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQ0KLSAgICB7DQotICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQ0KLSAgICAgIHsNCi0gICAgICAgIFVQREFURV9UTEwoTU9EKG9wbGwsaSkpOw0KLSAgICAgIH0NCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgwMzoNCi0gICAgb3BsbC0+cGF0Y2hbMV0uS0wgPSAoZGF0YSA+PiA2KSAmIDM7DQotICAgIG9wbGwtPnBhdGNoWzFdLldGID0gKGRhdGEgPj4gNCkgJiAxOw0KLSAgICBvcGxsLT5wYXRjaFswXS5XRiA9IChkYXRhID4+IDMpICYgMTsNCi0gICAgb3BsbC0+cGF0Y2hbMF0uRkIgPSAoZGF0YSkgJiA3Ow0KLSAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQ0KLSAgICB7DQotICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQ0KLSAgICAgIHsNCi0gICAgICAgIFVQREFURV9XRihNT0Qob3BsbCxpKSk7DQotICAgICAgICBVUERBVEVfV0YoQ0FSKG9wbGwsaSkpOw0KLSAgICAgIH0NCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgwNDoNCi0gICAgb3BsbC0+cGF0Y2hbMF0uQVIgPSAoZGF0YSA+PiA0KSAmIDE1Ow0KLSAgICBvcGxsLT5wYXRjaFswXS5EUiA9IChkYXRhKSAmIDE1Ow0KLSAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQ0KLSAgICB7DQotICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQ0KLSAgICAgIHsNCi0gICAgICAgIFVQREFURV9FRyAoTU9EKG9wbGwsaSkpOw0KLSAgICAgIH0NCi0gICAgfQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgwNToNCi0gICAgb3BsbC0+cGF0Y2hbMV0uQVIgPSAoZGF0YSA+PiA0KSAmIDE1Ow0KLSAgICBvcGxsLT5wYXRjaFsxXS5EUiA9IChkYXRhKSAmIDE1Ow0KLSAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQ0KLSAgICB7DQotICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQ0KLSAgICAgIHsNCi0gICAgICAgIFVQREFURV9FRyhDQVIob3BsbCxpKSk7DQotICAgICAgfQ0KLSAgICB9DQotICAgIGJyZWFrOw0KLQ0KLSAgY2FzZSAweDA2Og0KLSAgICBvcGxsLT5wYXRjaFswXS5TTCA9IChkYXRhID4+IDQpICYgMTU7DQotICAgIG9wbGwtPnBhdGNoWzBdLlJSID0gKGRhdGEpICYgMTU7DQotICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspDQotICAgIHsNCi0gICAgICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyW2ldID09IDApDQotICAgICAgew0KLSAgICAgICAgVVBEQVRFX0VHIChNT0Qob3BsbCxpKSk7DQotICAgICAgfQ0KLSAgICB9DQotICAgIGJyZWFrOw0KLQ0KLSAgY2FzZSAweDA3Og0KLSAgICBvcGxsLT5wYXRjaFsxXS5TTCA9IChkYXRhID4+IDQpICYgMTU7DQotICAgIG9wbGwtPnBhdGNoWzFdLlJSID0gKGRhdGEpICYgMTU7DQotICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspDQotICAgIHsNCi0gICAgICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyW2ldID09IDApDQotICAgICAgew0KLSAgICAgICAgVVBEQVRFX0VHIChDQVIob3BsbCxpKSk7DQotICAgICAgfQ0KLSAgICB9DQotICAgIGJyZWFrOw0KLQ0KLSAgY2FzZSAweDBlOg0KLSAgICB1cGRhdGVfcmh5dGhtX21vZGUgKG9wbGwpOw0KLSAgICBpZiAoZGF0YSAmIDMyKQ0KLSAgICB7DQotICAgICAgaWYgKGRhdGEgJiAweDEwKQ0KLSAgICAgICAga2V5T25fQkQgKG9wbGwpOw0KLSAgICAgIGVsc2UNCi0gICAgICAgIGtleU9mZl9CRCAob3BsbCk7DQotICAgICAgaWYgKGRhdGEgJiAweDgpDQotICAgICAgICBrZXlPbl9TRCAob3BsbCk7DQotICAgICAgZWxzZQ0KLSAgICAgICAga2V5T2ZmX1NEIChvcGxsKTsNCi0gICAgICBpZiAoZGF0YSAmIDB4NCkNCi0gICAgICAgIGtleU9uX1RPTSAob3BsbCk7DQotICAgICAgZWxzZQ0KLSAgICAgICAga2V5T2ZmX1RPTSAob3BsbCk7DQotICAgICAgaWYgKGRhdGEgJiAweDIpDQotICAgICAgICBrZXlPbl9DWU0gKG9wbGwpOw0KLSAgICAgIGVsc2UNCi0gICAgICAgIGtleU9mZl9DWU0gKG9wbGwpOw0KLSAgICAgIGlmIChkYXRhICYgMHgxKQ0KLSAgICAgICAga2V5T25fSEggKG9wbGwpOw0KLSAgICAgIGVsc2UNCi0gICAgICAgIGtleU9mZl9ISCAob3BsbCk7DQotICAgIH0NCi0gICAgdXBkYXRlX2tleV9zdGF0dXMgKG9wbGwpOw0KLQ0KLSAgICBVUERBVEVfQUxMIChNT0Qob3BsbCw2KSk7DQotICAgIFVQREFURV9BTEwgKENBUihvcGxsLDYpKTsNCi0gICAgVVBEQVRFX0FMTCAoTU9EKG9wbGwsNykpOw0KLSAgICBVUERBVEVfQUxMIChDQVIob3BsbCw3KSk7DQotICAgIFVQREFURV9BTEwgKE1PRChvcGxsLDgpKTsNCi0gICAgVVBEQVRFX0FMTCAoQ0FSKG9wbGwsOCkpOw0KLQ0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgwZjoNCi0gICAgYnJlYWs7DQotDQotICBjYXNlIDB4MTA6DQotICBjYXNlIDB4MTE6DQotICBjYXNlIDB4MTI6DQotICBjYXNlIDB4MTM6DQotICBjYXNlIDB4MTQ6DQotICBjYXNlIDB4MTU6DQotICBjYXNlIDB4MTY6DQotICBjYXNlIDB4MTc6DQotICBjYXNlIDB4MTg6DQotICAgIGNoID0gcmVnIC0gMHgxMDsNCi0gICAgc2V0Rm51bWJlciAob3BsbCwgY2gsIGRhdGEgKyAoKG9wbGwtPnJlZ1sweDIwICsgY2hdICYgMSkgPDwgOCkpOw0KLSAgICBVUERBVEVfQUxMIChNT0Qob3BsbCxjaCkpOw0KLSAgICBVUERBVEVfQUxMIChDQVIob3BsbCxjaCkpOw0KLSAgICBicmVhazsNCi0NCi0gIGNhc2UgMHgyMDoNCi0gIGNhc2UgMHgyMToNCi0gIGNhc2UgMHgyMjoNCi0gIGNhc2UgMHgyMzoNCi0gIGNhc2UgMHgyNDoNCi0gIGNhc2UgMHgyNToNCi0gIGNhc2UgMHgyNjoNCi0gIGNhc2UgMHgyNzoNCi0gIGNhc2UgMHgyODoNCi0gICAgY2ggPSByZWcgLSAweDIwOw0KLSAgICBzZXRGbnVtYmVyIChvcGxsLCBjaCwgKChkYXRhICYgMSkgPDwgOCkgKyBvcGxsLT5yZWdbMHgxMCArIGNoXSk7DQotICAgIHNldEJsb2NrIChvcGxsLCBjaCwgKGRhdGEgPj4gMSkgJiA3KTsNCi0gICAgc2V0U3VzdGluZSAob3BsbCwgY2gsIChkYXRhID4+IDUpICYgMSk7DQotICAgIGlmIChkYXRhICYgMHgxMCkNCi0gICAgICBrZXlPbiAob3BsbCwgY2gpOw0KLSAgICBlbHNlDQotICAgICAga2V5T2ZmIChvcGxsLCBjaCk7DQotICAgIFVQREFURV9BTEwgKE1PRChvcGxsLGNoKSk7DQotICAgIFVQREFURV9BTEwgKENBUihvcGxsLGNoKSk7DQotICAgIHVwZGF0ZV9rZXlfc3RhdHVzIChvcGxsKTsNCi0gICAgdXBkYXRlX3JoeXRobV9tb2RlIChvcGxsKTsNCi0gICAgYnJlYWs7DQotDQotICBjYXNlIDB4MzA6DQotICBjYXNlIDB4MzE6DQotICBjYXNlIDB4MzI6DQotICBjYXNlIDB4MzM6DQotICBjYXNlIDB4MzQ6DQotICBjYXNlIDB4MzU6DQotICBjYXNlIDB4MzY6DQotICBjYXNlIDB4Mzc6DQotICBjYXNlIDB4Mzg6DQotICAgIGkgPSAoZGF0YSA+PiA0KSAmIDE1Ow0KLSAgICB2ID0gZGF0YSAmIDE1Ow0KLSAgICBpZiAoKG9wbGwtPnJlZ1sweDBlXSAmIDMyKSAmJiAocmVnID49IDB4MzYpKQ0KLSAgICB7DQotICAgICAgc3dpdGNoIChyZWcpDQotICAgICAgew0KLSAgICAgIGNhc2UgMHgzNzoNCi0gICAgICAgIHNldFNsb3RWb2x1bWUgKE1PRChvcGxsLDcpLCBpIDw8IDIpOw0KLSAgICAgICAgYnJlYWs7DQotICAgICAgY2FzZSAweDM4Og0KLSAgICAgICAgc2V0U2xvdFZvbHVtZSAoTU9EKG9wbGwsOCksIGkgPDwgMik7DQotICAgICAgICBicmVhazsNCi0gICAgICBkZWZhdWx0Og0KLSAgICAgICAgYnJlYWs7DQotICAgICAgfQ0KLSAgICB9DQotICAgIGVsc2UNCi0gICAgew0KLSAgICAgIHNldFBhdGNoIChvcGxsLCByZWcgLSAweDMwLCBpKTsNCi0gICAgfQ0KLSAgICBzZXRWb2x1bWUgKG9wbGwsIHJlZyAtIDB4MzAsIHYgPDwgMik7DQotICAgIFVQREFURV9BTEwgKE1PRChvcGxsLHJlZyAtIDB4MzApKTsNCi0gICAgVVBEQVRFX0FMTCAoQ0FSKG9wbGwscmVnIC0gMHgzMCkpOw0KLSAgICBicmVhazsNCi0NCi0gIGRlZmF1bHQ6DQotICAgIGJyZWFrOw0KLQ0KLSAgfQ0KLX0NCi0NCi12b2lkDQotT1BMTF93cml0ZUlPIChPUExMICogb3BsbCwgZV91aW50MzIgYWRyLCBlX3VpbnQzMiB2YWwpDQotew0KLSAgaWYgKGFkciAmIDEpDQotICAgIE9QTExfd3JpdGVSZWcgKG9wbGwsIG9wbGwtPmFkciwgdmFsKTsNCi0gIGVsc2UNCi0gICAgb3BsbC0+YWRyID0gdmFsOw0KLX0NCi0NCi1lX3VpbnQzMg0KLU9QTExfcmVhZChPUExMICogb3BsbCwgZV91aW50MzIgYSkNCi17DQotICBpZiggIShhJjEpICkNCi0gICAgew0KLQkvKiBzdGF0dXMgcG9ydCAqLw0KLQlyZXR1cm4gb3BsbC0+c3RhdHVzOw0KLSAgfQ0KLSAgcmV0dXJuIDB4ZmY7DQotfQ0KLQ0KLSNpZm5kZWYgRU1VMjQxM19DT01QQUNUSU9ODQotLyogU1RFUkVPIE1PREUgKE9QVCkgKi8NCi12b2lkDQotT1BMTF9zZXRfcGFuIChPUExMICogb3BsbCwgZV91aW50MzIgY2gsIGVfdWludDMyIHBhbikNCi17DQotICBvcGxsLT5wYW5bY2ggJiAxNV0gPSBwYW4gJiAzOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLWNhbGNfc3RlcmVvIChPUExMICogb3BsbCwgZV9pbnQzMiBvdXRbMl0pDQotew0KLSAgZV9pbnQzMiBiWzRdID0geyAwLCAwLCAwLCAwIH07ICAgICAgICAvKiBJZ25vcmUsIFJpZ2h0LCBMZWZ0LCBDZW50ZXIgKi8NCi0gIGVfaW50MzIgcls0XSA9IHsgMCwgMCwgMCwgMCB9OyAgICAgICAgLyogSWdub3JlLCBSaWdodCwgTGVmdCwgQ2VudGVyICovDQotICBlX2ludDMyIGk7DQotDQotICB1cGRhdGVfYW1wbSAob3BsbCk7DQotICB1cGRhdGVfbm9pc2UgKG9wbGwpOw0KLQ0KLSAgZm9yKGk9MDtpPDE4O2krKykNCi0gIHsNCi0gICAgY2FsY19waGFzZSgmb3BsbC0+c2xvdFtpXSxvcGxsLT5sZm9fcG0pOw0KLSAgICBjYWxjX2VudmVsb3BlKCZvcGxsLT5zbG90W2ldLG9wbGwtPmxmb19hbSk7DQotICB9DQotDQotICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQ0KLSAgICBpZiAoIShvcGxsLT5tYXNrICYgT1BMTF9NQVNLX0NIIChpKSkgJiYgKENBUihvcGxsLGkpLT5lZ19tb2RlICE9IEZJTklTSCkpDQotICAgICAgYltvcGxsLT5wYW5baV1dICs9IGNhbGNfc2xvdF9jYXIgKENBUihvcGxsLGkpLCBjYWxjX3Nsb3RfbW9kIChNT0Qob3BsbCxpKSkpOw0KLQ0KLQ0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls2XSA8PSAxNSkNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DSCAoNikpICYmIChDQVIob3BsbCw2KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKQ0KLSAgICAgIGJbb3BsbC0+cGFuWzZdXSArPSBjYWxjX3Nsb3RfY2FyIChDQVIob3BsbCw2KSwgY2FsY19zbG90X21vZCAoTU9EKG9wbGwsNikpKTsNCi0gIH0NCi0gIGVsc2UNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19CRCkgJiYgKENBUihvcGxsLDYpLT5lZ19tb2RlICE9IEZJTklTSCkpDQotICAgICAgcltvcGxsLT5wYW5bOV1dICs9IGNhbGNfc2xvdF9jYXIgKENBUihvcGxsLDYpLCBjYWxjX3Nsb3RfbW9kIChNT0Qob3BsbCw2KSkpOw0KLSAgfQ0KLQ0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls3XSA8PSAxNSkNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DSCAoNykpICYmIChDQVIgKG9wbGwsNyktPmVnX21vZGUgIT0gRklOSVNIKSkNCi0gICAgICBiW29wbGwtPnBhbls3XV0gKz0gY2FsY19zbG90X2NhciAoQ0FSIChvcGxsLDcpLCBjYWxjX3Nsb3RfbW9kIChNT0QgKG9wbGwsNykpKTsNCi0gIH0NCi0gIGVsc2UNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19ISCkgJiYgKE1PRCAob3BsbCw3KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKQ0KLSAgICAgIHJbb3BsbC0+cGFuWzEwXV0gKz0gY2FsY19zbG90X2hhdCAoTU9EIChvcGxsLDcpLCBDQVIob3BsbCw4KS0+cGdvdXQsIG9wbGwtPm5vaXNlX3NlZWQmMSk7DQotICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfU0QpICYmIChDQVIgKG9wbGwsNyktPmVnX21vZGUgIT0gRklOSVNIKSkNCi0gICAgICByW29wbGwtPnBhblsxMV1dIC09IGNhbGNfc2xvdF9zbmFyZSAoQ0FSIChvcGxsLDcpLCBvcGxsLT5ub2lzZV9zZWVkJjEpOw0KLSAgfQ0KLQ0KLSAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls4XSA8PSAxNSkNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DSCAoOCkpICYmIChDQVIgKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKSkNCi0gICAgICBiW29wbGwtPnBhbls4XV0gKz0gY2FsY19zbG90X2NhciAoQ0FSIChvcGxsLDgpLCBjYWxjX3Nsb3RfbW9kIChNT0QgKG9wbGwsOCkpKTsNCi0gIH0NCi0gIGVsc2UNCi0gIHsNCi0gICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19UT00pICYmIChNT0QgKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKSkNCi0gICAgICByW29wbGwtPnBhblsxMl1dICs9IGNhbGNfc2xvdF90b20gKE1PRCAob3BsbCw4KSk7DQotICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfQ1lNKSAmJiAoQ0FSIChvcGxsLDgpLT5lZ19tb2RlICE9IEZJTklTSCkpDQotICAgICAgcltvcGxsLT5wYW5bMTNdXSAtPSBjYWxjX3Nsb3RfY3ltIChDQVIgKG9wbGwsOCksIE1PRChvcGxsLDcpLT5wZ291dCk7DQotICB9DQotDQotICBvdXRbMV0gPSAoYlsxXSArIGJbM10gKyAoKHJbMV0gKyByWzNdKSA8PCAxKSkgPDwzOw0KLSAgb3V0WzBdID0gKGJbMl0gKyBiWzNdICsgKChyWzJdICsgclszXSkgPDwgMSkpIDw8MzsNCi19DQotDQotdm9pZA0KLU9QTExfY2FsY19zdGVyZW8gKE9QTEwgKiBvcGxsLCBlX2ludDMyIG91dFsyXSkNCi17DQotICBpZiAoIW9wbGwtPnF1YWxpdHkpDQotICB7DQotICAgIGNhbGNfc3RlcmVvIChvcGxsLCBvdXQpOw0KLSAgICByZXR1cm47DQotICB9DQotDQotICB3aGlsZSAob3BsbC0+cmVhbHN0ZXAgPiBvcGxsLT5vcGxsdGltZSkNCi0gIHsNCi0gICAgb3BsbC0+b3BsbHRpbWUgKz0gb3BsbC0+b3BsbHN0ZXA7DQotICAgIG9wbGwtPnNwcmV2WzBdID0gb3BsbC0+c25leHRbMF07DQotICAgIG9wbGwtPnNwcmV2WzFdID0gb3BsbC0+c25leHRbMV07DQotICAgIGNhbGNfc3RlcmVvIChvcGxsLCBvcGxsLT5zbmV4dCk7DQotICB9DQotDQotICBvcGxsLT5vcGxsdGltZSAtPSBvcGxsLT5yZWFsc3RlcDsNCi0gIG91dFswXSA9IChlX2ludDE2KSAoKChkb3VibGUpIG9wbGwtPnNuZXh0WzBdICogKG9wbGwtPm9wbGxzdGVwIC0gb3BsbC0+b3BsbHRpbWUpDQotICAgICAgICAgICAgICAgICAgICAgICArIChkb3VibGUpIG9wbGwtPnNwcmV2WzBdICogb3BsbC0+b3BsbHRpbWUpIC8gb3BsbC0+b3BsbHN0ZXApOw0KLSAgb3V0WzFdID0gKGVfaW50MTYpICgoKGRvdWJsZSkgb3BsbC0+c25leHRbMV0gKiAob3BsbC0+b3BsbHN0ZXAgLSBvcGxsLT5vcGxsdGltZSkNCi0gICAgICAgICAgICAgICAgICAgICAgICsgKGRvdWJsZSkgb3BsbC0+c3ByZXZbMV0gKiBvcGxsLT5vcGxsdGltZSkgLyBvcGxsLT5vcGxsc3RlcCk7DQotfQ0KLSNlbmRpZiAvKiBFTVUyNDEzX0NPTVBBQ1RJT04gKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICBlbXUyNDEzLmMgLS0gWU0yNDEzIGVtdWxhdG9yIHdyaXR0ZW4gYnkgTWl0c3V0YWthIE9rYXpha2kgMjAwMQorCisgIDIwMDEgMDEtMDggOiBWZXJzaW9uIDAuMTAgLS0gMXN0IHZlcnNpb24uCisgIDIwMDEgMDEtMTUgOiBWZXJzaW9uIDAuMjAgLS0gc2VtaS1wdWJsaWMgdmVyc2lvbi4KKyAgMjAwMSAwMS0xNiA6IFZlcnNpb24gMC4zMCAtLSAxc3QgcHVibGljIHZlcnNpb24uCisgIDIwMDEgMDEtMTcgOiBWZXJzaW9uIDAuMzEgLS0gRml4ZWQgYmFzc2RydW0gcHJvYmxlbS4KKyAgICAgICAgICAgICA6IFZlcnNpb24gMC4zMiAtLSBMUEYgaW1wbGVtZW50ZWQuCisgIDIwMDEgMDEtMTggOiBWZXJzaW9uIDAuMzMgLS0gRml4ZWQgdGhlIGRydW0gcHJvYmxlbSwgcmVmaW5lIHRoZSBtaXgtZG93biBtZXRob2QuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRml4ZWQgdGhlIExGTyBidWcuCisgIDIwMDEgMDEtMjQgOiBWZXJzaW9uIDAuMzUgLS0gRml4ZWQgdGhlIGRydW0gcHJvYmxlbSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydCB1bmRvY3VtZW50ZWQgRUcgYmVoYXZpb3IuCisgIDIwMDEgMDItMDIgOiBWZXJzaW9uIDAuMzggLS0gSW1wcm92ZWQgdGhlIHBlcmZvcm1hbmNlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIHRoZSBoaS1oYXQgYW5kIGN5bWJhbCBtb2RlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXhlZCB0aGUgZGVmYXVsdCBwZXJjdXNzaXZlIGRhdGFzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vaXNlIHJlZHVjdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXhlZCB0aGUgZmVlZGJhY2sgcHJvYmxlbS4KKyAgMjAwMSAwMy0wMyA6IFZlcnNpb24gMC4zOSAtLSBGaXhlZCBzb21lIGRydW0gYnVncy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgcGVyZm9ybWFuY2UuCisgIDIwMDEgMDMtMDQgOiBWZXJzaW9uIDAuNDAgLS0gSW1wcm92ZWQgdGhlIGZlZWRiYWNrLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSB0aGUgZGVmYXVsdCB0YWJsZSBzaXplLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrIGFuZCBSYXRlIGNhbiBiZSBjaGFuZ2VkIGR1cmluZyBwbGF5LgorICAyMDAxIDA2LTI0IDogVmVyc2lvbiAwLjUwIC0tIEltcHJvdmVkIHRoZSBoaS1oYXQgYW5kIHRoZSBjeW1iYWwgdG9uZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBWUkM3IHBhdGNoIChPUExMX3Jlc2V0X3BhdGNoIGlzIGNoYW5nZWQpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIE9QTExfcmVzZXQoKSBidWcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgT1BMTF9zZXRNYXNrLCBPUExMX2dldE1hc2sgYW5kIE9QTExfdG9nZ2xlTWFzay4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBPUExMX3dyaXRlSU8uCisgIDIwMDEgMDktMjggOiBWZXJzaW9uIDAuNTEgLS0gUmVtb3ZlZCB0aGUgbm9pc2UgdGFibGUuCisgIDIwMDIgMDEtMjggOiBWZXJzaW9uIDAuNTIgLS0gQWRkZWQgU3RlcmVvIG1vZGUuCisgIDIwMDIgMDItMDcgOiBWZXJzaW9uIDAuNTMgLS0gRml4ZWQgc29tZSBkcnVtIGJ1Z3MuCisgIDIwMDIgMDItMjAgOiBWZXJzaW9uIDAuNTQgLS0gQWRkZWQgdGhlIGJlc3QgcXVhbGl0eSBtb2RlLgorICAyMDAyIDAzLTAyIDogVmVyc2lvbiAwLjU1IC0tIFJlbW92ZWQgT1BMTF9pbml0ICYgT1BMTF9jbG9zZS4KKyAgMjAwMiAwNS0zMCA6IFZlcnNpb24gMC42MCAtLSBGaXhlZCBISCZDWU0gZ2VuZXJhdG9yIGFuZCBhbGwgdm9pY2UgZGF0YXMuCisgIDIwMDQgMDQtMTAgOiBWZXJzaW9uIDAuNjEgLS0gQWRkZWQgWU1GMjgxQiB0b25lIChkZWZpbmVkIGJ5IENoYWJpbikuCisgIAorICAyMDExIDAzLTIyIDogLS0tLS0tLS0tLS0tLS0tIE1vZGlmaWVkIGJ5IGdhbWEgdG8gdXNlIHByZWNhbGN1bGF0ZWQgdGFibGVzLgorCisgIFJlZmVyZW5jZXM6IAorICAgIGZtb3BsLmMgICAgICAgIC0tIDE5OTksMjAwMCB3cml0dGVuIGJ5IFRhdHN1eXVraSBTYXRvaCAoTUFNRSBkZXZlbG9wbWVudCkuCisgICAgZm1vcGwuYyhmaXhlZCkgLS0gKEMpIDIwMDIgSmFyZWsgQnVyY3p5bnNraS4KKyAgICBzX29wbC5jICAgICAgICAtLSAyMDAxIHdyaXR0ZW4gYnkgTWFtaXlhIChORVpwbHVnIGRldmVsb3BtZW50KS4KKyAgICBmbWdlbi5jcHAgICAgICAtLSAxOTk5LDIwMDAgd3JpdHRlbiBieSBjaXNjLgorICAgIGZtcGFjLmlsbCAgICAgIC0tIDIwMDAgY3JlYXRlZCBieSBOQVJVVE8uCisgICAgTVNYLURhdGFwYWNrCisgICAgWU1VNzU3IGRhdGEgc2hlZXQKKyAgICBZTTIxNDMgZGF0YSBzaGVldAorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlICJlbXUyNDEzLmgiCisKKyNpbmNsdWRlICJlbXV0YWJsZXMuaCIKKyNpZiAhZGVmaW5lZChST0NLQk9YKQorCSNkZWZpbmUgRU1VMjQxM19DQUxDVUxfVEFCTEVTCisjZWxzZQorCSNkZWZpbmUgRU1VMjQxM19DT01QQUNUSU9OCisJI2luY2x1ZGUgImVtdXRhYmxlcy5oIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVNVTI0MTNfQ09NUEFDVElPTikgJiYgIWRlZmluZWQoUk9DS0JPWCkKKyNkZWZpbmUgT1BMTF9UT05FX05VTSAxCitzdGF0aWMgdW5zaWduZWQgY2hhciBkZWZhdWx0X2luc3RbT1BMTF9UT05FX05VTV1bKDE2ICsgMykgKiAxNl0gPSB7CisgIHsKKyNpbmNsdWRlICIyNDEzdG9uZS5oIgorICAgfQorfTsKKyNlbHNlCisjZGVmaW5lIE9QTExfVE9ORV9OVU0gMworc3RhdGljIHVuc2lnbmVkIGNoYXIgZGVmYXVsdF9pbnN0W09QTExfVE9ORV9OVU1dWygxNiArIDMpICogMTZdID0geworICB7IAorI2luY2x1ZGUgIjI0MTN0b25lLmgiIAorICB9LAorICB7CisjaW5jbHVkZSAidnJjN3RvbmUuaCIKKyAgIH0sCisgIHsKKyNpbmNsdWRlICIyODFidG9uZS5oIgorICB9Cit9OworI2VuZGlmCisKKy8qIFNpemUgb2YgU2ludGFibGUgKCA4IC0tIDE4IGNhbiBiZSB1c2VkLiA5IHJlY29tbWVuZGVkLikgKi8KKyNkZWZpbmUgUEdfQklUUyA5CisjZGVmaW5lIFBHX1dJRFRIICgxPDxQR19CSVRTKQorCisvKiBQaGFzZSBpbmNyZW1lbnQgY291bnRlciAqLworI2RlZmluZSBEUF9CSVRTIDE4CisjZGVmaW5lIERQX1dJRFRIICgxPDxEUF9CSVRTKQorI2RlZmluZSBEUF9CQVNFX0JJVFMgKERQX0JJVFMgLSBQR19CSVRTKQorCisvKiBEeW5hbWljIHJhbmdlIChBY2N1cmFjeSBvZiBzaW4gdGFibGUpICovCisjZGVmaW5lIERCX1BSRUMgNDgKKyNkZWZpbmUgREJfQklUUyA4CisjZGVmaW5lIERCX1NURVAgKChkb3VibGUpREJfUFJFQy8oMTw8REJfQklUUykpCisjZGVmaW5lIERCX01VVEUgKDE8PERCX0JJVFMpCisKKy8qIER5bmFtaWMgcmFuZ2Ugb2YgZW52ZWxvcGUgKi8KKyNkZWZpbmUgRUdfU1RFUCAwLjM3NQorI2RlZmluZSBFR19CSVRTIDcKKyNkZWZpbmUgRUdfTVVURSAoMTw8RUdfQklUUykKKworLyogRHluYW1pYyByYW5nZSBvZiB0b3RhbCBsZXZlbCAqLworI2RlZmluZSBUTF9TVEVQIDAuNzUKKyNkZWZpbmUgVExfQklUUyA2CisjZGVmaW5lIFRMX01VVEUgKDE8PFRMX0JJVFMpCisKKy8qIER5bmFtaWMgcmFuZ2Ugb2Ygc3VzdGluZSBsZXZlbCAqLworI2RlZmluZSBTTF9TVEVQIDMuMAorI2RlZmluZSBTTF9CSVRTIDQKKyNkZWZpbmUgU0xfTVVURSAoMTw8U0xfQklUUykKKworI2RlZmluZSBFRzJEQihkKSAoKGQpKihlX2ludDMyKShFR19TVEVQL0RCX1NURVApKQorI2RlZmluZSBUTDJFRyhkKSAoKGQpKihlX2ludDMyKShUTF9TVEVQL0VHX1NURVApKQorI2RlZmluZSBTTDJFRyhkKSAoKGQpKihlX2ludDMyKShTTF9TVEVQL0VHX1NURVApKQorCisjZGVmaW5lIERCX1BPUyh4KSAoeCpEQl9NVVRFL0RCX1BSRUMpCisjZGVmaW5lIERCX05FRyh4KSAoREJfTVVURStEQl9NVVRFK3gqREJfTVVURS9EQl9QUkVDKQorCisvKiBCaXRzIGZvciBsaW5lciB2YWx1ZSAqLworI2RlZmluZSBEQjJMSU5fQU1QX0JJVFMgOAorI2RlZmluZSBTTE9UX0FNUF9CSVRTIChEQjJMSU5fQU1QX0JJVFMpCisKKy8qIEJpdHMgZm9yIGVudmVsb3BlIHBoYXNlIGluY3JlbWVudGFsIGNvdW50ZXIgKi8KKyNkZWZpbmUgRUdfRFBfQklUUyAyMgorI2RlZmluZSBFR19EUF9XSURUSCAoMTw8RUdfRFBfQklUUykKKworLyogQml0cyBmb3IgUGl0Y2ggYW5kIEFtcCBtb2R1bGF0b3IgKi8KKyNkZWZpbmUgUE1fUEdfQklUUyA4CisjZGVmaW5lIFBNX1BHX1dJRFRIICgxPDxQTV9QR19CSVRTKQorI2RlZmluZSBQTV9EUF9CSVRTIDE2CisjZGVmaW5lIFBNX0RQX1dJRFRIICgxPDxQTV9EUF9CSVRTKQorI2RlZmluZSBBTV9QR19CSVRTIDgKKyNkZWZpbmUgQU1fUEdfV0lEVEggKDE8PEFNX1BHX0JJVFMpCisjZGVmaW5lIEFNX0RQX0JJVFMgMTYKKyNkZWZpbmUgQU1fRFBfV0lEVEggKDE8PEFNX0RQX0JJVFMpCisKKy8qIFBNIHRhYmxlIGlzIGNhbGN1cmF0ZWQgYnkgUE1fQU1QICogcG93KDIsUE1fREVQVEgqc2luKHgpLzEyMDApICovCisjZGVmaW5lIFBNX0FNUF9CSVRTIDgKKyNkZWZpbmUgUE1fQU1QICgxPDxQTV9BTVBfQklUUykKKworLyogUE0gc3BlZWQoSHopIGFuZCBkZXB0aChjZW50KSAqLworI2RlZmluZSBQTV9TUEVFRCA2LjQKKyNkZWZpbmUgUE1fREVQVEggMTMuNzUKKworLyogQU0gc3BlZWQoSHopIGFuZCBkZXB0aChkQikgKi8KKyNkZWZpbmUgQU1fU1BFRUQgMy42NDEzCisjZGVmaW5lIEFNX0RFUFRIIDQuODc1CisKKy8qIEN1dCB0aGUgbG93ZXIgYiBiaXQocykgb2ZmLiAqLworI2RlZmluZSBISUdIQklUUyhjLGIpICgoYyk+PihiKSkKKworLyogTGVhdmUgdGhlIGxvd2VyIGIgYml0KHMpLiAqLworI2RlZmluZSBMT1dCSVRTKGMsYikgKChjKSYoKDE8PChiKSktMSkpCisKKy8qIEV4cGFuZCB4IHdoaWNoIGlzIHMgYml0cyB0byBkIGJpdHMuICovCisjZGVmaW5lIEVYUEFORF9CSVRTKHgscyxkKSAoKHgpPDwoKGQpLShzKSkpCisKKy8qIEV4cGFuZCB4IHdoaWNoIGlzIHMgYml0cyB0byBkIGJpdHMgYW5kIGZpbGwgZXhwYW5kZWQgYml0cyAnMScgKi8KKyNkZWZpbmUgRVhQQU5EX0JJVFNfWCh4LHMsZCkgKCgoeCk8PCgoZCktKHMpKSl8KCgxPDwoKGQpLShzKSkpLTEpKQorCisvKiBBZGp1c3QgZW52ZWxvcGUgc3BlZWQgd2hpY2ggZGVwZW5kcyBvbiBzYW1wbGluZyByYXRlLiAqLworI2RlZmluZSBSQVRFX0FESlVTVCh4KSAocmF0ZT09NDk3MTY/KGVfdWludDMyKXg6KGVfdWludDMyKSgoKGxvbmcgbG9uZykoeCkqY2xrL3JhdGUrMzYpLzcyKSkKKworI2RlZmluZSBNT0Qobyx4KSAoJihvKS0+c2xvdFsoeCk8PDFdKQorI2RlZmluZSBDQVIobyx4KSAoJihvKS0+c2xvdFsoKHgpPDwxKXwxXSkKKworI2RlZmluZSBCSVQocyxiKSAoKChzKT4+KGIpKSYxKQorCisvKiBJbnB1dCBjbG9jayAqLworc3RhdGljIGVfdWludDMyIGNsayA9IDg0NDQ1MTE0MTsKKy8qIFNhbXBsaW5nIHJhdGUgKi8KK3N0YXRpYyBlX3VpbnQzMiByYXRlID0gMzM1NDkzMjsKKworLyogV2F2ZVRhYmxlIGZvciBlYWNoIGVudmVsb3BlIGFtcCAqLworc3RhdGljIGVfdWludDE2IGZ1bGxzaW50YWJsZVtQR19XSURUSF07CitzdGF0aWMgZV91aW50MTYgaGFsZnNpbnRhYmxlW1BHX1dJRFRIXTsKKworc3RhdGljIGVfdWludDE2ICp3YXZlZm9ybVsyXSA9IHsgZnVsbHNpbnRhYmxlLCBoYWxmc2ludGFibGUgfTsKKworLyogTEZPIFRhYmxlICovCisjaWZkZWYgRU1VMjQxM19DQUxDVUxfVEFCTEVTCisgICAgc3RhdGljIGVfaW50MzIgcG10YWJsZVtQTV9QR19XSURUSF07CisgICAgc3RhdGljIGVfaW50MzIgYW10YWJsZVtBTV9QR19XSURUSF07CisgICAgI2RlZmluZSBQTVRBQkxFKHgpIHBtdGFibGVbeF0KKyAgICAjZGVmaW5lIEFNVEFCTEUoeCkgYW10YWJsZVt4XQorI2Vsc2UKKyAgICAjZGVmaW5lIFBNVEFCTEUoeCkgKGVfaW50MzIpcG1fY29lZmZbeF0KKyAgICAjaWYgKFBNX1BHX1dJRFRIICE9IDI1NikKKyAgICAgICAgI2Vycm9yIFBNX1BHX1dJRFRIIG11c3QgYmUgc2V0IHRvIDI1NiBpZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMgaXMgbm90IGRlZmluZWQKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5lIEFNVEFCTEUoeCkgKGVfaW50MzIpYW1fY29lZmZbeF0KKyAgICAjaWYgKEFNX1BHX1dJRFRIICE9IDI1NikKKyAgICAgICAgI2Vycm9yIEFNX1BHX1dJRFRIIG11c3QgYmUgc2V0IHRvIDI1NiBpZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMgaXMgbm90IGRlZmluZWQKKyAgICAjZW5kaWYKKyNlbmRpZgorCisvKiBQaGFzZSBkZWx0YSBmb3IgTEZPICovCitzdGF0aWMgZV91aW50MzIgcG1fZHBoYXNlOworc3RhdGljIGVfdWludDMyIGFtX2RwaGFzZTsKKworLyogZEIgdG8gTGluZXIgdGFibGUgKi8KK3N0YXRpYyBlX2ludDE2IERCMkxJTl9UQUJMRVsoREJfTVVURSArIERCX01VVEUpICogMl07CisKKy8qIExpbmVyIHRvIExvZyBjdXJ2ZSBjb252ZXJzaW9uIHRhYmxlIChmb3IgQXR0YWNrIHJhdGUpLiAqLworI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUworICAgIHN0YXRpYyBlX3VpbnQxNiBhcl9hZGp1c3RfdGFibGVbMSA8PCBFR19CSVRTXTsKKyAgICAjZGVmaW5lIEFSX0FESlVTVF9UQUJMRSh4KSBhcl9hZGp1c3RfdGFibGVbeF0KKyNlbHNlCisgICAgI2RlZmluZSBBUl9BREpVU1RfVEFCTEUoeCkgYXJfYWRqdXN0X2NvZWZmW3hdCisgICAgI2lmIChFR19CSVRTICE9IDcpCisgICAgICAgICNlcnJvciBFR19CSVRTIG11c3QgYmUgc2V0IHRvIDcgaWYgRU1VMjQxM19DQUxDVUxfVEFCTEVTIGlzIG5vdCBkZWZpbmVkCisgICAgI2VuZGlmCisjZW5kaWYKKworLyogRW1wdHkgdm9pY2UgZGF0YSAqLworc3RhdGljIE9QTExfUEFUQ0ggbnVsbF9wYXRjaCA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OworCisvKiBCYXNpYyB2b2ljZSBEYXRhICovCitzdGF0aWMgT1BMTF9QQVRDSCBkZWZhdWx0X3BhdGNoW09QTExfVE9ORV9OVU1dWygxNiArIDMpICogMl07CisKKy8qIERlZmluaXRpb24gb2YgZW52ZWxvcGUgbW9kZSAqLworZW51bSBPUExMX0VHX1NUQVRFIAoreyBSRUFEWSwgQVRUQUNLLCBERUNBWSwgU1VTSE9MRCwgU1VTVElORSwgUkVMRUFTRSwgU0VUVExFLCBGSU5JU0ggfTsKKworLyogUGhhc2UgaW5jciB0YWJsZSBmb3IgQXR0YWNrICovCitzdGF0aWMgZV91aW50MzIgZHBoYXNlQVJUYWJsZVsxNl1bMTZdOworLyogUGhhc2UgaW5jciB0YWJsZSBmb3IgRGVjYXkgYW5kIFJlbGVhc2UgKi8KK3N0YXRpYyBlX3VpbnQzMiBkcGhhc2VEUlRhYmxlWzE2XVsxNl07CisKKy8qIEtTTCArIFRMIFRhYmxlICovCitlX3VpbnQ4IHRsbFRhYmxlWzE2XVs4XVsxIDw8IFRMX0JJVFNdWzRdOworc3RhdGljIGVfaW50MzIgcmtzVGFibGVbMl1bOF1bMl07CisKKy8qIFdlIG1heSBub3QgaGF2ZSB0b28gbXVjaCBTUkFNIGluIHJvY2tib3ggKi8KKyNpZiAhZGVmaW5lZChST0NLQk9YKQorLyogUGhhc2UgaW5jciB0YWJsZSBmb3IgUEcgKi8KK3N0YXRpYyBlX3VpbnQzMiBkcGhhc2VUYWJsZVs1MTJdWzhdWzE2XTsKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgCisgICAgICAgICAgICAgICAgICBDcmVhdGUgdGFibGVzCisgCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUworSU5MSU5FIHN0YXRpYyBlX2ludDMyCitNaW4gKGVfaW50MzIgaSwgZV9pbnQzMiBqKQoreworICBpZiAoaSA8IGopCisgICAgcmV0dXJuIGk7CisgIGVsc2UKKyAgICByZXR1cm4gajsKK30KKworLyogVGFibGUgZm9yIEFSIHRvIExvZ0N1cnZlLiAqLworc3RhdGljIHZvaWQKK21ha2VBZGp1c3RUYWJsZSAodm9pZCkKK3sKKyAgZV9pbnQzMiBpOworCisgIGFyX2FkanVzdF90YWJsZVswXSA9ICgxIDw8IEVHX0JJVFMpIC0gMTsKKyAgZm9yIChpID0gMTsgaSA8ICgxPDxFR19CSVRTKTsgaSsrKQorICAgIGFyX2FkanVzdF90YWJsZVtpXSA9IChlX3VpbnQxNikgKChkb3VibGUpICgxPDxFR19CSVRTKS0xIC0gKCgxPDxFR19CSVRTKS0xKSpsb2coaSkvbG9nKDEyNykpOworfQorI2VuZGlmCisKKy8qIFRhYmxlIGZvciBkQigwIC0tICgxPDxEQl9CSVRTKS0xKSB0byBMaW5lcigwIC0tIERCMkxJTl9BTVBfV0lEVEgpICovCitzdGF0aWMgdm9pZAorbWFrZURCMkxpblRhYmxlICh2b2lkKQoreworICBlX2ludDMyIGk7CisgIGZvciAoaSA9IDA7IGkgPCBEQl9NVVRFICsgREJfTVVURTsgaSsrKQorICB7CisgICNpZmRlZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMKKyAgICBEQjJMSU5fVEFCTEVbaV0gPSAoZV9pbnQxNikgKChkb3VibGUpICgoMSA8PCBEQjJMSU5fQU1QX0JJVFMpIC0gMSkgKiBwb3cgKDEwLCAtKGRvdWJsZSkgaSAqIERCX1NURVAgLyAyMCkpOworICAjZWxzZQorICAgIERCMkxJTl9UQUJMRVtpXSA9IGRiMmxpbl9jb2VmZltpXTsKKyAgI2VuZGlmCisgICAgaWYgKGkgPj0gREJfTVVURSkgREIyTElOX1RBQkxFW2ldID0gMDsKKyAgICBEQjJMSU5fVEFCTEVbaSArIERCX01VVEUgKyBEQl9NVVRFXSA9IChlX2ludDE2KSAoLURCMkxJTl9UQUJMRVtpXSk7CisgIH0KK30KKworI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUworLyogTGluZXIoKzAuMCAtICsxLjApIHRvIGRCKCgxPDxEQl9CSVRTKSAtIDEgLS0gMCkgKi8KK3N0YXRpYyBlX2ludDMyCitsaW4yZGIgKGRvdWJsZSBkKQoreworICBpZiAoZCA9PSAwKQorICAgIHJldHVybiAoREJfTVVURSAtIDEpOworICBlbHNlCisgICAgcmV0dXJuIE1pbiAoLShlX2ludDMyKSAoMjAuMCAqIGxvZzEwIChkKSAvIERCX1NURVApLCBEQl9NVVRFLTEpOyAgLyogMCAtLSAxMjcgKi8KK30KKyNlbmRpZgorCisvKiBTaW4gVGFibGUgKi8KK3N0YXRpYyB2b2lkCittYWtlU2luVGFibGUgKHZvaWQpCit7CisgIGVfaW50MzIgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgUEdfV0lEVEggLyA0OyBpKyspCisgICNpZmRlZiBFTVUyNDEzX0NBTENVTF9UQUJMRVMKKyAgICBmdWxsc2ludGFibGVbaV0gPSAoZV91aW50MzIpIGxpbjJkYiAoc2luICgyLjAgKiBQSSAqIGkgLyBQR19XSURUSCkgKTsKKyAgI2Vsc2UKKyAgICBmdWxsc2ludGFibGVbaV0gPSBzaW5fY29lZmZbaV07CisgICNlbmRpZgorCisgIGZvciAoaSA9IDA7IGkgPCBQR19XSURUSCAvIDQ7IGkrKykKKyAgeworICAgIGZ1bGxzaW50YWJsZVtQR19XSURUSCAvIDIgLSAxIC0gaV0gPSBmdWxsc2ludGFibGVbaV07CisgIH0KKworICBmb3IgKGkgPSAwOyBpIDwgUEdfV0lEVEggLyAyOyBpKyspCisgIHsKKyAgICBmdWxsc2ludGFibGVbUEdfV0lEVEggLyAyICsgaV0gPSAoZV91aW50MzIpIChEQl9NVVRFICsgREJfTVVURSArIGZ1bGxzaW50YWJsZVtpXSk7CisgIH0KKworICBmb3IgKGkgPSAwOyBpIDwgUEdfV0lEVEggLyAyOyBpKyspCisgICAgaGFsZnNpbnRhYmxlW2ldID0gZnVsbHNpbnRhYmxlW2ldOworICBmb3IgKGkgPSBQR19XSURUSCAvIDI7IGkgPCBQR19XSURUSDsgaSsrKQorICAgIGhhbGZzaW50YWJsZVtpXSA9IGZ1bGxzaW50YWJsZVswXTsKK30KKworI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUworc3RhdGljIGRvdWJsZSBzYXcoZG91YmxlIHBoYXNlKQoreworICBpZihwaGFzZSA8PSBQSS8yKQorICAgIHJldHVybiBwaGFzZSAqIDIgLyBQSSA7CisgIGVsc2UgaWYocGhhc2UgPD0gUEkqMy8yKQorICAgIHJldHVybiAyLjAgLSAoIHBoYXNlICogMiAvIFBJICk7CisgIGVsc2UKKyAgICByZXR1cm4gLTQuMCArIHBoYXNlICogMiAvIFBJOworfQorCisvKiBUYWJsZSBmb3IgUGl0Y2ggTW9kdWxhdG9yICovCitzdGF0aWMgdm9pZAorbWFrZVBtVGFibGUgKHZvaWQpCit7CisgIGVfaW50MzIgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgUE1fUEdfV0lEVEg7IGkrKykKKyAgICAvKiBwbXRhYmxlW2ldID0gKGVfaW50MzIpICgoZG91YmxlKSBQTV9BTVAgKiBwb3cgKDIsIChkb3VibGUpIFBNX0RFUFRIICogc2luICgyLjAgKiBQSSAqIGkgLyBQTV9QR19XSURUSCkgLyAxMjAwKSk7ICovCisgICAgcG10YWJsZVtpXSA9IChlX2ludDMyKSAoKGRvdWJsZSkgUE1fQU1QICogcG93ICgyLCAoZG91YmxlKSBQTV9ERVBUSCAqIHNhdyAoMi4wICogUEkgKiBpIC8gUE1fUEdfV0lEVEgpIC8gMTIwMCkpOyAgICAKK30KKworLyogVGFibGUgZm9yIEFtcCBNb2R1bGF0b3IgKi8KK3N0YXRpYyB2b2lkCittYWtlQW1UYWJsZSAodm9pZCkKK3sKKyAgZV9pbnQzMiBpOworCisgIGZvciAoaSA9IDA7IGkgPCBBTV9QR19XSURUSDsgaSsrKQorICAgIC8qIGFtdGFibGVbaV0gPSAoZV9pbnQzMikgKChkb3VibGUpIEFNX0RFUFRIIC8gMiAvIERCX1NURVAgKiAoMS4wICsgc2luICgyLjAgKiBQSSAqIGkgLyBQTV9QR19XSURUSCkpKTsgKi8KKyAgICBhbXRhYmxlW2ldID0gKGVfaW50MzIpICgoZG91YmxlKSBBTV9ERVBUSCAvIDIgLyBEQl9TVEVQICogKDEuMCArIHNhdyAoMi4wICogUEkgKiBpIC8gUE1fUEdfV0lEVEgpKSk7Cit9CisjZW5kaWYKKworI2lmICFkZWZpbmVkKFJPQ0tCT1gpCisvKiBQaGFzZSBpbmNyZW1lbnQgY291bnRlciB0YWJsZSAqLworc3RhdGljIHZvaWQKK21ha2VEcGhhc2VUYWJsZSAodm9pZCkKK3sKKyAgZV91aW50MzIgZm51bSwgYmxvY2ssIE1MOworICBlX3VpbnQzMiBtbHRhYmxlWzE2XSA9CisgICAgeyAxLCAxICogMiwgMiAqIDIsIDMgKiAyLCA0ICogMiwgNSAqIDIsIDYgKiAyLCA3ICogMiwgOCAqIDIsIDkgKiAyLCAxMCAqIDIsIDEwICogMiwgMTIgKiAyLCAxMiAqIDIsIDE1ICogMiwgMTUgKiAyIH07CisKKyAgZm9yIChmbnVtID0gMDsgZm51bSA8IDUxMjsgZm51bSsrKQorICAgIGZvciAoYmxvY2sgPSAwOyBibG9jayA8IDg7IGJsb2NrKyspCisgICAgICBmb3IgKE1MID0gMDsgTUwgPCAxNjsgTUwrKykKKyAgICAgICAgZHBoYXNlVGFibGVbZm51bV1bYmxvY2tdW01MXSA9IFJBVEVfQURKVVNUICgoKGZudW0gKiBtbHRhYmxlW01MXSkgPDwgYmxvY2spID4+ICgyMCAtIERQX0JJVFMpKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZAorbWFrZVRsbFRhYmxlICh2b2lkKQoreworLyogTXVsdGlwbGljYXRpb24gb3dpdGggOCB0byBoYXZlIGFuIGludGVnZXIgcmVzdWx0LiBUaGlzIGFsbG93cyB0byByZW1vdmUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9uLiAqLworI2RlZmluZSBkQjIoeCkgKGludCkoKHgpKjIqOCkKKworICBzdGF0aWMgaW50IGtsdGFibGVbMTZdID0geworICAgIGRCMiAoIDAuMDAwKSwgZEIyICggOS4wMDApLCBkQjIgKDEyLjAwMCksIGRCMiAoMTMuODc1KSwgZEIyICgxNS4wMDApLCBkQjIgKDE2LjEyNSksIGRCMiAoMTYuODc1KSwgZEIyICgxNy42MjUpLAorICAgIGRCMiAoMTguMDAwKSwgZEIyICgxOC43NTApLCBkQjIgKDE5LjEyNSksIGRCMiAoMTkuNTAwKSwgZEIyICgxOS44NzUpLCBkQjIgKDIwLjI1MCksIGRCMiAoMjAuNjI1KSwgZEIyICgyMS4wMDApCisgIH07CisKKyAgZV9pbnQzMiB0bXA7CisgIGVfaW50MzIgZm51bSwgYmxvY2ssIFRMLCBLTDsKKworICBmb3IgKGZudW0gPSAwOyBmbnVtIDwgMTY7IGZudW0rKykKKyAgICBmb3IgKGJsb2NrID0gMDsgYmxvY2sgPCA4OyBibG9jaysrKQorICAgICAgZm9yIChUTCA9IDA7IFRMIDwgNjQ7IFRMKyspCisgICAgICAgIGZvciAoS0wgPSAwOyBLTCA8IDQ7IEtMKyspCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoS0wgPT0gMCkKKyAgICAgICAgICB7CisgICAgICAgICAgICB0bGxUYWJsZVtmbnVtXVtibG9ja11bVExdW0tMXSA9IFRMMkVHIChUTCk7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgICB0bXAgPSAoZV9pbnQzMikgKChrbHRhYmxlW2ZudW1dIC0gZEIyICgzLjAwMCkgKiAoNyAtIGJsb2NrKSkvOCk7CisgICAgICAgICAgICBpZiAodG1wIDw9IDApCisgICAgICAgICAgICAgIHRsbFRhYmxlW2ZudW1dW2Jsb2NrXVtUTF1bS0xdID0gVEwyRUcgKFRMKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgLyogdGxsVGFibGVbZm51bV1bYmxvY2tdW1RMXVtLTF0gPSAoZV91aW50MzIpICgodG1wID4+ICgzIC0gS0wpKSAvIEVHX1NURVApICsgVEwyRUcgKFRMKTsgKi8KKyAgICAgICAgICAgICAgdGxsVGFibGVbZm51bV1bYmxvY2tdW1RMXVtLTF0gPSAoZV91aW50MzIpICgodG1wIDw8IEtMKSAvIChpbnQpKEVHX1NURVAqOCkpICsgVEwyRUcgKFRMKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KK30KKworI2lmZGVmIFVTRV9TUEVDX0VOVl9TUEVFRAorc3RhdGljIGRvdWJsZSBhdHRhY2t0aW1lWzE2XVs0XSA9IHsKKyAgezAsIDAsIDAsIDB9LAorICB7MTczMC4xNSwgMTQwMC42MCwgMTE1My40MywgOTg4LjY2fSwKKyAgezg2NS4wOCwgNzAwLjMwLCA1NzYuNzIsIDQ5NC4zM30sCisgIHs0MzIuNTQsIDM1MC4xNSwgMjg4LjM2LCAyNDcuMTZ9LAorICB7MjE2LjI3LCAxNzUuMDcsIDE0NC4xOCwgMTIzLjU4fSwKKyAgezEwOC4xMywgODcuNTQsIDcyLjA5LCA2MS43OX0sCisgIHs1NC4wNywgNDMuNzcsIDM2LjA0LCAzMC45MH0sCisgIHsyNy4wMywgMjEuODgsIDE4LjAyLCAxNS40NX0sCisgIHsxMy41MiwgMTAuOTQsIDkuMDEsIDcuNzJ9LAorICB7Ni43NiwgNS40NywgNC41MSwgMy44Nn0sCisgIHszLjM4LCAyLjc0LCAyLjI1LCAxLjkzfSwKKyAgezEuNjksIDEuMzcsIDEuMTMsIDAuOTd9LAorICB7MC44NCwgMC43MCwgMC42MCwgMC41NH0sCisgIHswLjUwLCAwLjQyLCAwLjM0LCAwLjMwfSwKKyAgezAuMjgsIDAuMjIsIDAuMTgsIDAuMTR9LAorICB7MC4wMCwgMC4wMCwgMC4wMCwgMC4wMH0KK307CisKK3N0YXRpYyBkb3VibGUgZGVjYXl0aW1lWzE2XVs0XSA9IHsKKyAgezAsIDAsIDAsIDB9LAorICB7MjA5MjYuNjAsIDE2ODA3LjIwLCAxNDAwNi4wMCwgMTIwMjguNjB9LAorICB7MTA0NjMuMzAsIDg0MDMuNTgsIDcwMDIuOTgsIDYwMTQuMzJ9LAorICB7NTIzMS42NCwgNDIwMS43OSwgMzUwMS40OSwgMzAwNy4xNn0sCisgIHsyNjE1LjgyLCAyMTAwLjg5LCAxNzUwLjc1LCAxNTAzLjU4fSwKKyAgezEzMDcuOTEsIDEwNTAuNDUsIDg3NS4zNywgNzUxLjc5fSwKKyAgezY1My45NSwgNTI1LjIyLCA0MzcuNjksIDM3NS45MH0sCisgIHszMjYuOTgsIDI2Mi42MSwgMjE4Ljg0LCAxODcuOTV9LAorICB7MTYzLjQ5LCAxMzEuMzEsIDEwOS40MiwgOTMuOTd9LAorICB7ODEuNzQsIDY1LjY1LCA1NC43MSwgNDYuOTl9LAorICB7NDAuODcsIDMyLjgzLCAyNy4zNiwgMjMuNDl9LAorICB7MjAuNDQsIDE2LjQxLCAxMy42OCwgMTEuNzV9LAorICB7MTAuMjIsIDguMjEsIDYuODQsIDUuODd9LAorICB7NS4xMSwgNC4xMCwgMy40MiwgMi45NH0sCisgIHsyLjU1LCAyLjA1LCAxLjcxLCAxLjQ3fSwKKyAgezEuMjcsIDEuMjcsIDEuMjcsIDEuMjd9Cit9OworI2VuZGlmCisKKy8qIFJhdGUgVGFibGUgZm9yIEF0dGFjayAqLworc3RhdGljIHZvaWQKK21ha2VEcGhhc2VBUlRhYmxlICh2b2lkKQoreworICBlX2ludDMyIEFSLCBSa3MsIFJNLCBSTDsKKworI2lmZGVmIFVTRV9TUEVDX0VOVl9TUEVFRAorICBlX3VpbnQzMiBhdHRhY2t0YWJsZVsxNl1bNF07CisKKyAgZm9yIChSTSA9IDA7IFJNIDwgMTY7IFJNKyspCisgICAgZm9yIChSTCA9IDA7IFJMIDwgNDsgUkwrKykKKyAgICB7CisgICAgICBpZiAoUk0gPT0gMCkKKyAgICAgICAgYXR0YWNrdGFibGVbUk1dW1JMXSA9IDA7CisgICAgICBlbHNlIGlmIChSTSA9PSAxNSkKKyAgICAgICAgYXR0YWNrdGFibGVbUk1dW1JMXSA9IEVHX0RQX1dJRFRIOworICAgICAgZWxzZQorICAgICAgICBhdHRhY2t0YWJsZVtSTV1bUkxdID0gKGVfdWludDMyKSAoKGRvdWJsZSkgKDEgPDwgRUdfRFBfQklUUykgLyAoYXR0YWNrdGltZVtSTV1bUkxdICogMzU3OTU0NSAvIDcyMDAwKSk7CisKKyAgICB9CisjZW5kaWYKKworICBmb3IgKEFSID0gMDsgQVIgPCAxNjsgQVIrKykKKyAgICBmb3IgKFJrcyA9IDA7IFJrcyA8IDE2OyBSa3MrKykKKyAgICB7CisgICAgICBSTSA9IEFSICsgKFJrcyA+PiAyKTsKKyAgICAgIFJMID0gUmtzICYgMzsKKyAgICAgIGlmIChSTSA+IDE1KQorICAgICAgICBSTSA9IDE1OworICAgICAgc3dpdGNoIChBUikKKyAgICAgIHsKKyAgICAgIGNhc2UgMDoKKyAgICAgICAgZHBoYXNlQVJUYWJsZVtBUl1bUmtzXSA9IDA7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAxNToKKyAgICAgICAgZHBoYXNlQVJUYWJsZVtBUl1bUmtzXSA9IDA7LypFR19EUF9XSURUSDsqLyAKKyAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorI2lmZGVmIFVTRV9TUEVDX0VOVl9TUEVFRAorICAgICAgICBkcGhhc2VBUlRhYmxlW0FSXVtSa3NdID0gUkFURV9BREpVU1QgKGF0dGFja3RhYmxlW1JNXVtSTF0pOworI2Vsc2UKKyAgICAgICAgZHBoYXNlQVJUYWJsZVtBUl1bUmtzXSA9IFJBVEVfQURKVVNUICgoMyAqIChSTCArIDQpIDw8IChSTSArIDEpKSk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorfQorCisvKiBSYXRlIFRhYmxlIGZvciBEZWNheSBhbmQgUmVsZWFzZSAqLworc3RhdGljIHZvaWQKK21ha2VEcGhhc2VEUlRhYmxlICh2b2lkKQoreworICBlX2ludDMyIERSLCBSa3MsIFJNLCBSTDsKKworI2lmZGVmIFVTRV9TUEVDX0VOVl9TUEVFRAorICBlX3VpbnQzMiBkZWNheXRhYmxlWzE2XVs0XTsKKworICBmb3IgKFJNID0gMDsgUk0gPCAxNjsgUk0rKykKKyAgICBmb3IgKFJMID0gMDsgUkwgPCA0OyBSTCsrKQorICAgICAgaWYgKFJNID09IDApCisgICAgICAgIGRlY2F5dGFibGVbUk1dW1JMXSA9IDA7CisgICAgICBlbHNlCisgICAgICAgIGRlY2F5dGFibGVbUk1dW1JMXSA9IChlX3VpbnQzMikgKChkb3VibGUpICgxIDw8IEVHX0RQX0JJVFMpIC8gKGRlY2F5dGltZVtSTV1bUkxdICogMzU3OTU0NSAvIDcyMDAwKSk7CisjZW5kaWYKKworICBmb3IgKERSID0gMDsgRFIgPCAxNjsgRFIrKykKKyAgICBmb3IgKFJrcyA9IDA7IFJrcyA8IDE2OyBSa3MrKykKKyAgICB7CisgICAgICBSTSA9IERSICsgKFJrcyA+PiAyKTsKKyAgICAgIFJMID0gUmtzICYgMzsKKyAgICAgIGlmIChSTSA+IDE1KQorICAgICAgICBSTSA9IDE1OworICAgICAgc3dpdGNoIChEUikKKyAgICAgIHsKKyAgICAgIGNhc2UgMDoKKyAgICAgICAgZHBoYXNlRFJUYWJsZVtEUl1bUmtzXSA9IDA7CisgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyNpZmRlZiBVU0VfU1BFQ19FTlZfU1BFRUQKKyAgICAgICAgZHBoYXNlRFJUYWJsZVtEUl1bUmtzXSA9IFJBVEVfQURKVVNUIChkZWNheXRhYmxlW1JNXVtSTF0pOworI2Vsc2UKKyAgICAgICAgZHBoYXNlRFJUYWJsZVtEUl1bUmtzXSA9IFJBVEVfQURKVVNUICgoUkwgKyA0KSA8PCAoUk0gLSAxKSk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorbWFrZVJrc1RhYmxlICh2b2lkKQoreworCisgIGVfaW50MzIgZm51bTgsIGJsb2NrLCBLUjsKKworICBmb3IgKGZudW04ID0gMDsgZm51bTggPCAyOyBmbnVtOCsrKQorICAgIGZvciAoYmxvY2sgPSAwOyBibG9jayA8IDg7IGJsb2NrKyspCisgICAgICBmb3IgKEtSID0gMDsgS1IgPCAyOyBLUisrKQorICAgICAgeworICAgICAgICBpZiAoS1IgIT0gMCkKKyAgICAgICAgICBya3NUYWJsZVtmbnVtOF1bYmxvY2tdW0tSXSA9IChibG9jayA8PCAxKSArIGZudW04OworICAgICAgICBlbHNlCisgICAgICAgICAgcmtzVGFibGVbZm51bThdW2Jsb2NrXVtLUl0gPSBibG9jayA+PiAxOworICAgICAgfQorfQorCit2b2lkCitPUExMX2R1bXAycGF0Y2ggKGNvbnN0IGVfdWludDggKiBkdW1wLCBPUExMX1BBVENIICogcGF0Y2gpCit7CisgIHBhdGNoWzBdLkFNID0gKGR1bXBbMF0gPj4gNykgJiAxOworICBwYXRjaFsxXS5BTSA9IChkdW1wWzFdID4+IDcpICYgMTsKKyAgcGF0Y2hbMF0uUE0gPSAoZHVtcFswXSA+PiA2KSAmIDE7CisgIHBhdGNoWzFdLlBNID0gKGR1bXBbMV0gPj4gNikgJiAxOworICBwYXRjaFswXS5FRyA9IChkdW1wWzBdID4+IDUpICYgMTsKKyAgcGF0Y2hbMV0uRUcgPSAoZHVtcFsxXSA+PiA1KSAmIDE7CisgIHBhdGNoWzBdLktSID0gKGR1bXBbMF0gPj4gNCkgJiAxOworICBwYXRjaFsxXS5LUiA9IChkdW1wWzFdID4+IDQpICYgMTsKKyAgcGF0Y2hbMF0uTUwgPSAoZHVtcFswXSkgJiAxNTsKKyAgcGF0Y2hbMV0uTUwgPSAoZHVtcFsxXSkgJiAxNTsKKyAgcGF0Y2hbMF0uS0wgPSAoZHVtcFsyXSA+PiA2KSAmIDM7CisgIHBhdGNoWzFdLktMID0gKGR1bXBbM10gPj4gNikgJiAzOworICBwYXRjaFswXS5UTCA9IChkdW1wWzJdKSAmIDYzOworICBwYXRjaFswXS5GQiA9IChkdW1wWzNdKSAmIDc7CisgIHBhdGNoWzBdLldGID0gKGR1bXBbM10gPj4gMykgJiAxOworICBwYXRjaFsxXS5XRiA9IChkdW1wWzNdID4+IDQpICYgMTsKKyAgcGF0Y2hbMF0uQVIgPSAoZHVtcFs0XSA+PiA0KSAmIDE1OworICBwYXRjaFsxXS5BUiA9IChkdW1wWzVdID4+IDQpICYgMTU7CisgIHBhdGNoWzBdLkRSID0gKGR1bXBbNF0pICYgMTU7CisgIHBhdGNoWzFdLkRSID0gKGR1bXBbNV0pICYgMTU7CisgIHBhdGNoWzBdLlNMID0gKGR1bXBbNl0gPj4gNCkgJiAxNTsKKyAgcGF0Y2hbMV0uU0wgPSAoZHVtcFs3XSA+PiA0KSAmIDE1OworICBwYXRjaFswXS5SUiA9IChkdW1wWzZdKSAmIDE1OworICBwYXRjaFsxXS5SUiA9IChkdW1wWzddKSAmIDE1OworfQorCit2b2lkCitPUExMX2dldERlZmF1bHRQYXRjaCAoZV9pbnQzMiB0eXBlLCBlX2ludDMyIG51bSwgT1BMTF9QQVRDSCAqIHBhdGNoKQoreworICBPUExMX2R1bXAycGF0Y2ggKGRlZmF1bHRfaW5zdFt0eXBlXSArIG51bSAqIDE2LCBwYXRjaCk7Cit9CisKK3N0YXRpYyB2b2lkCittYWtlRGVmYXVsdFBhdGNoICggdm9pZCApCit7CisgIGVfaW50MzIgaSwgajsKKworICBmb3IgKGkgPSAwOyBpIDwgT1BMTF9UT05FX05VTTsgaSsrKQorICAgIGZvciAoaiA9IDA7IGogPCAxOTsgaisrKQorICAgICAgT1BMTF9nZXREZWZhdWx0UGF0Y2ggKGksIGosICZkZWZhdWx0X3BhdGNoW2ldW2ogKiAyXSk7CisKK30KKwordm9pZAorT1BMTF9zZXRQYXRjaCAoT1BMTCAqIG9wbGwsIGNvbnN0IGVfdWludDggKiBkdW1wKQoreworICBPUExMX1BBVENIIHBhdGNoWzJdOworICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgMTk7IGkrKykKKyAgeworICAgIE9QTExfZHVtcDJwYXRjaCAoZHVtcCArIGkgKiAxNiwgcGF0Y2gpOworICAgIG1lbWNweSAoJm9wbGwtPnBhdGNoW2kqMiswXSwgJnBhdGNoWzBdLCBzaXplb2YgKE9QTExfUEFUQ0gpKTsKKyAgICBtZW1jcHkgKCZvcGxsLT5wYXRjaFtpKjIrMV0sICZwYXRjaFsxXSwgc2l6ZW9mIChPUExMX1BBVENIKSk7CisgIH0KK30KKwordm9pZAorT1BMTF9wYXRjaDJkdW1wIChjb25zdCBPUExMX1BBVENIICogcGF0Y2gsIGVfdWludDggKiBkdW1wKQoreworICBkdW1wWzBdID0gKGVfdWludDgpICgocGF0Y2hbMF0uQU0gPDwgNykgKyAocGF0Y2hbMF0uUE0gPDwgNikgKyAocGF0Y2hbMF0uRUcgPDwgNSkgKyAocGF0Y2hbMF0uS1IgPDwgNCkgKyBwYXRjaFswXS5NTCk7CisgIGR1bXBbMV0gPSAoZV91aW50OCkgKChwYXRjaFsxXS5BTSA8PCA3KSArIChwYXRjaFsxXS5QTSA8PCA2KSArIChwYXRjaFsxXS5FRyA8PCA1KSArIChwYXRjaFsxXS5LUiA8PCA0KSArIHBhdGNoWzFdLk1MKTsKKyAgZHVtcFsyXSA9IChlX3VpbnQ4KSAoKHBhdGNoWzBdLktMIDw8IDYpICsgcGF0Y2hbMF0uVEwpOworICBkdW1wWzNdID0gKGVfdWludDgpICgocGF0Y2hbMV0uS0wgPDwgNikgKyAocGF0Y2hbMV0uV0YgPDwgNCkgKyAocGF0Y2hbMF0uV0YgPDwgMykgKyBwYXRjaFswXS5GQik7CisgIGR1bXBbNF0gPSAoZV91aW50OCkgKChwYXRjaFswXS5BUiA8PCA0KSArIHBhdGNoWzBdLkRSKTsKKyAgZHVtcFs1XSA9IChlX3VpbnQ4KSAoKHBhdGNoWzFdLkFSIDw8IDQpICsgcGF0Y2hbMV0uRFIpOworICBkdW1wWzZdID0gKGVfdWludDgpICgocGF0Y2hbMF0uU0wgPDwgNCkgKyBwYXRjaFswXS5SUik7CisgIGR1bXBbN10gPSAoZV91aW50OCkgKChwYXRjaFsxXS5TTCA8PCA0KSArIHBhdGNoWzFdLlJSKTsKKyAgZHVtcFs4XSA9IDA7CisgIGR1bXBbOV0gPSAwOworICBkdW1wWzEwXSA9IDA7CisgIGR1bXBbMTFdID0gMDsKKyAgZHVtcFsxMl0gPSAwOworICBkdW1wWzEzXSA9IDA7CisgIGR1bXBbMTRdID0gMDsKKyAgZHVtcFsxNV0gPSAwOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgICBDYWxjIFBhcmFtZXRlcnMKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitJTkxJTkUgc3RhdGljIGVfdWludDMyCitjYWxjX2VnX2RwaGFzZSAoT1BMTF9TTE9UICogc2xvdCkKK3sKKworICBzd2l0Y2ggKHNsb3QtPmVnX21vZGUpCisgIHsKKyAgY2FzZSBBVFRBQ0s6CisgICAgcmV0dXJuIGRwaGFzZUFSVGFibGVbc2xvdC0+cGF0Y2gtPkFSXVtzbG90LT5ya3NdOworCisgIGNhc2UgREVDQVk6CisgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPkRSXVtzbG90LT5ya3NdOworCisgIGNhc2UgU1VTSE9MRDoKKyAgICByZXR1cm4gMDsKKworICBjYXNlIFNVU1RJTkU6CisgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPlJSXVtzbG90LT5ya3NdOworCisgIGNhc2UgUkVMRUFTRToKKyAgICBpZiAoc2xvdC0+c3VzdGluZSkKKyAgICAgIHJldHVybiBkcGhhc2VEUlRhYmxlWzVdW3Nsb3QtPnJrc107CisgICAgZWxzZSBpZiAoc2xvdC0+cGF0Y2gtPkVHKQorICAgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbc2xvdC0+cGF0Y2gtPlJSXVtzbG90LT5ya3NdOworICAgIGVsc2UKKyAgICAgIHJldHVybiBkcGhhc2VEUlRhYmxlWzddW3Nsb3QtPnJrc107CisKKyAgY2FzZSBTRVRUTEU6CisgICAgcmV0dXJuIGRwaGFzZURSVGFibGVbMTVdWzBdOworCisgIGNhc2UgRklOSVNIOgorICAgIHJldHVybiAwOworCisgIGRlZmF1bHQ6CisgICAgcmV0dXJuIDA7CisgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgICAgICAgICAgICAgICAgICBPUExMIGludGVybmFsIGludGVyZmFjZXMKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgU0xPVF9CRDEgMTIKKyNkZWZpbmUgU0xPVF9CRDIgMTMKKyNkZWZpbmUgU0xPVF9ISCAxNAorI2RlZmluZSBTTE9UX1NEIDE1CisjZGVmaW5lIFNMT1RfVE9NIDE2CisjZGVmaW5lIFNMT1RfQ1lNIDE3CisKKy8qIFdlIHdpbGwgc2V0IHRoaXMgZGluYW1pY2FsbHksIGJ1dCBub3Qgc3VyZSBpZiB0aGlzIGFmZmVjdHMgcGxheWJhY2sgKi8KKyNpZiBkZWZpbmVkKFJPQ0tCT1gpCitJTkxJTkUgc3RhdGljIHZvaWQKK1VQREFURV9QRyhPUExMX1NMT1QgKiBzbG90KQoreworICBzdGF0aWMgY29uc3QgZV91aW50MzIgbWx0YWJsZVsxNl0gPQorICAgIHsgMSwgMSAqIDIsIDIgKiAyLCAzICogMiwgNCAqIDIsIDUgKiAyLCA2ICogMiwgNyAqIDIsIDggKiAyLCA5ICogMiwgMTAgKiAyLCAxMCAqIDIsIDEyICogMiwgMTIgKiAyLCAxNSAqIDIsIDE1ICogMiB9OworCisgIHNsb3QtPmRwaGFzZSA9IFJBVEVfQURKVVNUICgoKHNsb3QtPmZudW0gKiBtbHRhYmxlW3Nsb3QtPnBhdGNoLT5NTF0pIDw8IHNsb3QtPmJsb2NrKSA+PiAoMjAgLSBEUF9CSVRTKSk7Cit9CisjZWxzZQorI2RlZmluZSBVUERBVEVfUEcoUykgIChTKS0+ZHBoYXNlID0gZHBoYXNlVGFibGVbKFMpLT5mbnVtXVsoUyktPmJsb2NrXVsoUyktPnBhdGNoLT5NTF0KKyNlbmRpZgorCisjZGVmaW5lIFVQREFURV9UTEwoUylcCisoKChTKS0+dHlwZT09MCk/XAorKChTKS0+dGxsID0gdGxsVGFibGVbKChTKS0+Zm51bSk+PjVdWyhTKS0+YmxvY2tdWyhTKS0+cGF0Y2gtPlRMXVsoUyktPnBhdGNoLT5LTF0pOlwKKygoUyktPnRsbCA9IHRsbFRhYmxlWygoUyktPmZudW0pPj41XVsoUyktPmJsb2NrXVsoUyktPnZvbHVtZV1bKFMpLT5wYXRjaC0+S0xdKSkKKyNkZWZpbmUgVVBEQVRFX1JLUyhTKSAoUyktPnJrcyA9IHJrc1RhYmxlWygoUyktPmZudW0pPj44XVsoUyktPmJsb2NrXVsoUyktPnBhdGNoLT5LUl0KKyNkZWZpbmUgVVBEQVRFX1dGKFMpICAoUyktPnNpbnRibCA9IHdhdmVmb3JtWyhTKS0+cGF0Y2gtPldGXQorI2RlZmluZSBVUERBVEVfRUcoUykgIChTKS0+ZWdfZHBoYXNlID0gY2FsY19lZ19kcGhhc2UoUykKKyNkZWZpbmUgVVBEQVRFX0FMTChTKVwKKyAgVVBEQVRFX1BHKFMpO1wKKyAgVVBEQVRFX1RMTChTKTtcCisgIFVQREFURV9SS1MoUyk7XAorICBVUERBVEVfV0YoUyk7IFwKKyAgVVBEQVRFX0VHKFMpICAgICAgICAgICAgICAgICAgLyogRUcgc2hvdWxkIGJlIHVwZGF0ZWQgbGFzdC4gKi8KKworCisvKiBTbG90IGtleSBvbiAgKi8KK0lOTElORSBzdGF0aWMgdm9pZAorc2xvdE9uIChPUExMX1NMT1QgKiBzbG90KQoreworICBzbG90LT5lZ19tb2RlID0gQVRUQUNLOworICBzbG90LT5lZ19waGFzZSA9IDA7CisgIHNsb3QtPnBoYXNlID0gMDsKKyAgVVBEQVRFX0VHKHNsb3QpOworfQorCisvKiBTbG90IGtleSBvbiB3aXRob3V0IHJlc2V0aW5nIHRoZSBwaGFzZSAqLworSU5MSU5FIHN0YXRpYyB2b2lkCitzbG90T24yIChPUExMX1NMT1QgKiBzbG90KQoreworICBzbG90LT5lZ19tb2RlID0gQVRUQUNLOworICBzbG90LT5lZ19waGFzZSA9IDA7CisgIFVQREFURV9FRyhzbG90KTsKK30KKworLyogU2xvdCBrZXkgb2ZmICovCitJTkxJTkUgc3RhdGljIHZvaWQKK3Nsb3RPZmYgKE9QTExfU0xPVCAqIHNsb3QpCit7CisgIGlmIChzbG90LT5lZ19tb2RlID09IEFUVEFDSykKKyAgICBzbG90LT5lZ19waGFzZSA9IEVYUEFORF9CSVRTIChBUl9BREpVU1RfVEFCTEUoSElHSEJJVFMgKHNsb3QtPmVnX3BoYXNlLCBFR19EUF9CSVRTIC0gRUdfQklUUykpLCBFR19CSVRTLCBFR19EUF9CSVRTKTsKKyAgc2xvdC0+ZWdfbW9kZSA9IFJFTEVBU0U7CisgIFVQREFURV9FRyhzbG90KTsKK30KKworLyogQ2hhbm5lbCBrZXkgb24gKi8KK0lOTElORSBzdGF0aWMgdm9pZAora2V5T24gKE9QTEwgKiBvcGxsLCBlX2ludDMyIGkpCit7CisgIGlmICghb3BsbC0+c2xvdF9vbl9mbGFnW2kgKiAyXSkKKyAgICBzbG90T24gKE1PRChvcGxsLGkpKTsKKyAgaWYgKCFvcGxsLT5zbG90X29uX2ZsYWdbaSAqIDIgKyAxXSkKKyAgICBzbG90T24gKENBUihvcGxsLGkpKTsKKyAgb3BsbC0+a2V5X3N0YXR1c1tpXSA9IDE7Cit9CisKKy8qIENoYW5uZWwga2V5IG9mZiAqLworSU5MSU5FIHN0YXRpYyB2b2lkCitrZXlPZmYgKE9QTEwgKiBvcGxsLCBlX2ludDMyIGkpCit7CisgIGlmIChvcGxsLT5zbG90X29uX2ZsYWdbaSAqIDIgKyAxXSkKKyAgICBzbG90T2ZmIChDQVIob3BsbCxpKSk7CisgIG9wbGwtPmtleV9zdGF0dXNbaV0gPSAwOworfQorCitJTkxJTkUgc3RhdGljIHZvaWQKK2tleU9uX0JEIChPUExMICogb3BsbCkKK3sKKyAga2V5T24gKG9wbGwsIDYpOworfQorSU5MSU5FIHN0YXRpYyB2b2lkCitrZXlPbl9TRCAoT1BMTCAqIG9wbGwpCit7CisgIGlmICghb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfU0RdKQorICAgIHNsb3RPbiAoQ0FSKG9wbGwsNykpOworfQorSU5MSU5FIHN0YXRpYyB2b2lkCitrZXlPbl9UT00gKE9QTEwgKiBvcGxsKQoreworICBpZiAoIW9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1RPTV0pCisgICAgc2xvdE9uIChNT0Qob3BsbCw4KSk7Cit9CitJTkxJTkUgc3RhdGljIHZvaWQKK2tleU9uX0hIIChPUExMICogb3BsbCkKK3sKKyAgaWYgKCFvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9ISF0pCisgICAgc2xvdE9uMiAoTU9EKG9wbGwsNykpOworfQorSU5MSU5FIHN0YXRpYyB2b2lkCitrZXlPbl9DWU0gKE9QTEwgKiBvcGxsKQoreworICBpZiAoIW9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0NZTV0pCisgICAgc2xvdE9uMiAoQ0FSKG9wbGwsOCkpOworfQorCisvKiBEcnVtIGtleSBvZmYgKi8KK0lOTElORSBzdGF0aWMgdm9pZAora2V5T2ZmX0JEIChPUExMICogb3BsbCkKK3sKKyAga2V5T2ZmIChvcGxsLCA2KTsKK30KK0lOTElORSBzdGF0aWMgdm9pZAora2V5T2ZmX1NEIChPUExMICogb3BsbCkKK3sKKyAgaWYgKG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1NEXSkKKyAgICBzbG90T2ZmIChDQVIob3BsbCw3KSk7Cit9CitJTkxJTkUgc3RhdGljIHZvaWQKK2tleU9mZl9UT00gKE9QTEwgKiBvcGxsKQoreworICBpZiAob3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfVE9NXSkKKyAgICBzbG90T2ZmIChNT0Qob3BsbCw4KSk7Cit9CitJTkxJTkUgc3RhdGljIHZvaWQKK2tleU9mZl9ISCAoT1BMTCAqIG9wbGwpCit7CisgIGlmIChvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9ISF0pCisgICAgc2xvdE9mZiAoTU9EKG9wbGwsNykpOworfQorSU5MSU5FIHN0YXRpYyB2b2lkCitrZXlPZmZfQ1lNIChPUExMICogb3BsbCkKK3sKKyAgaWYgKG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0NZTV0pCisgICAgc2xvdE9mZiAoQ0FSKG9wbGwsOCkpOworfQorCisvKiBDaGFuZ2UgYSB2b2ljZSAqLworSU5MSU5FIHN0YXRpYyB2b2lkCitzZXRQYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgaSwgZV9pbnQzMiBudW0pCit7CisgIG9wbGwtPnBhdGNoX251bWJlcltpXSA9IG51bTsKKyAgTU9EKG9wbGwsaSktPnBhdGNoID0gJm9wbGwtPnBhdGNoW251bSAqIDIgKyAwXTsKKyAgQ0FSKG9wbGwsaSktPnBhdGNoID0gJm9wbGwtPnBhdGNoW251bSAqIDIgKyAxXTsKK30KKworLyogQ2hhbmdlIGEgcmh5dGhtIHZvaWNlICovCitJTkxJTkUgc3RhdGljIHZvaWQKK3NldFNsb3RQYXRjaCAoT1BMTF9TTE9UICogc2xvdCwgT1BMTF9QQVRDSCAqIHBhdGNoKQoreworICBzbG90LT5wYXRjaCA9IHBhdGNoOworfQorCisvKiBTZXQgc3VzdGluZSBwYXJhbWV0ZXIgKi8KK0lOTElORSBzdGF0aWMgdm9pZAorc2V0U3VzdGluZSAoT1BMTCAqIG9wbGwsIGVfaW50MzIgYywgZV9pbnQzMiBzdXN0aW5lKQoreworICBDQVIob3BsbCxjKS0+c3VzdGluZSA9IHN1c3RpbmU7CisgIGlmIChNT0Qob3BsbCxjKS0+dHlwZSkKKyAgICBNT0Qob3BsbCxjKS0+c3VzdGluZSA9IHN1c3RpbmU7Cit9CisKKy8qIFZvbHVtZSA6IDZiaXQgKCBWb2x1bWUgcmVnaXN0ZXIgPDwgMiApICovCitJTkxJTkUgc3RhdGljIHZvaWQKK3NldFZvbHVtZSAoT1BMTCAqIG9wbGwsIGVfaW50MzIgYywgZV9pbnQzMiB2b2x1bWUpCit7CisgIENBUihvcGxsLGMpLT52b2x1bWUgPSB2b2x1bWU7Cit9CisKK0lOTElORSBzdGF0aWMgdm9pZAorc2V0U2xvdFZvbHVtZSAoT1BMTF9TTE9UICogc2xvdCwgZV9pbnQzMiB2b2x1bWUpCit7CisgIHNsb3QtPnZvbHVtZSA9IHZvbHVtZTsKK30KKworLyogU2V0IEYtTnVtYmVyICggZm51bSA6IDliaXQgKSAqLworSU5MSU5FIHN0YXRpYyB2b2lkCitzZXRGbnVtYmVyIChPUExMICogb3BsbCwgZV9pbnQzMiBjLCBlX2ludDMyIGZudW0pCit7CisgIENBUihvcGxsLGMpLT5mbnVtID0gZm51bTsKKyAgTU9EKG9wbGwsYyktPmZudW0gPSBmbnVtOworfQorCisvKiBTZXQgQmxvY2sgZGF0YSAoYmxvY2sgOiAzYml0ICkgKi8KK0lOTElORSBzdGF0aWMgdm9pZAorc2V0QmxvY2sgKE9QTEwgKiBvcGxsLCBlX2ludDMyIGMsIGVfaW50MzIgYmxvY2spCit7CisgIENBUihvcGxsLGMpLT5ibG9jayA9IGJsb2NrOworICBNT0Qob3BsbCxjKS0+YmxvY2sgPSBibG9jazsKK30KKworLyogQ2hhbmdlIFJoeXRobSBNb2RlICovCitJTkxJTkUgc3RhdGljIHZvaWQKK3VwZGF0ZV9yaHl0aG1fbW9kZSAoT1BMTCAqIG9wbGwpCit7CisgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbNl0gJiAweDEwKQorICB7CisgICAgaWYgKCEob3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfQkQyXSB8IChvcGxsLT5yZWdbMHgwZV0gJiAzMikpKQorICAgIHsKKyAgICAgIG9wbGwtPnNsb3RbU0xPVF9CRDFdLmVnX21vZGUgPSBGSU5JU0g7CisgICAgICBvcGxsLT5zbG90W1NMT1RfQkQyXS5lZ19tb2RlID0gRklOSVNIOworICAgICAgc2V0UGF0Y2ggKG9wbGwsIDYsIG9wbGwtPnJlZ1sweDM2XSA+PiA0KTsKKyAgICB9CisgIH0KKyAgZWxzZSBpZiAob3BsbC0+cmVnWzB4MGVdICYgMzIpCisgIHsKKyAgICBvcGxsLT5wYXRjaF9udW1iZXJbNl0gPSAxNjsKKyAgICBvcGxsLT5zbG90W1NMT1RfQkQxXS5lZ19tb2RlID0gRklOSVNIOworICAgIG9wbGwtPnNsb3RbU0xPVF9CRDJdLmVnX21vZGUgPSBGSU5JU0g7CisgICAgc2V0U2xvdFBhdGNoICgmb3BsbC0+c2xvdFtTTE9UX0JEMV0sICZvcGxsLT5wYXRjaFsxNiAqIDIgKyAwXSk7CisgICAgc2V0U2xvdFBhdGNoICgmb3BsbC0+c2xvdFtTTE9UX0JEMl0sICZvcGxsLT5wYXRjaFsxNiAqIDIgKyAxXSk7CisgIH0KKworICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzddICYgMHgxMCkKKyAgeworICAgIGlmICghKChvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9ISF0gJiYgb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfU0RdKSB8IChvcGxsLT5yZWdbMHgwZV0gJiAzMikpKQorICAgIHsKKyAgICAgIG9wbGwtPnNsb3RbU0xPVF9ISF0udHlwZSA9IDA7CisgICAgICBvcGxsLT5zbG90W1NMT1RfSEhdLmVnX21vZGUgPSBGSU5JU0g7CisgICAgICBvcGxsLT5zbG90W1NMT1RfU0RdLmVnX21vZGUgPSBGSU5JU0g7CisgICAgICBzZXRQYXRjaCAob3BsbCwgNywgb3BsbC0+cmVnWzB4MzddID4+IDQpOworICAgIH0KKyAgfQorICBlbHNlIGlmIChvcGxsLT5yZWdbMHgwZV0gJiAzMikKKyAgeworICAgIG9wbGwtPnBhdGNoX251bWJlcls3XSA9IDE3OworICAgIG9wbGwtPnNsb3RbU0xPVF9ISF0udHlwZSA9IDE7CisgICAgb3BsbC0+c2xvdFtTTE9UX0hIXS5lZ19tb2RlID0gRklOSVNIOworICAgIG9wbGwtPnNsb3RbU0xPVF9TRF0uZWdfbW9kZSA9IEZJTklTSDsKKyAgICBzZXRTbG90UGF0Y2ggKCZvcGxsLT5zbG90W1NMT1RfSEhdLCAmb3BsbC0+cGF0Y2hbMTcgKiAyICsgMF0pOworICAgIHNldFNsb3RQYXRjaCAoJm9wbGwtPnNsb3RbU0xPVF9TRF0sICZvcGxsLT5wYXRjaFsxNyAqIDIgKyAxXSk7CisgIH0KKworICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzhdICYgMHgxMCkKKyAgeworICAgIGlmICghKChvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9DWU1dICYmIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1RPTV0pIHwgKG9wbGwtPnJlZ1sweDBlXSAmIDMyKSkpCisgICAgeworICAgICAgb3BsbC0+c2xvdFtTTE9UX1RPTV0udHlwZSA9IDA7CisgICAgICBvcGxsLT5zbG90W1NMT1RfVE9NXS5lZ19tb2RlID0gRklOSVNIOworICAgICAgb3BsbC0+c2xvdFtTTE9UX0NZTV0uZWdfbW9kZSA9IEZJTklTSDsKKyAgICAgIHNldFBhdGNoIChvcGxsLCA4LCBvcGxsLT5yZWdbMHgzOF0gPj4gNCk7CisgICAgfQorICB9CisgIGVsc2UgaWYgKG9wbGwtPnJlZ1sweDBlXSAmIDMyKQorICB7CisgICAgb3BsbC0+cGF0Y2hfbnVtYmVyWzhdID0gMTg7CisgICAgb3BsbC0+c2xvdFtTTE9UX1RPTV0udHlwZSA9IDE7CisgICAgb3BsbC0+c2xvdFtTTE9UX1RPTV0uZWdfbW9kZSA9IEZJTklTSDsKKyAgICBvcGxsLT5zbG90W1NMT1RfQ1lNXS5lZ19tb2RlID0gRklOSVNIOworICAgIHNldFNsb3RQYXRjaCAoJm9wbGwtPnNsb3RbU0xPVF9UT01dLCAmb3BsbC0+cGF0Y2hbMTggKiAyICsgMF0pOworICAgIHNldFNsb3RQYXRjaCAoJm9wbGwtPnNsb3RbU0xPVF9DWU1dLCAmb3BsbC0+cGF0Y2hbMTggKiAyICsgMV0pOworICB9Cit9CisKK0lOTElORSBzdGF0aWMgdm9pZAordXBkYXRlX2tleV9zdGF0dXMgKE9QTEwgKiBvcGxsKQoreworICBpbnQgY2g7CisKKyAgZm9yIChjaCA9IDA7IGNoIDwgOTsgY2grKykKKyAgICBvcGxsLT5zbG90X29uX2ZsYWdbY2ggKiAyXSA9IG9wbGwtPnNsb3Rfb25fZmxhZ1tjaCAqIDIgKyAxXSA9IChvcGxsLT5yZWdbMHgyMCArIGNoXSkgJiAweDEwOworCisgIGlmIChvcGxsLT5yZWdbMHgwZV0gJiAzMikKKyAgeworICAgIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0JEMV0gfD0gKG9wbGwtPnJlZ1sweDBlXSAmIDB4MTApOworICAgIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX0JEMl0gfD0gKG9wbGwtPnJlZ1sweDBlXSAmIDB4MTApOworICAgIG9wbGwtPnNsb3Rfb25fZmxhZ1tTTE9UX1NEXSB8PSAob3BsbC0+cmVnWzB4MGVdICYgMHgwOCk7CisgICAgb3BsbC0+c2xvdF9vbl9mbGFnW1NMT1RfSEhdIHw9IChvcGxsLT5yZWdbMHgwZV0gJiAweDAxKTsKKyAgICBvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9UT01dIHw9IChvcGxsLT5yZWdbMHgwZV0gJiAweDA0KTsKKyAgICBvcGxsLT5zbG90X29uX2ZsYWdbU0xPVF9DWU1dIHw9IChvcGxsLT5yZWdbMHgwZV0gJiAweDAyKTsKKyAgfQorfQorCit2b2lkCitPUExMX2NvcHlQYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgbnVtLCBPUExMX1BBVENIICogcGF0Y2gpCit7CisgIG1lbWNweSAoJm9wbGwtPnBhdGNoW251bV0sIHBhdGNoLCBzaXplb2YgKE9QTExfUEFUQ0gpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgICBJbml0aWFsaXppbmcKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkCitPUExMX1NMT1RfcmVzZXQgKE9QTExfU0xPVCAqIHNsb3QsIGludCB0eXBlKQoreworICBzbG90LT50eXBlID0gdHlwZTsKKyAgc2xvdC0+c2ludGJsID0gd2F2ZWZvcm1bMF07CisgIHNsb3QtPnBoYXNlID0gMDsKKyAgc2xvdC0+ZHBoYXNlID0gMDsKKyAgc2xvdC0+b3V0cHV0WzBdID0gMDsKKyAgc2xvdC0+b3V0cHV0WzFdID0gMDsKKyAgc2xvdC0+ZmVlZGJhY2sgPSAwOworICBzbG90LT5lZ19tb2RlID0gRklOSVNIOworICBzbG90LT5lZ19waGFzZSA9IEVHX0RQX1dJRFRIOworICBzbG90LT5lZ19kcGhhc2UgPSAwOworICBzbG90LT5ya3MgPSAwOworICBzbG90LT50bGwgPSAwOworICBzbG90LT5zdXN0aW5lID0gMDsKKyAgc2xvdC0+Zm51bSA9IDA7CisgIHNsb3QtPmJsb2NrID0gMDsKKyAgc2xvdC0+dm9sdW1lID0gMDsKKyAgc2xvdC0+cGdvdXQgPSAwOworICBzbG90LT5lZ291dCA9IDA7CisgIHNsb3QtPnBhdGNoID0gJm51bGxfcGF0Y2g7Cit9CisKK3N0YXRpYyB2b2lkCitpbnRlcm5hbF9yZWZyZXNoICh2b2lkKQoreworI2lmICFkZWZpbmVkKFJPQ0tCT1gpCisgIG1ha2VEcGhhc2VUYWJsZSAoKTsKKyNlbmRpZgorICBtYWtlRHBoYXNlQVJUYWJsZSAoKTsKKyAgbWFrZURwaGFzZURSVGFibGUgKCk7CisgIHBtX2RwaGFzZSA9IChlX3VpbnQzMikgUkFURV9BREpVU1QgKChpbnQpKFBNX1NQRUVEICogUE1fRFBfV0lEVEgpIC8gKGNsayAvIDcyKSk7CisgIGFtX2RwaGFzZSA9IChlX3VpbnQzMikgUkFURV9BREpVU1QgKChpbnQpKEFNX1NQRUVEICogQU1fRFBfV0lEVEgpIC8gKGNsayAvIDcyKSk7Cit9CisKK3N0YXRpYyB2b2lkCittYWtldGFibGVzIChlX3VpbnQzMiBjLCBlX3VpbnQzMiByKQoreworICBpZiAoYyAhPSBjbGspCisgIHsKKyAgICBjbGsgPSBjOworI2lmZGVmIEVNVTI0MTNfQ0FMQ1VMX1RBQkxFUworICAgIG1ha2VQbVRhYmxlICgpOworICAgIG1ha2VBbVRhYmxlICgpOworICAgIG1ha2VBZGp1c3RUYWJsZSAoKTsKKyNlbmRpZgorICAgIG1ha2VEQjJMaW5UYWJsZSAoKTsKKyAgICBtYWtlVGxsVGFibGUgKCk7CisgICAgbWFrZVJrc1RhYmxlICgpOworICAgIG1ha2VTaW5UYWJsZSAoKTsKKyAgICBtYWtlRGVmYXVsdFBhdGNoICgpOworICB9CisKKyAgaWYgKHIgIT0gcmF0ZSkKKyAgeworICAgIHJhdGUgPSByOworICAgIGludGVybmFsX3JlZnJlc2ggKCk7CisgIH0KK30KKwordm9pZAorT1BMTF9uZXcgKE9QTEwgKm9wbGwsIGVfdWludDMyIGNsaywgZV91aW50MzIgcmF0ZSkKK3sKKyAgZV9pbnQzMiBpOworCisgIG1ha2V0YWJsZXMgKGNsaywgcmF0ZSk7CisKKyAgbWVtc2V0KG9wbGwsIDAsIHNpemVvZiAoT1BMTCkpOworICBmb3IgKGkgPSAwOyBpIDwgMTkgKiAyOyBpKyspCisgICAgbWVtY3B5KCZvcGxsLT5wYXRjaFtpXSwmbnVsbF9wYXRjaCxzaXplb2YoT1BMTF9QQVRDSCkpOworCisgIG9wbGwtPm1hc2sgPSAwOworCisgIE9QTExfcmVzZXQgKG9wbGwpOworICBPUExMX3Jlc2V0X3BhdGNoIChvcGxsLCAwKTsKK30KKworCit2b2lkCitPUExMX2RlbGV0ZSAoT1BMTCAqIG9wbGwpCit7CisgICh2b2lkKSBvcGxsOworfQorCisKKy8qIFJlc2V0IHBhdGNoIGRhdGFzIGJ5IHN5c3RlbSBkZWZhdWx0LiAqLwordm9pZAorT1BMTF9yZXNldF9wYXRjaCAoT1BMTCAqIG9wbGwsIGVfaW50MzIgdHlwZSkKK3sKKyAgZV9pbnQzMiBpOworCisgIGZvciAoaSA9IDA7IGkgPCAxOSAqIDI7IGkrKykKKyAgICBPUExMX2NvcHlQYXRjaCAob3BsbCwgaSwgJmRlZmF1bHRfcGF0Y2hbdHlwZSAlIE9QTExfVE9ORV9OVU1dW2ldKTsKK30KKworLyogUmVzZXQgd2hvbGUgb2YgT1BMTCBleGNlcHQgcGF0Y2ggZGF0YXMuICovCit2b2lkCitPUExMX3Jlc2V0IChPUExMICogb3BsbCkKK3sKKyAgZV9pbnQzMiBpOworCisgIGlmICghb3BsbCkKKyAgICByZXR1cm47CisKKyAgb3BsbC0+YWRyID0gMDsKKyAgb3BsbC0+b3V0ID0gMDsKKworICBvcGxsLT5wbV9waGFzZSA9IDA7CisgIG9wbGwtPmFtX3BoYXNlID0gMDsKKworICBvcGxsLT5ub2lzZV9zZWVkID0gMHhmZmZmOworICBvcGxsLT5tYXNrID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwxODsgaSsrKQorICAgIE9QTExfU0xPVF9yZXNldCgmb3BsbC0+c2xvdFtpXSwgaSUyKTsKKworICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQorICB7CisgICAgb3BsbC0+a2V5X3N0YXR1c1tpXSA9IDA7CisgICAgc2V0UGF0Y2ggKG9wbGwsIGksIDApOworICB9CisKKyAgZm9yIChpID0gMDsgaSA8IDB4NDA7IGkrKykKKyAgICBPUExMX3dyaXRlUmVnIChvcGxsLCBpLCAwKTsKKworI2lmbmRlZiBFTVUyNDEzX0NPTVBBQ1RJT04KKyAgb3BsbC0+cmVhbHN0ZXAgPSAoZV91aW50MzIpICgoMSA8PCAzMSkgLyByYXRlKTsKKyAgb3BsbC0+b3BsbHN0ZXAgPSAoZV91aW50MzIpICgoMSA8PCAzMSkgLyAoY2xrIC8gNzIpKTsKKyAgb3BsbC0+b3BsbHRpbWUgPSAwOworICBmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykKKyAgICBvcGxsLT5wYW5baV0gPSAyOworICBvcGxsLT5zcHJldlswXSA9IG9wbGwtPnNwcmV2WzFdID0gMDsKKyAgb3BsbC0+c25leHRbMF0gPSBvcGxsLT5zbmV4dFsxXSA9IDA7CisjZW5kaWYKK30KKworLyogRm9yY2UgUmVmcmVzaCAoV2hlbiBleHRlcm5hbCBwcm9ncmFtIGNoYW5nZXMgc29tZSBwYXJhbWV0ZXJzKS4gKi8KK3ZvaWQKK09QTExfZm9yY2VSZWZyZXNoIChPUExMICogb3BsbCkKK3sKKyAgZV9pbnQzMiBpOworCisgIGlmIChvcGxsID09IE5VTEwpCisgICAgcmV0dXJuOworCisgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspCisgICAgc2V0UGF0Y2gob3BsbCxpLG9wbGwtPnBhdGNoX251bWJlcltpXSk7CisKKyAgZm9yIChpID0gMDsgaSA8IDE4OyBpKyspCisgIHsKKyAgICBVUERBVEVfUEcgKCZvcGxsLT5zbG90W2ldKTsKKyAgICBVUERBVEVfUktTICgmb3BsbC0+c2xvdFtpXSk7CisgICAgVVBEQVRFX1RMTCAoJm9wbGwtPnNsb3RbaV0pOworICAgIFVQREFURV9XRiAoJm9wbGwtPnNsb3RbaV0pOworICAgIFVQREFURV9FRyAoJm9wbGwtPnNsb3RbaV0pOworICB9Cit9CisKK3ZvaWQKK09QTExfc2V0X3JhdGUgKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiByKQoreworICBpZiAocmF0ZSA9PSByKSByZXR1cm47CisgIGlmIChvcGxsLT5xdWFsaXR5KQorICAgIHJhdGUgPSA0OTcxNjsKKyAgZWxzZQorICAgIHJhdGUgPSByOworICBpbnRlcm5hbF9yZWZyZXNoICgpOworICByYXRlID0gcjsKK30KKwordm9pZAorT1BMTF9zZXRfcXVhbGl0eSAoT1BMTCAqIG9wbGwsIGVfdWludDMyIHEpCit7CisgIG9wbGwtPnF1YWxpdHkgPSBxOworICBPUExMX3NldF9yYXRlIChvcGxsLCByYXRlKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgICAgICAgICAgICAgIEdlbmVyYXRlIHdhdmUgZGF0YQorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDb252ZXJ0IEFtcCgwIHRvIEVHX0hFSUdIVCkgdG8gUGhhc2UoMCB0byAyUEkpLiAqLworI2lmICggU0xPVF9BTVBfQklUUyAtIFBHX0JJVFMgKSA+IDAKKyNkZWZpbmUgd2F2ZTJfMnBpKGUpICAoIChlKSA+PiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTICkpCisjZWxzZQorI2RlZmluZSB3YXZlMl8ycGkoZSkgICggKGUpIDw8ICggUEdfQklUUyAtIFNMT1RfQU1QX0JJVFMgKSkKKyNlbmRpZgorCisvKiBDb252ZXJ0IEFtcCgwIHRvIEVHX0hFSUdIVCkgdG8gUGhhc2UoMCB0byA0UEkpLiAqLworI2lmICggU0xPVF9BTVBfQklUUyAtIFBHX0JJVFMgLSAxICkgPT0gMAorI2RlZmluZSB3YXZlMl80cGkoZSkgIChlKQorI2VsaWYgKCBTTE9UX0FNUF9CSVRTIC0gUEdfQklUUyAtIDEgKSA+IDAKKyNkZWZpbmUgd2F2ZTJfNHBpKGUpICAoIChlKSA+PiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTIC0gMSApKQorI2Vsc2UKKyNkZWZpbmUgd2F2ZTJfNHBpKGUpICAoIChlKSA8PCAoIDEgKyBQR19CSVRTIC0gU0xPVF9BTVBfQklUUyApKQorI2VuZGlmCisKKy8qIENvbnZlcnQgQW1wKDAgdG8gRUdfSEVJR0hUKSB0byBQaGFzZSgwIHRvIDhQSSkuICovCisjaWYgKCBTTE9UX0FNUF9CSVRTIC0gUEdfQklUUyAtIDIgKSA9PSAwCisjZGVmaW5lIHdhdmUyXzhwaShlKSAgKGUpCisjZWxpZiAoIFNMT1RfQU1QX0JJVFMgLSBQR19CSVRTIC0gMiApID4gMAorI2RlZmluZSB3YXZlMl84cGkoZSkgICggKGUpID4+ICggU0xPVF9BTVBfQklUUyAtIFBHX0JJVFMgLSAyICkpCisjZWxzZQorI2RlZmluZSB3YXZlMl84cGkoZSkgICggKGUpIDw8ICggMiArIFBHX0JJVFMgLSBTTE9UX0FNUF9CSVRTICkpCisjZW5kaWYKKworLyogVXBkYXRlIEFNLCBQTSB1bml0ICovCitJTkxJTkUgc3RhdGljIHZvaWQKK3VwZGF0ZV9hbXBtIChPUExMICogb3BsbCkKK3sKKyAgb3BsbC0+cG1fcGhhc2UgPSAob3BsbC0+cG1fcGhhc2UgKyBwbV9kcGhhc2UpICYgKFBNX0RQX1dJRFRIIC0gMSk7CisgIG9wbGwtPmFtX3BoYXNlID0gKG9wbGwtPmFtX3BoYXNlICsgYW1fZHBoYXNlKSAmIChBTV9EUF9XSURUSCAtIDEpOworICBvcGxsLT5sZm9fYW0gPSBBTVRBQkxFKEhJR0hCSVRTIChvcGxsLT5hbV9waGFzZSwgQU1fRFBfQklUUyAtIEFNX1BHX0JJVFMpKTsKKyAgb3BsbC0+bGZvX3BtID0gUE1UQUJMRShISUdIQklUUyAob3BsbC0+cG1fcGhhc2UsIFBNX0RQX0JJVFMgLSBQTV9QR19CSVRTKSk7Cit9CisKKy8qIFBHICovCitJTkxJTkUgc3RhdGljIHZvaWQKK2NhbGNfcGhhc2UgKE9QTExfU0xPVCAqIHNsb3QsIGVfaW50MzIgbGZvKQoreworICBpZiAoc2xvdC0+cGF0Y2gtPlBNKQorICAgIHNsb3QtPnBoYXNlICs9IChzbG90LT5kcGhhc2UgKiBsZm8pID4+IFBNX0FNUF9CSVRTOworICBlbHNlCisgICAgc2xvdC0+cGhhc2UgKz0gc2xvdC0+ZHBoYXNlOworCisgIHNsb3QtPnBoYXNlICY9IChEUF9XSURUSCAtIDEpOworCisgIHNsb3QtPnBnb3V0ID0gSElHSEJJVFMgKHNsb3QtPnBoYXNlLCBEUF9CQVNFX0JJVFMpOworfQorCisvKiBVcGRhdGUgTm9pc2UgdW5pdCAqLworSU5MSU5FIHN0YXRpYyB2b2lkCit1cGRhdGVfbm9pc2UgKE9QTEwgKiBvcGxsKQoreworICAgaWYob3BsbC0+bm9pc2Vfc2VlZCYxKSBvcGxsLT5ub2lzZV9zZWVkIF49IDB4ODAwMzAyMDsKKyAgIG9wbGwtPm5vaXNlX3NlZWQgPj49IDE7Cit9CisKKy8qIEVHICovCitJTkxJTkUgc3RhdGljIHZvaWQKK2NhbGNfZW52ZWxvcGUgKE9QTExfU0xPVCAqIHNsb3QsIGVfaW50MzIgbGZvKQoreworI2RlZmluZSBTMkUoeCkgKFNMMkVHKChlX2ludDMyKSh4L1NMX1NURVApKTw8KEVHX0RQX0JJVFMtRUdfQklUUykpCisKKyAgc3RhdGljIGVfdWludDMyIFNMWzE2XSA9IHsKKyAgICBTMkUgKDAuMCksIFMyRSAoMy4wKSwgUzJFICg2LjApLCBTMkUgKDkuMCksIFMyRSAoMTIuMCksIFMyRSAoMTUuMCksIFMyRSAoMTguMCksIFMyRSAoMjEuMCksCisgICAgUzJFICgyNC4wKSwgUzJFICgyNy4wKSwgUzJFICgzMC4wKSwgUzJFICgzMy4wKSwgUzJFICgzNi4wKSwgUzJFICgzOS4wKSwgUzJFICg0Mi4wKSwgUzJFICg0OC4wKQorICB9OworCisgIGVfdWludDMyIGVnb3V0OworCisgIHN3aXRjaCAoc2xvdC0+ZWdfbW9kZSkKKyAgeworICBjYXNlIEFUVEFDSzoKKyAgICBlZ291dCA9IEFSX0FESlVTVF9UQUJMRShISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKSk7CisgICAgc2xvdC0+ZWdfcGhhc2UgKz0gc2xvdC0+ZWdfZHBoYXNlOworICAgIGlmKChFR19EUF9XSURUSCAmIHNsb3QtPmVnX3BoYXNlKXx8KHNsb3QtPnBhdGNoLT5BUj09MTUpKQorICAgIHsKKyAgICAgIGVnb3V0ID0gMDsKKyAgICAgIHNsb3QtPmVnX3BoYXNlID0gMDsKKyAgICAgIHNsb3QtPmVnX21vZGUgPSBERUNBWTsKKyAgICAgIFVQREFURV9FRyAoc2xvdCk7CisgICAgfQorICAgIGJyZWFrOworCisgIGNhc2UgREVDQVk6CisgICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsKKyAgICBzbG90LT5lZ19waGFzZSArPSBzbG90LT5lZ19kcGhhc2U7CisgICAgaWYgKHNsb3QtPmVnX3BoYXNlID49IFNMW3Nsb3QtPnBhdGNoLT5TTF0pCisgICAgeworICAgICAgaWYgKHNsb3QtPnBhdGNoLT5FRykKKyAgICAgIHsKKyAgICAgICAgc2xvdC0+ZWdfcGhhc2UgPSBTTFtzbG90LT5wYXRjaC0+U0xdOworICAgICAgICBzbG90LT5lZ19tb2RlID0gU1VTSE9MRDsKKyAgICAgICAgVVBEQVRFX0VHIChzbG90KTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgIHsKKyAgICAgICAgc2xvdC0+ZWdfcGhhc2UgPSBTTFtzbG90LT5wYXRjaC0+U0xdOworICAgICAgICBzbG90LT5lZ19tb2RlID0gU1VTVElORTsKKyAgICAgICAgVVBEQVRFX0VHIChzbG90KTsKKyAgICAgIH0KKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSBTVVNIT0xEOgorICAgIGVnb3V0ID0gSElHSEJJVFMgKHNsb3QtPmVnX3BoYXNlLCBFR19EUF9CSVRTIC0gRUdfQklUUyk7CisgICAgaWYgKHNsb3QtPnBhdGNoLT5FRyA9PSAwKQorICAgIHsKKyAgICAgIHNsb3QtPmVnX21vZGUgPSBTVVNUSU5FOworICAgICAgVVBEQVRFX0VHIChzbG90KTsKKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSBTVVNUSU5FOgorICBjYXNlIFJFTEVBU0U6CisgICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsKKyAgICBzbG90LT5lZ19waGFzZSArPSBzbG90LT5lZ19kcGhhc2U7CisgICAgaWYgKGVnb3V0ID49ICgxIDw8IEVHX0JJVFMpKQorICAgIHsKKyAgICAgIHNsb3QtPmVnX21vZGUgPSBGSU5JU0g7CisgICAgICBlZ291dCA9ICgxIDw8IEVHX0JJVFMpIC0gMTsKKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSBTRVRUTEU6CisgICAgZWdvdXQgPSBISUdIQklUUyAoc2xvdC0+ZWdfcGhhc2UsIEVHX0RQX0JJVFMgLSBFR19CSVRTKTsKKyAgICBzbG90LT5lZ19waGFzZSArPSBzbG90LT5lZ19kcGhhc2U7CisgICAgaWYgKGVnb3V0ID49ICgxIDw8IEVHX0JJVFMpKQorICAgIHsKKyAgICAgIHNsb3QtPmVnX21vZGUgPSBBVFRBQ0s7CisgICAgICBlZ291dCA9ICgxIDw8IEVHX0JJVFMpIC0gMTsKKyAgICAgIFVQREFURV9FRyhzbG90KTsKKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSBGSU5JU0g6CisgICAgZWdvdXQgPSAoMSA8PCBFR19CSVRTKSAtIDE7CisgICAgYnJlYWs7CisKKyAgZGVmYXVsdDoKKyAgICBlZ291dCA9ICgxIDw8IEVHX0JJVFMpIC0gMTsKKyAgICBicmVhazsKKyAgfQorCisgIGlmIChzbG90LT5wYXRjaC0+QU0pCisgICAgZWdvdXQgPSBFRzJEQiAoZWdvdXQgKyBzbG90LT50bGwpICsgbGZvOworICBlbHNlCisgICAgZWdvdXQgPSBFRzJEQiAoZWdvdXQgKyBzbG90LT50bGwpOworCisgIGlmIChlZ291dCA+PSBEQl9NVVRFKQorICAgIGVnb3V0ID0gREJfTVVURSAtIDE7CisgIAorICBzbG90LT5lZ291dCA9IGVnb3V0IHwgMzsKK30KKworLyogQ0FSUklPUiAqLworSU5MSU5FIHN0YXRpYyBlX2ludDMyCitjYWxjX3Nsb3RfY2FyIChPUExMX1NMT1QgKiBzbG90LCBlX2ludDMyIGZtKQoreworICBpZiAoc2xvdC0+ZWdvdXQgPj0gKERCX01VVEUgLSAxKSkKKyAgeworICAgIHNsb3QtPm91dHB1dFswXSA9IDA7CisgIH0KKyAgZWxzZQorICB7CisgICAgc2xvdC0+b3V0cHV0WzBdID0gREIyTElOX1RBQkxFW3Nsb3QtPnNpbnRibFsoc2xvdC0+cGdvdXQrd2F2ZTJfOHBpKGZtKSkmKFBHX1dJRFRILTEpXSArIHNsb3QtPmVnb3V0XTsKKyAgfQorCisgIHNsb3QtPm91dHB1dFsxXSA9IChzbG90LT5vdXRwdXRbMV0gKyBzbG90LT5vdXRwdXRbMF0pID4+IDE7CisgIHJldHVybiBzbG90LT5vdXRwdXRbMV07Cit9CisKKy8qIE1PRFVMQVRPUiAqLworSU5MSU5FIHN0YXRpYyBlX2ludDMyCitjYWxjX3Nsb3RfbW9kIChPUExMX1NMT1QgKiBzbG90KQoreworICBlX2ludDMyIGZtOworCisgIHNsb3QtPm91dHB1dFsxXSA9IHNsb3QtPm91dHB1dFswXTsKKworICBpZiAoc2xvdC0+ZWdvdXQgPj0gKERCX01VVEUgLSAxKSkKKyAgeworICAgIHNsb3QtPm91dHB1dFswXSA9IDA7CisgIH0KKyAgZWxzZSBpZiAoc2xvdC0+cGF0Y2gtPkZCICE9IDApCisgIHsKKyAgICBmbSA9IHdhdmUyXzRwaSAoc2xvdC0+ZmVlZGJhY2spID4+ICg3IC0gc2xvdC0+cGF0Y2gtPkZCKTsKKyAgICBzbG90LT5vdXRwdXRbMF0gPSBEQjJMSU5fVEFCTEVbc2xvdC0+c2ludGJsWyhzbG90LT5wZ291dCtmbSkmKFBHX1dJRFRILTEpXSArIHNsb3QtPmVnb3V0XTsKKyAgfQorICBlbHNlCisgIHsKKyAgICBzbG90LT5vdXRwdXRbMF0gPSBEQjJMSU5fVEFCTEVbc2xvdC0+c2ludGJsW3Nsb3QtPnBnb3V0XSArIHNsb3QtPmVnb3V0XTsKKyAgfQorCisgIHNsb3QtPmZlZWRiYWNrID0gKHNsb3QtPm91dHB1dFsxXSArIHNsb3QtPm91dHB1dFswXSkgPj4gMTsKKworICByZXR1cm4gc2xvdC0+ZmVlZGJhY2s7CisKK30KKworLyogVE9NICovCitJTkxJTkUgc3RhdGljIGVfaW50MzIKK2NhbGNfc2xvdF90b20gKE9QTExfU0xPVCAqIHNsb3QpCit7CisgIGlmIChzbG90LT5lZ291dCA+PSAoREJfTVVURSAtIDEpKQorICAgIHJldHVybiAwOworCisgIHJldHVybiBEQjJMSU5fVEFCTEVbc2xvdC0+c2ludGJsW3Nsb3QtPnBnb3V0XSArIHNsb3QtPmVnb3V0XTsKKworfQorCisvKiBTTkFSRSAqLworSU5MSU5FIHN0YXRpYyBlX2ludDMyCitjYWxjX3Nsb3Rfc25hcmUgKE9QTExfU0xPVCAqIHNsb3QsIGVfdWludDMyIG5vaXNlKQoreworICBpZihzbG90LT5lZ291dD49KERCX01VVEUtMSkpCisgICAgcmV0dXJuIDA7CisgIAorICBpZihCSVQoc2xvdC0+cGdvdXQsNykpCisgICAgcmV0dXJuIERCMkxJTl9UQUJMRVsobm9pc2U/REJfUE9TKDApOkRCX1BPUygxNSkpK3Nsb3QtPmVnb3V0XTsKKyAgZWxzZQorICAgIHJldHVybiBEQjJMSU5fVEFCTEVbKG5vaXNlP0RCX05FRygwKTpEQl9ORUcoMTUpKStzbG90LT5lZ291dF07Cit9CisKKy8qIAorICBUT1AtQ1lNIAorICovCitJTkxJTkUgc3RhdGljIGVfaW50MzIKK2NhbGNfc2xvdF9jeW0gKE9QTExfU0xPVCAqIHNsb3QsIGVfdWludDMyIHBnb3V0X2hoKQoreworICBlX3VpbnQzMiBkYm91dDsKKworICBpZiAoc2xvdC0+ZWdvdXQgPj0gKERCX01VVEUgLSAxKSkgCisgICAgcmV0dXJuIDA7CisgIGVsc2UgaWYoIAorICAgICAgLyogdGhlIHNhbWUgYXMgZm1vcGwuYyAqLworICAgICAgKChCSVQocGdvdXRfaGgsUEdfQklUUy04KV5CSVQocGdvdXRfaGgsUEdfQklUUy0xKSl8QklUKHBnb3V0X2hoLFBHX0JJVFMtNykpIF4KKyAgICAgIC8qIGRpZmZlcmVudCBmcm9tIGZtb3BsLmMgKi8KKyAgICAgKEJJVChzbG90LT5wZ291dCxQR19CSVRTLTcpJiFCSVQoc2xvdC0+cGdvdXQsUEdfQklUUy01KSkKKyAgICApCisgICAgZGJvdXQgPSBEQl9ORUcoMyk7CisgIGVsc2UKKyAgICBkYm91dCA9IERCX1BPUygzKTsKKworICByZXR1cm4gREIyTElOX1RBQkxFW2Rib3V0ICsgc2xvdC0+ZWdvdXRdOworfQorCisvKiAKKyAgSEktSEFUIAorKi8KK0lOTElORSBzdGF0aWMgZV9pbnQzMgorY2FsY19zbG90X2hhdCAoT1BMTF9TTE9UICpzbG90LCBlX2ludDMyIHBnb3V0X2N5bSwgZV91aW50MzIgbm9pc2UpCit7CisgIGVfdWludDMyIGRib3V0OworCisgIGlmIChzbG90LT5lZ291dCA+PSAoREJfTVVURSAtIDEpKSAKKyAgICByZXR1cm4gMDsKKyAgZWxzZSBpZiggCisgICAgICAvKiB0aGUgc2FtZSBhcyBmbW9wbC5jICovCisgICAgICAoKEJJVChzbG90LT5wZ291dCxQR19CSVRTLTgpXkJJVChzbG90LT5wZ291dCxQR19CSVRTLTEpKXxCSVQoc2xvdC0+cGdvdXQsUEdfQklUUy03KSkgXgorICAgICAgLyogZGlmZmVyZW50IGZyb20gZm1vcGwuYyAqLworICAgICAgKEJJVChwZ291dF9jeW0sUEdfQklUUy03KSYhQklUKHBnb3V0X2N5bSxQR19CSVRTLTUpKQorICAgICkKKyAgeworICAgIGlmKG5vaXNlKQorICAgICAgZGJvdXQgPSBEQl9ORUcoMTIpOworICAgIGVsc2UKKyAgICAgIGRib3V0ID0gREJfTkVHKDI0KTsKKyAgfQorICBlbHNlCisgIHsKKyAgICBpZihub2lzZSkKKyAgICAgIGRib3V0ID0gREJfUE9TKDEyKTsKKyAgICBlbHNlCisgICAgICBkYm91dCA9IERCX1BPUygyNCk7CisgIH0KKworICByZXR1cm4gREIyTElOX1RBQkxFW2Rib3V0ICsgc2xvdC0+ZWdvdXRdOworfQorCitzdGF0aWMgZV9pbnQxNgorY2FsYyAoT1BMTCAqIG9wbGwpIEVNVTI0MTNfQ0FMQ19JQ09ERTsKK3N0YXRpYyBlX2ludDE2CitjYWxjIChPUExMICogb3BsbCkKK3sKKyAgZV9pbnQzMiBpOworCisgIHVwZGF0ZV9hbXBtIChvcGxsKTsKKyAgdXBkYXRlX25vaXNlIChvcGxsKTsKKworICBmb3IgKGkgPSAwOyBpIDwgMTg7IGkrKykKKyAgeworICAgIGNhbGNfcGhhc2UoJm9wbGwtPnNsb3RbaV0sb3BsbC0+bGZvX3BtKTsKKyAgICBjYWxjX2VudmVsb3BlKCZvcGxsLT5zbG90W2ldLG9wbGwtPmxmb19hbSk7CisgIH0KKworICBlX3VpbnQzMiBjaGFubmVsX21hc2sgPSBvcGxsLT5tYXNrOworICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7CisgICAgaWYgKENBUihvcGxsLGkpLT5lZ19tb2RlICE9IEZJTklTSCkKKyAgICAgIGNoYW5uZWxfbWFzayB8PSAoMSA8PCBpKTsKKyAgfQorCisgIGVfaW50MzIgbWl4ID0gMDsKKyAgCisgIC8qIENINiAqLworICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzZdICYgMHgxMCkgeworICAgIGlmIChjaGFubmVsX21hc2sgJiBPUExMX01BU0tfQ0ggKDYpKSB7CisgICAgICBtaXggKz0gY2FsY19zbG90X2NhciAoQ0FSKG9wbGwsNiksIGNhbGNfc2xvdF9tb2QoTU9EKG9wbGwsNikpKTsKKyAgICAgIGNoYW5uZWxfbWFzayAmPSB+KDEgPDwgNik7CisJfQorICB9CisKKyAgLyogQ0g3ICovCisgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbN10gJiAweDEwKSB7CisgICAgaWYgKE1PRChvcGxsLDcpLT5lZ19tb2RlICE9IEZJTklTSCkKKyAgICAgIG1peCArPSBjYWxjX3Nsb3RfaGF0IChNT0Qob3BsbCw3KSwgQ0FSKG9wbGwsOCktPnBnb3V0LCBvcGxsLT5ub2lzZV9zZWVkJjEpOworICAgIGlmIChjaGFubmVsX21hc2sgJiBPUExMX01BU0tfU0QpIHsKKyAgICAgIG1peCAtPSBjYWxjX3Nsb3Rfc25hcmUgKENBUihvcGxsLDcpLCBvcGxsLT5ub2lzZV9zZWVkJjEpOworICAgICAgY2hhbm5lbF9tYXNrICY9IH5PUExMX01BU0tfU0Q7CisJfQorICB9CisKKyAgLyogQ0g4ICovCisgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbOF0gJiAweDEwKSB7CisgICAgaWYgKE1PRChvcGxsLDgpLT5lZ19tb2RlICE9IEZJTklTSCkKKyAgICAgIG1peCArPSBjYWxjX3Nsb3RfdG9tIChNT0Qob3BsbCw4KSk7CisgICAgaWYgKGNoYW5uZWxfbWFzayAmIE9QTExfTUFTS19DWU0pIHsKKyAgICAgIG1peCAtPSBjYWxjX3Nsb3RfY3ltIChDQVIob3BsbCw4KSwgTU9EKG9wbGwsNyktPnBnb3V0KTsKKyAgICAgIGNoYW5uZWxfbWFzayAmPSB+T1BMTF9NQVNLX0NZTTsKKyAgICB9CisgIH0KKyAgCisgIG1peCA8PD0gMTsKKyAgCisgIG9wbGwtPmN1cnJlbnRfbWFzayA9IGNoYW5uZWxfbWFzazsKKyAgZm9yIChpID0gMDsgY2hhbm5lbF9tYXNrOyBjaGFubmVsX21hc2sgPj49IDEsICsraSkgeworICAgIGlmIChjaGFubmVsX21hc2sgJiAxKSB7CisgICAgICBtaXggKz0gY2FsY19zbG90X2NhciAoQ0FSKG9wbGwsaSksIGNhbGNfc2xvdF9tb2QoTU9EKG9wbGwsaSkpKTsKKyAgICB9CisgIH0KKworICByZXR1cm4gKGVfaW50MTYpIG1peCA8PCAzOworfQorCit2b2lkCitPUExMX3NldF9pbnRlcm5hbF9tdXRlKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiBtdXRlKQoreworICBvcGxsLT5pbnRlcm5hbF9tdXRlID0gbXV0ZTsKK30KKworZV91aW50MzIKK09QTExfaXNfaW50ZXJuYWxfbXV0ZWQoT1BMTCAqIG9wbGwpCit7CisgIHJldHVybiBvcGxsLT5pbnRlcm5hbF9tdXRlOyAKK30KKworc3RhdGljIGVfdWludDMyCitjaGVja19tdXRlX2hlbHBlcihPUExMICogb3BsbCkKK3sJCQorICBmb3IgKGludCBpID0gMDsgaSA8IDY7IGkrKykgeworICAgIC8qIGlmIChjaFtpXS5jYXIuZWdfbW9kZSAhPSBGSU5JU0gpIHJldHVybiAwOyAqLworICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoaSkpICYmIChDQVIob3BsbCxpKS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsKKyAgfQorCisgIGlmICghKG9wbGwtPnJlZ1sweDBlXSAmIDB4MjApKSB7CisgICAgZm9yKGludCBpID0gNjsgaSA8IDk7IGkrKykgeworICAgICAgLyogaWYgKGNoW2ldLmNhci5lZ19tb2RlICE9IEZJTklTSCkgcmV0dXJuIDA7ICovCisgICAgICBpZiAoIShvcGxsLT5jdXJyZW50X21hc2sgJiBPUExMX01BU0tfQ0ggKGkpKSAmJiAoQ0FSKG9wbGwsaSktPmVnX21vZGUgIT0gRklOSVNIKSkgcmV0dXJuIDA7CisgICAgfQorICB9IGVsc2UgeworICAgIC8qIGlmIChjaFs2XS5jYXIuZWdfbW9kZSAhPSBGSU5JU0gpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY2hbN10ubW9kLmVnX21vZGUgIT0gRklOSVNIKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKGNoWzddLmNhci5lZ19tb2RlICE9IEZJTklTSCkgcmV0dXJuIGZhbHNlOworICAgIGlmIChjaFs4XS5tb2QuZWdfbW9kZSAhPSBGSU5JU0gpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY2hbOF0uY2FyLmVnX21vZGUgIT0gRklOSVNIKSByZXR1cm4gZmFsc2U7ICovCisgICAgaWYgKCEob3BsbC0+Y3VycmVudF9tYXNrICYgT1BMTF9NQVNLX0NIICg2KSkgJiYgKENBUihvcGxsLDYpLT5lZ19tb2RlICE9IEZJTklTSCkpIHJldHVybiAwOworICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoNykpICYmIChNT0Qob3BsbCw3KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsKKyAgICBpZiAoIShvcGxsLT5jdXJyZW50X21hc2sgJiBPUExMX01BU0tfQ0ggKDcpKSAmJiAoQ0FSKG9wbGwsNyktPmVnX21vZGUgIT0gRklOSVNIKSkgcmV0dXJuIDA7CisgICAgaWYgKCEob3BsbC0+Y3VycmVudF9tYXNrICYgT1BMTF9NQVNLX0NIICg4KSkgJiYgKE1PRChvcGxsLDgpLT5lZ19tb2RlICE9IEZJTklTSCkpIHJldHVybiAwOworICAgIGlmICghKG9wbGwtPmN1cnJlbnRfbWFzayAmIE9QTExfTUFTS19DSCAoOCkpICYmIChDQVIob3BsbCw4KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKSByZXR1cm4gMDsKKyAgfQorICAKKyAgcmV0dXJuIDE7ICAgIC8qIG5vdGhpbmcgaXMgcGxheWluZywgdGhlbiBtdXRlICovCit9CisKK3N0YXRpYyB2b2lkCitjaGVja19tdXRlKE9QTEwgKiBvcGxsKQoreworICBPUExMX3NldF9pbnRlcm5hbF9tdXRlIChvcGxsLCBjaGVja19tdXRlX2hlbHBlciAob3BsbCkpOworfQorCitFTVUyNDEzX0FQSSBlX2ludDE2ICpPUExMX3VwZGF0ZV9idWZmZXIoT1BMTCAqIG9wbGwsIGVfdWludDMyIGxlbmd0aCkKK3sKKyAgZV9pbnQxNiogYnVmID0gb3BsbC0+YnVmZmVyOworICB3aGlsZSAobGVuZ3RoLS0pIHsKKyAgICAqKGJ1ZisrKSA9IGNhbGMgKG9wbGwpOworICB9CisgIGNoZWNrX211dGUgKG9wbGwpOworCisgIHJldHVybiBvcGxsLT5idWZmZXI7Cit9CisKKyNpZmRlZiBFTVUyNDEzX0NPTVBBQ1RJT04KK2VfaW50MTYKK09QTExfY2FsYyAoT1BMTCAqIG9wbGwpCit7CisgIHJldHVybiBjYWxjIChvcGxsKTsKK30KKyNlbHNlCitlX2ludDE2CitPUExMX2NhbGMgKE9QTEwgKiBvcGxsKQoreworICBpZiAoIW9wbGwtPnF1YWxpdHkpCisgICAgcmV0dXJuIGNhbGMgKG9wbGwpOworCisgIHdoaWxlIChvcGxsLT5yZWFsc3RlcCA+IG9wbGwtPm9wbGx0aW1lKQorICB7CisgICAgb3BsbC0+b3BsbHRpbWUgKz0gb3BsbC0+b3BsbHN0ZXA7CisgICAgb3BsbC0+cHJldiA9IG9wbGwtPm5leHQ7CisgICAgb3BsbC0+bmV4dCA9IGNhbGMgKG9wbGwpOworICB9CisKKyAgb3BsbC0+b3BsbHRpbWUgLT0gb3BsbC0+cmVhbHN0ZXA7CisgIG9wbGwtPm91dCA9IChlX2ludDE2KSAoKChkb3VibGUpIG9wbGwtPm5leHQgKiAob3BsbC0+b3BsbHN0ZXAgLSBvcGxsLT5vcGxsdGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZG91YmxlKSBvcGxsLT5wcmV2ICogb3BsbC0+b3BsbHRpbWUpIC8gb3BsbC0+b3BsbHN0ZXApOworCisgIHJldHVybiAoZV9pbnQxNikgb3BsbC0+b3V0OworfQorI2VuZGlmCisKK2VfdWludDMyCitPUExMX3NldE1hc2sgKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiBtYXNrKQoreworICBlX3VpbnQzMiByZXQ7CisKKyAgaWYgKG9wbGwpCisgIHsKKyAgICByZXQgPSBvcGxsLT5tYXNrOworICAgIG9wbGwtPm1hc2sgPSBtYXNrOworICAgIHJldHVybiByZXQ7CisgIH0KKyAgZWxzZQorICAgIHJldHVybiAwOworfQorCitlX3VpbnQzMgorT1BMTF90b2dnbGVNYXNrIChPUExMICogb3BsbCwgZV91aW50MzIgbWFzaykKK3sKKyAgZV91aW50MzIgcmV0OworCisgIGlmIChvcGxsKQorICB7CisgICAgcmV0ID0gb3BsbC0+bWFzazsKKyAgICBvcGxsLT5tYXNrIF49IG1hc2s7CisgICAgcmV0dXJuIHJldDsKKyAgfQorICBlbHNlCisgICAgcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgICAgSS9PIEN0cmwKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3ZvaWQKK09QTExfd3JpdGVSZWcgKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiByZWcsIGVfdWludDMyIGRhdGEpCit7CisgIGVfaW50MzIgaSwgdiwgY2g7CisKKyAgZGF0YSA9IGRhdGEgJiAweGZmOworICByZWcgPSByZWcgJiAweDNmOworICBvcGxsLT5yZWdbcmVnXSA9IChlX3VpbnQ4KSBkYXRhOworCisgIHN3aXRjaCAocmVnKQorICB7CisgIGNhc2UgMHgwMDoKKyAgICBvcGxsLT5wYXRjaFswXS5BTSA9IChkYXRhID4+IDcpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5QTSA9IChkYXRhID4+IDYpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5FRyA9IChkYXRhID4+IDUpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5LUiA9IChkYXRhID4+IDQpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5NTCA9IChkYXRhKSAmIDE1OworICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspCisgICAgeworICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQorICAgICAgeworICAgICAgICBVUERBVEVfUEcgKE1PRChvcGxsLGkpKTsKKyAgICAgICAgVVBEQVRFX1JLUyAoTU9EKG9wbGwsaSkpOworICAgICAgICBVUERBVEVfRUcgKE1PRChvcGxsLGkpKTsKKyAgICAgIH0KKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSAweDAxOgorICAgIG9wbGwtPnBhdGNoWzFdLkFNID0gKGRhdGEgPj4gNykgJiAxOworICAgIG9wbGwtPnBhdGNoWzFdLlBNID0gKGRhdGEgPj4gNikgJiAxOworICAgIG9wbGwtPnBhdGNoWzFdLkVHID0gKGRhdGEgPj4gNSkgJiAxOworICAgIG9wbGwtPnBhdGNoWzFdLktSID0gKGRhdGEgPj4gNCkgJiAxOworICAgIG9wbGwtPnBhdGNoWzFdLk1MID0gKGRhdGEpICYgMTU7CisgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKyAgICB7CisgICAgICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyW2ldID09IDApCisgICAgICB7CisgICAgICAgIFVQREFURV9QRyAoQ0FSKG9wbGwsaSkpOworICAgICAgICBVUERBVEVfUktTIChDQVIob3BsbCxpKSk7CisgICAgICAgIFVQREFURV9FRyAoQ0FSKG9wbGwsaSkpOworICAgICAgfQorICAgIH0KKyAgICBicmVhazsKKworICBjYXNlIDB4MDI6CisgICAgb3BsbC0+cGF0Y2hbMF0uS0wgPSAoZGF0YSA+PiA2KSAmIDM7CisgICAgb3BsbC0+cGF0Y2hbMF0uVEwgPSAoZGF0YSkgJiA2MzsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQorICAgIHsKKyAgICAgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbaV0gPT0gMCkKKyAgICAgIHsKKyAgICAgICAgVVBEQVRFX1RMTChNT0Qob3BsbCxpKSk7CisgICAgICB9CisgICAgfQorICAgIGJyZWFrOworCisgIGNhc2UgMHgwMzoKKyAgICBvcGxsLT5wYXRjaFsxXS5LTCA9IChkYXRhID4+IDYpICYgMzsKKyAgICBvcGxsLT5wYXRjaFsxXS5XRiA9IChkYXRhID4+IDQpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5XRiA9IChkYXRhID4+IDMpICYgMTsKKyAgICBvcGxsLT5wYXRjaFswXS5GQiA9IChkYXRhKSAmIDc7CisgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKyAgICB7CisgICAgICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyW2ldID09IDApCisgICAgICB7CisgICAgICAgIFVQREFURV9XRihNT0Qob3BsbCxpKSk7CisgICAgICAgIFVQREFURV9XRihDQVIob3BsbCxpKSk7CisgICAgICB9CisgICAgfQorICAgIGJyZWFrOworCisgIGNhc2UgMHgwNDoKKyAgICBvcGxsLT5wYXRjaFswXS5BUiA9IChkYXRhID4+IDQpICYgMTU7CisgICAgb3BsbC0+cGF0Y2hbMF0uRFIgPSAoZGF0YSkgJiAxNTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQorICAgIHsKKyAgICAgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbaV0gPT0gMCkKKyAgICAgIHsKKyAgICAgICAgVVBEQVRFX0VHIChNT0Qob3BsbCxpKSk7CisgICAgICB9CisgICAgfQorICAgIGJyZWFrOworCisgIGNhc2UgMHgwNToKKyAgICBvcGxsLT5wYXRjaFsxXS5BUiA9IChkYXRhID4+IDQpICYgMTU7CisgICAgb3BsbC0+cGF0Y2hbMV0uRFIgPSAoZGF0YSkgJiAxNTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKQorICAgIHsKKyAgICAgIGlmIChvcGxsLT5wYXRjaF9udW1iZXJbaV0gPT0gMCkKKyAgICAgIHsKKyAgICAgICAgVVBEQVRFX0VHKENBUihvcGxsLGkpKTsKKyAgICAgIH0KKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSAweDA2OgorICAgIG9wbGwtPnBhdGNoWzBdLlNMID0gKGRhdGEgPj4gNCkgJiAxNTsKKyAgICBvcGxsLT5wYXRjaFswXS5SUiA9IChkYXRhKSAmIDE1OworICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspCisgICAgeworICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQorICAgICAgeworICAgICAgICBVUERBVEVfRUcgKE1PRChvcGxsLGkpKTsKKyAgICAgIH0KKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSAweDA3OgorICAgIG9wbGwtPnBhdGNoWzFdLlNMID0gKGRhdGEgPj4gNCkgJiAxNTsKKyAgICBvcGxsLT5wYXRjaFsxXS5SUiA9IChkYXRhKSAmIDE1OworICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspCisgICAgeworICAgICAgaWYgKG9wbGwtPnBhdGNoX251bWJlcltpXSA9PSAwKQorICAgICAgeworICAgICAgICBVUERBVEVfRUcgKENBUihvcGxsLGkpKTsKKyAgICAgIH0KKyAgICB9CisgICAgYnJlYWs7CisKKyAgY2FzZSAweDBlOgorICAgIHVwZGF0ZV9yaHl0aG1fbW9kZSAob3BsbCk7CisgICAgaWYgKGRhdGEgJiAzMikKKyAgICB7CisgICAgICBpZiAoZGF0YSAmIDB4MTApCisgICAgICAgIGtleU9uX0JEIChvcGxsKTsKKyAgICAgIGVsc2UKKyAgICAgICAga2V5T2ZmX0JEIChvcGxsKTsKKyAgICAgIGlmIChkYXRhICYgMHg4KQorICAgICAgICBrZXlPbl9TRCAob3BsbCk7CisgICAgICBlbHNlCisgICAgICAgIGtleU9mZl9TRCAob3BsbCk7CisgICAgICBpZiAoZGF0YSAmIDB4NCkKKyAgICAgICAga2V5T25fVE9NIChvcGxsKTsKKyAgICAgIGVsc2UKKyAgICAgICAga2V5T2ZmX1RPTSAob3BsbCk7CisgICAgICBpZiAoZGF0YSAmIDB4MikKKyAgICAgICAga2V5T25fQ1lNIChvcGxsKTsKKyAgICAgIGVsc2UKKyAgICAgICAga2V5T2ZmX0NZTSAob3BsbCk7CisgICAgICBpZiAoZGF0YSAmIDB4MSkKKyAgICAgICAga2V5T25fSEggKG9wbGwpOworICAgICAgZWxzZQorICAgICAgICBrZXlPZmZfSEggKG9wbGwpOworICAgIH0KKyAgICB1cGRhdGVfa2V5X3N0YXR1cyAob3BsbCk7CisKKyAgICBVUERBVEVfQUxMIChNT0Qob3BsbCw2KSk7CisgICAgVVBEQVRFX0FMTCAoQ0FSKG9wbGwsNikpOworICAgIFVQREFURV9BTEwgKE1PRChvcGxsLDcpKTsKKyAgICBVUERBVEVfQUxMIChDQVIob3BsbCw3KSk7CisgICAgVVBEQVRFX0FMTCAoTU9EKG9wbGwsOCkpOworICAgIFVQREFURV9BTEwgKENBUihvcGxsLDgpKTsKKworICAgIGJyZWFrOworCisgIGNhc2UgMHgwZjoKKyAgICBicmVhazsKKworICBjYXNlIDB4MTA6CisgIGNhc2UgMHgxMToKKyAgY2FzZSAweDEyOgorICBjYXNlIDB4MTM6CisgIGNhc2UgMHgxNDoKKyAgY2FzZSAweDE1OgorICBjYXNlIDB4MTY6CisgIGNhc2UgMHgxNzoKKyAgY2FzZSAweDE4OgorICAgIGNoID0gcmVnIC0gMHgxMDsKKyAgICBzZXRGbnVtYmVyIChvcGxsLCBjaCwgZGF0YSArICgob3BsbC0+cmVnWzB4MjAgKyBjaF0gJiAxKSA8PCA4KSk7CisgICAgVVBEQVRFX0FMTCAoTU9EKG9wbGwsY2gpKTsKKyAgICBVUERBVEVfQUxMIChDQVIob3BsbCxjaCkpOworICAgIGJyZWFrOworCisgIGNhc2UgMHgyMDoKKyAgY2FzZSAweDIxOgorICBjYXNlIDB4MjI6CisgIGNhc2UgMHgyMzoKKyAgY2FzZSAweDI0OgorICBjYXNlIDB4MjU6CisgIGNhc2UgMHgyNjoKKyAgY2FzZSAweDI3OgorICBjYXNlIDB4Mjg6CisgICAgY2ggPSByZWcgLSAweDIwOworICAgIHNldEZudW1iZXIgKG9wbGwsIGNoLCAoKGRhdGEgJiAxKSA8PCA4KSArIG9wbGwtPnJlZ1sweDEwICsgY2hdKTsKKyAgICBzZXRCbG9jayAob3BsbCwgY2gsIChkYXRhID4+IDEpICYgNyk7CisgICAgc2V0U3VzdGluZSAob3BsbCwgY2gsIChkYXRhID4+IDUpICYgMSk7CisgICAgaWYgKGRhdGEgJiAweDEwKQorICAgICAga2V5T24gKG9wbGwsIGNoKTsKKyAgICBlbHNlCisgICAgICBrZXlPZmYgKG9wbGwsIGNoKTsKKyAgICBVUERBVEVfQUxMIChNT0Qob3BsbCxjaCkpOworICAgIFVQREFURV9BTEwgKENBUihvcGxsLGNoKSk7CisgICAgdXBkYXRlX2tleV9zdGF0dXMgKG9wbGwpOworICAgIHVwZGF0ZV9yaHl0aG1fbW9kZSAob3BsbCk7CisgICAgYnJlYWs7CisKKyAgY2FzZSAweDMwOgorICBjYXNlIDB4MzE6CisgIGNhc2UgMHgzMjoKKyAgY2FzZSAweDMzOgorICBjYXNlIDB4MzQ6CisgIGNhc2UgMHgzNToKKyAgY2FzZSAweDM2OgorICBjYXNlIDB4Mzc6CisgIGNhc2UgMHgzODoKKyAgICBpID0gKGRhdGEgPj4gNCkgJiAxNTsKKyAgICB2ID0gZGF0YSAmIDE1OworICAgIGlmICgob3BsbC0+cmVnWzB4MGVdICYgMzIpICYmIChyZWcgPj0gMHgzNikpCisgICAgeworICAgICAgc3dpdGNoIChyZWcpCisgICAgICB7CisgICAgICBjYXNlIDB4Mzc6CisgICAgICAgIHNldFNsb3RWb2x1bWUgKE1PRChvcGxsLDcpLCBpIDw8IDIpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgzODoKKyAgICAgICAgc2V0U2xvdFZvbHVtZSAoTU9EKG9wbGwsOCksIGkgPDwgMik7CisgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICBzZXRQYXRjaCAob3BsbCwgcmVnIC0gMHgzMCwgaSk7CisgICAgfQorICAgIHNldFZvbHVtZSAob3BsbCwgcmVnIC0gMHgzMCwgdiA8PCAyKTsKKyAgICBVUERBVEVfQUxMIChNT0Qob3BsbCxyZWcgLSAweDMwKSk7CisgICAgVVBEQVRFX0FMTCAoQ0FSKG9wbGwscmVnIC0gMHgzMCkpOworICAgIGJyZWFrOworCisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisKKyAgfQorfQorCit2b2lkCitPUExMX3dyaXRlSU8gKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiBhZHIsIGVfdWludDMyIHZhbCkKK3sKKyAgaWYgKGFkciAmIDEpCisgICAgT1BMTF93cml0ZVJlZyAob3BsbCwgb3BsbC0+YWRyLCB2YWwpOworICBlbHNlCisgICAgb3BsbC0+YWRyID0gdmFsOworfQorCitlX3VpbnQzMgorT1BMTF9yZWFkKE9QTEwgKiBvcGxsLCBlX3VpbnQzMiBhKQoreworICBpZiggIShhJjEpICkKKyAgICB7CisJLyogc3RhdHVzIHBvcnQgKi8KKwlyZXR1cm4gb3BsbC0+c3RhdHVzOworICB9CisgIHJldHVybiAweGZmOworfQorCisjaWZuZGVmIEVNVTI0MTNfQ09NUEFDVElPTgorLyogU1RFUkVPIE1PREUgKE9QVCkgKi8KK3ZvaWQKK09QTExfc2V0X3BhbiAoT1BMTCAqIG9wbGwsIGVfdWludDMyIGNoLCBlX3VpbnQzMiBwYW4pCit7CisgIG9wbGwtPnBhbltjaCAmIDE1XSA9IHBhbiAmIDM7Cit9CisKK3N0YXRpYyB2b2lkCitjYWxjX3N0ZXJlbyAoT1BMTCAqIG9wbGwsIGVfaW50MzIgb3V0WzJdKQoreworICBlX2ludDMyIGJbNF0gPSB7IDAsIDAsIDAsIDAgfTsgICAgICAgIC8qIElnbm9yZSwgUmlnaHQsIExlZnQsIENlbnRlciAqLworICBlX2ludDMyIHJbNF0gPSB7IDAsIDAsIDAsIDAgfTsgICAgICAgIC8qIElnbm9yZSwgUmlnaHQsIExlZnQsIENlbnRlciAqLworICBlX2ludDMyIGk7CisKKyAgdXBkYXRlX2FtcG0gKG9wbGwpOworICB1cGRhdGVfbm9pc2UgKG9wbGwpOworCisgIGZvcihpPTA7aTwxODtpKyspCisgIHsKKyAgICBjYWxjX3BoYXNlKCZvcGxsLT5zbG90W2ldLG9wbGwtPmxmb19wbSk7CisgICAgY2FsY19lbnZlbG9wZSgmb3BsbC0+c2xvdFtpXSxvcGxsLT5sZm9fYW0pOworICB9CisKKyAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKyAgICBpZiAoIShvcGxsLT5tYXNrICYgT1BMTF9NQVNLX0NIIChpKSkgJiYgKENBUihvcGxsLGkpLT5lZ19tb2RlICE9IEZJTklTSCkpCisgICAgICBiW29wbGwtPnBhbltpXV0gKz0gY2FsY19zbG90X2NhciAoQ0FSKG9wbGwsaSksIGNhbGNfc2xvdF9tb2QgKE1PRChvcGxsLGkpKSk7CisKKworICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzZdIDw9IDE1KQorICB7CisgICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DSCAoNikpICYmIChDQVIob3BsbCw2KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKQorICAgICAgYltvcGxsLT5wYW5bNl1dICs9IGNhbGNfc2xvdF9jYXIgKENBUihvcGxsLDYpLCBjYWxjX3Nsb3RfbW9kIChNT0Qob3BsbCw2KSkpOworICB9CisgIGVsc2UKKyAgeworICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfQkQpICYmIChDQVIob3BsbCw2KS0+ZWdfbW9kZSAhPSBGSU5JU0gpKQorICAgICAgcltvcGxsLT5wYW5bOV1dICs9IGNhbGNfc2xvdF9jYXIgKENBUihvcGxsLDYpLCBjYWxjX3Nsb3RfbW9kIChNT0Qob3BsbCw2KSkpOworICB9CisKKyAgaWYgKG9wbGwtPnBhdGNoX251bWJlcls3XSA8PSAxNSkKKyAgeworICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfQ0ggKDcpKSAmJiAoQ0FSIChvcGxsLDcpLT5lZ19tb2RlICE9IEZJTklTSCkpCisgICAgICBiW29wbGwtPnBhbls3XV0gKz0gY2FsY19zbG90X2NhciAoQ0FSIChvcGxsLDcpLCBjYWxjX3Nsb3RfbW9kIChNT0QgKG9wbGwsNykpKTsKKyAgfQorICBlbHNlCisgIHsKKyAgICBpZiAoIShvcGxsLT5tYXNrICYgT1BMTF9NQVNLX0hIKSAmJiAoTU9EIChvcGxsLDcpLT5lZ19tb2RlICE9IEZJTklTSCkpCisgICAgICByW29wbGwtPnBhblsxMF1dICs9IGNhbGNfc2xvdF9oYXQgKE1PRCAob3BsbCw3KSwgQ0FSKG9wbGwsOCktPnBnb3V0LCBvcGxsLT5ub2lzZV9zZWVkJjEpOworICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfU0QpICYmIChDQVIgKG9wbGwsNyktPmVnX21vZGUgIT0gRklOSVNIKSkKKyAgICAgIHJbb3BsbC0+cGFuWzExXV0gLT0gY2FsY19zbG90X3NuYXJlIChDQVIgKG9wbGwsNyksIG9wbGwtPm5vaXNlX3NlZWQmMSk7CisgIH0KKworICBpZiAob3BsbC0+cGF0Y2hfbnVtYmVyWzhdIDw9IDE1KQorICB7CisgICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DSCAoOCkpICYmIChDQVIgKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKSkKKyAgICAgIGJbb3BsbC0+cGFuWzhdXSArPSBjYWxjX3Nsb3RfY2FyIChDQVIgKG9wbGwsOCksIGNhbGNfc2xvdF9tb2QgKE1PRCAob3BsbCw4KSkpOworICB9CisgIGVsc2UKKyAgeworICAgIGlmICghKG9wbGwtPm1hc2sgJiBPUExMX01BU0tfVE9NKSAmJiAoTU9EIChvcGxsLDgpLT5lZ19tb2RlICE9IEZJTklTSCkpCisgICAgICByW29wbGwtPnBhblsxMl1dICs9IGNhbGNfc2xvdF90b20gKE1PRCAob3BsbCw4KSk7CisgICAgaWYgKCEob3BsbC0+bWFzayAmIE9QTExfTUFTS19DWU0pICYmIChDQVIgKG9wbGwsOCktPmVnX21vZGUgIT0gRklOSVNIKSkKKyAgICAgIHJbb3BsbC0+cGFuWzEzXV0gLT0gY2FsY19zbG90X2N5bSAoQ0FSIChvcGxsLDgpLCBNT0Qob3BsbCw3KS0+cGdvdXQpOworICB9CisKKyAgb3V0WzFdID0gKGJbMV0gKyBiWzNdICsgKChyWzFdICsgclszXSkgPDwgMSkpIDw8MzsKKyAgb3V0WzBdID0gKGJbMl0gKyBiWzNdICsgKChyWzJdICsgclszXSkgPDwgMSkpIDw8MzsKK30KKwordm9pZAorT1BMTF9jYWxjX3N0ZXJlbyAoT1BMTCAqIG9wbGwsIGVfaW50MzIgb3V0WzJdKQoreworICBpZiAoIW9wbGwtPnF1YWxpdHkpCisgIHsKKyAgICBjYWxjX3N0ZXJlbyAob3BsbCwgb3V0KTsKKyAgICByZXR1cm47CisgIH0KKworICB3aGlsZSAob3BsbC0+cmVhbHN0ZXAgPiBvcGxsLT5vcGxsdGltZSkKKyAgeworICAgIG9wbGwtPm9wbGx0aW1lICs9IG9wbGwtPm9wbGxzdGVwOworICAgIG9wbGwtPnNwcmV2WzBdID0gb3BsbC0+c25leHRbMF07CisgICAgb3BsbC0+c3ByZXZbMV0gPSBvcGxsLT5zbmV4dFsxXTsKKyAgICBjYWxjX3N0ZXJlbyAob3BsbCwgb3BsbC0+c25leHQpOworICB9CisKKyAgb3BsbC0+b3BsbHRpbWUgLT0gb3BsbC0+cmVhbHN0ZXA7CisgIG91dFswXSA9IChlX2ludDE2KSAoKChkb3VibGUpIG9wbGwtPnNuZXh0WzBdICogKG9wbGwtPm9wbGxzdGVwIC0gb3BsbC0+b3BsbHRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICsgKGRvdWJsZSkgb3BsbC0+c3ByZXZbMF0gKiBvcGxsLT5vcGxsdGltZSkgLyBvcGxsLT5vcGxsc3RlcCk7CisgIG91dFsxXSA9IChlX2ludDE2KSAoKChkb3VibGUpIG9wbGwtPnNuZXh0WzFdICogKG9wbGwtPm9wbGxzdGVwIC0gb3BsbC0+b3BsbHRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICsgKGRvdWJsZSkgb3BsbC0+c3ByZXZbMV0gKiBvcGxsLT5vcGxsdGltZSkgLyBvcGxsLT5vcGxsc3RlcCk7Cit9CisjZW5kaWYgLyogRU1VMjQxM19DT01QQUNUSU9OICovCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvZW11MjQxMy5oIGIvYXBwcy9jb2RlY3MvbGliZ21lL2VtdTI0MTMuaAppbmRleCA2YTE5YjEwLi4yNTRmMDQyIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvZW11MjQxMy5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9lbXUyNDEzLmgKQEAgLTEsMTY0ICsxLDE2NCBAQAotI2lmbmRlZiBfRU1VMjQxM19IXw0KLSNkZWZpbmUgX0VNVTI0MTNfSF8NCi0NCi0jaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIg0KLSNpbmNsdWRlICJlbXV0eXBlcy5oIg0KLQ0KLSNpZmRlZiBFTVUyNDEzX0RMTF9FWFBPUlRTDQotICAjZGVmaW5lIEVNVTI0MTNfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQ0KLSNlbGlmIGRlZmluZWQoRU1VMjQxM19ETExfSU1QT1JUUykNCi0gICNkZWZpbmUgRU1VMjQxM19BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpDQotI2Vsc2UNCi0gICNkZWZpbmUgRU1VMjQxM19BUEkNCi0jZW5kaWYNCi0NCi0jaWZkZWYgX19jcGx1c3BsdXMNCi1leHRlcm4gIkMiIHsNCi0jZW5kaWYNCi0NCi0jZGVmaW5lIEFVRElPX01PTk9fQlVGRkVSX1NJWkUgICAgMTAyNA0KLQ0KLSNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg0Ng0KLQ0KLWVudW0gT1BMTF9UT05FX0VOVU0ge09QTExfMjQxM19UT05FPTAsIE9QTExfVlJDN19UT05FPTEsIE9QTExfMjgxQl9UT05FPTJ9IDsNCi0NCi0vKiB2b2ljZSBkYXRhICovDQotdHlwZWRlZiBzdHJ1Y3QgX19PUExMX1BBVENIIHsNCi0gIGVfdWludDMyIFRMLEZCLEVHLE1MLEFSLERSLFNMLFJSLEtSLEtMLEFNLFBNLFdGIDsNCi19IE9QTExfUEFUQ0ggOw0KLQ0KLS8qIHNsb3QgKi8NCi10eXBlZGVmIHN0cnVjdCBfX09QTExfU0xPVCB7DQotDQotICBPUExMX1BBVENIICpwYXRjaDsgIA0KLQ0KLSAgZV9pbnQzMiB0eXBlIDsgICAgICAgICAgLyogMCA6IG1vZHVsYXRvciAxIDogY2FycmllciAqLw0KLQ0KLSAgLyogT1VUUFVUICovDQotICBlX2ludDMyIGZlZWRiYWNrIDsNCi0gIGVfaW50MzIgb3V0cHV0WzJdIDsgICAvKiBPdXRwdXQgdmFsdWUgb2Ygc2xvdCAqLw0KLQ0KLSAgLyogZm9yIFBoYXNlIEdlbmVyYXRvciAoUEcpICovDQotICBlX3VpbnQxNiAqc2ludGJsIDsgICAgLyogV2F2ZXRhYmxlICovDQotICBlX3VpbnQzMiBwaGFzZSA7ICAgICAgLyogUGhhc2UgKi8NCi0gIGVfdWludDMyIGRwaGFzZSA7ICAgICAvKiBQaGFzZSBpbmNyZW1lbnQgYW1vdW50ICovDQotICBlX3VpbnQzMiBwZ291dCA7ICAgICAgLyogb3V0cHV0ICovDQotDQotICAvKiBmb3IgRW52ZWxvcGUgR2VuZXJhdG9yIChFRykgKi8NCi0gIGVfaW50MzIgZm51bSA7ICAgICAgICAgIC8qIEYtTnVtYmVyICovDQotICBlX2ludDMyIGJsb2NrIDsgICAgICAgICAvKiBCbG9jayAqLw0KLSAgZV9pbnQzMiB2b2x1bWUgOyAgICAgICAgLyogQ3VycmVudCB2b2x1bWUgKi8NCi0gIGVfaW50MzIgc3VzdGluZSA7ICAgICAgIC8qIFN1c3RpbmUgMSA9IE9OLCAwID0gT0ZGICovDQotICBlX3VpbnQzMiB0bGwgOwkgICAgICAvKiBUb3RhbCBMZXZlbCArIEtleSBzY2FsZSBsZXZlbCovDQotICBlX3VpbnQzMiBya3MgOyAgICAgICAgLyogS2V5IHNjYWxlIG9mZnNldCAoUmtzKSAqLw0KLSAgZV9pbnQzMiBlZ19tb2RlIDsgICAgICAgLyogQ3VycmVudCBzdGF0ZSAqLw0KLSAgZV91aW50MzIgZWdfcGhhc2UgOyAgIC8qIFBoYXNlICovDQotICBlX3VpbnQzMiBlZ19kcGhhc2UgOyAgLyogUGhhc2UgaW5jcmVtZW50IGFtb3VudCAqLw0KLSAgZV91aW50MzIgZWdvdXQgOyAgICAgIC8qIG91dHB1dCAqLw0KLQ0KLX0gT1BMTF9TTE9UIDsNCi0NCi0vKiBNYXNrICovDQotI2RlZmluZSBPUExMX01BU0tfQ0goeCkgKDE8PCh4KSkNCi0jZGVmaW5lIE9QTExfTUFTS19ISCAoMTw8KDkpKQ0KLSNkZWZpbmUgT1BMTF9NQVNLX0NZTSAoMTw8KDEwKSkNCi0jZGVmaW5lIE9QTExfTUFTS19UT00gKDE8PCgxMSkpDQotI2RlZmluZSBPUExMX01BU0tfU0QgKDE8PCgxMikpDQotI2RlZmluZSBPUExMX01BU0tfQkQgKDE8PCgxMykpDQotI2RlZmluZSBPUExMX01BU0tfUkhZVEhNICggT1BMTF9NQVNLX0hIIHwgT1BMTF9NQVNLX0NZTSB8IE9QTExfTUFTS19UT00gfCBPUExMX01BU0tfU0QgfCBPUExMX01BU0tfQkQgKQ0KLQ0KLS8qIG9wbGwgKi8NCi10eXBlZGVmIHN0cnVjdCBfX09QTEwgew0KLQ0KLSAgZV91aW50MzIgYWRyIDsNCi0gIGVfaW50MzIgb3V0IDsNCi0NCi0jaWZuZGVmIEVNVTI0MTNfQ09NUEFDVElPTg0KLSAgZV91aW50MzIgcmVhbHN0ZXAgOw0KLSAgZV91aW50MzIgb3BsbHRpbWUgOw0KLSAgZV91aW50MzIgb3BsbHN0ZXAgOw0KLSAgZV9pbnQzMiBwcmV2LCBuZXh0IDsNCi0gIGVfaW50MzIgc3ByZXZbMl0sc25leHRbMl07DQotICBlX3VpbnQzMiBwYW5bMTZdOw0KLSNlbmRpZg0KLQ0KLSAgLyogUmVnaXN0ZXIgKi8NCi0gIGVfdWludDggcmVnWzB4NDBdIDsgDQotICBlX2ludDMyIHNsb3Rfb25fZmxhZ1sxOF0gOw0KLQ0KLSAgLyogUGl0Y2ggTW9kdWxhdG9yICovDQotICBlX3VpbnQzMiBwbV9waGFzZSA7DQotICBlX2ludDMyIGxmb19wbSA7DQotDQotICAvKiBBbXAgTW9kdWxhdG9yICovDQotICBlX2ludDMyIGFtX3BoYXNlIDsNCi0gIGVfaW50MzIgbGZvX2FtIDsNCi0NCi0gIGVfdWludDMyIHF1YWxpdHk7DQotDQotICAvKiBOb2lzZSBHZW5lcmF0b3IgKi8NCi0gIGVfdWludDMyIG5vaXNlX3NlZWQgOw0KLQ0KLSAgLyogQ2hhbm5lbCBEYXRhICovDQotICBlX2ludDMyIHBhdGNoX251bWJlcls5XTsNCi0gIGVfaW50MzIga2V5X3N0YXR1c1s5XSA7DQotDQotICAvKiBTbG90ICovDQotICBPUExMX1NMT1Qgc2xvdFsxOF0gOw0KLQ0KLSAgLyogVm9pY2UgRGF0YSAqLw0KLSAgT1BMTF9QQVRDSCBwYXRjaFsxOSoyXSA7DQotICBlX2ludDMyIHBhdGNoX3VwZGF0ZVsyXSA7IC8qIGZsYWcgZm9yIGNoZWNrIHBhdGNoIHVwZGF0ZSAqLw0KLQ0KLSAgZV91aW50MzIgbWFzayA7DQotICBlX3VpbnQzMiBjdXJyZW50X21hc2s7DQotICBlX3VpbnQzMiBzdGF0dXM7DQotICANCi0gIGVfdWludDMyIGludGVybmFsX211dGU7DQotICBlX2ludDE2IGJ1ZmZlcltBVURJT19NT05PX0JVRkZFUl9TSVpFXTsNCi19IE9QTEwgOw0KLQ0KLS8qIENyZWF0ZSBPYmplY3QgKi8NCi1FTVUyNDEzX0FQSSB2b2lkIE9QTExfbmV3KE9QTEwgKiwgZV91aW50MzIgY2xrLCBlX3VpbnQzMiByYXRlKSA7DQotRU1VMjQxM19BUEkgdm9pZCBPUExMX2RlbGV0ZShPUExMICopIDsNCi0NCi0vKiBTZXR1cCAqLw0KLUVNVTI0MTNfQVBJIHZvaWQgT1BMTF9yZXNldChPUExMICopIDsNCi1FTVUyNDEzX0FQSSB2b2lkIE9QTExfcmVzZXRfcGF0Y2goT1BMTCAqLCBlX2ludDMyKSA7DQotRU1VMjQxM19BUEkgdm9pZCBPUExMX3NldF9yYXRlKE9QTEwgKm9wbGwsIGVfdWludDMyIHIpIDsNCi1FTVUyNDEzX0FQSSB2b2lkIE9QTExfc2V0X3F1YWxpdHkoT1BMTCAqb3BsbCwgZV91aW50MzIgcSkgOw0KLUVNVTI0MTNfQVBJIHZvaWQgT1BMTF9zZXRfcGFuKE9QTEwgKiwgZV91aW50MzIgY2gsIGVfdWludDMyIHBhbik7DQotRU1VMjQxM19BUEkgdm9pZCBPUExMX3NldF9pbnRlcm5hbF9tdXRlKE9QTEwgKiwgZV91aW50MzIgbXV0ZSk7DQotRU1VMjQxM19BUEkgZV91aW50MzIgT1BMTF9pc19pbnRlcm5hbF9tdXRlZChPUExMICopOw0KLQ0KLS8qIFBvcnQvUmVnaXN0ZXIgYWNjZXNzICovDQotRU1VMjQxM19BUEkgdm9pZCBPUExMX3dyaXRlSU8oT1BMTCAqLCBlX3VpbnQzMiByZWcsIGVfdWludDMyIHZhbCk7DQotRU1VMjQxM19BUEkgdm9pZCBPUExMX3dyaXRlUmVnKE9QTEwgKiwgZV91aW50MzIgcmVnLCBlX3VpbnQzMiB2YWwpOw0KLUVNVTI0MTNfQVBJIGVfdWludDMyIE9QTExfcmVhZChPUExMICosIGVfdWludDMyIHBvcnQpOw0KLQ0KLS8qIFN5bnRoc2l6ZSAqLw0KLUVNVTI0MTNfQVBJIGVfaW50MTYgT1BMTF9jYWxjKE9QTEwgKikgRU1VMjQxM19DQUxDX0lDT0RFOw0KLUVNVTI0MTNfQVBJIHZvaWQgT1BMTF9jYWxjX3N0ZXJlbyhPUExMICosIGVfaW50MzIgb3V0WzJdKSA7DQotRU1VMjQxM19BUEkgZV9pbnQxNiAqT1BMTF91cGRhdGVfYnVmZmVyKE9QTEwgKiwgZV91aW50MzIgbGVuZ3RoKSA7DQotDQotLyogTWlzYyAqLw0KLUVNVTI0MTNfQVBJIHZvaWQgT1BMTF9zZXRQYXRjaChPUExMICosIGNvbnN0IGVfdWludDggKmR1bXApIDsNCi1FTVUyNDEzX0FQSSB2b2lkIE9QTExfY29weVBhdGNoKE9QTEwgKiwgZV9pbnQzMiwgT1BMTF9QQVRDSCAqKSA7DQotRU1VMjQxM19BUEkgdm9pZCBPUExMX2ZvcmNlUmVmcmVzaChPUExMICopIDsNCi0vKiBVdGlsaXR5ICovDQotRU1VMjQxM19BUEkgdm9pZCBPUExMX2R1bXAycGF0Y2goY29uc3QgZV91aW50OCAqZHVtcCwgT1BMTF9QQVRDSCAqcGF0Y2gpIDsNCi1FTVUyNDEzX0FQSSB2b2lkIE9QTExfcGF0Y2gyZHVtcChjb25zdCBPUExMX1BBVENIICpwYXRjaCwgZV91aW50OCAqZHVtcCkgOw0KLUVNVTI0MTNfQVBJIHZvaWQgT1BMTF9nZXREZWZhdWx0UGF0Y2goZV9pbnQzMiB0eXBlLCBlX2ludDMyIG51bSwgT1BMTF9QQVRDSCAqKSA7DQotDQotLyogQ2hhbm5lbCBNYXNrICovDQotRU1VMjQxM19BUEkgZV91aW50MzIgT1BMTF9zZXRNYXNrKE9QTEwgKiwgZV91aW50MzIgbWFzaykgOw0KLUVNVTI0MTNfQVBJIGVfdWludDMyIE9QTExfdG9nZ2xlTWFzayhPUExMICosIGVfdWludDMyIG1hc2spIDsNCi0NCi0jZGVmaW5lIGR1bXAycGF0Y2ggT1BMTF9kdW1wMnBhdGNoDQotDQotI2lmZGVmIF9fY3BsdXNwbHVzDQotfQ0KLSNlbmRpZg0KLQ0KLSNlbmRpZg0KLQ0KKyNpZm5kZWYgX0VNVTI0MTNfSF8KKyNkZWZpbmUgX0VNVTI0MTNfSF8KKworI2luY2x1ZGUgImJsYXJnZ19jb21tb24uaCIKKyNpbmNsdWRlICJlbXV0eXBlcy5oIgorCisjaWZkZWYgRU1VMjQxM19ETExfRVhQT1JUUworICAjZGVmaW5lIEVNVTI0MTNfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorI2VsaWYgZGVmaW5lZChFTVUyNDEzX0RMTF9JTVBPUlRTKQorICAjZGVmaW5lIEVNVTI0MTNfQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vsc2UKKyAgI2RlZmluZSBFTVUyNDEzX0FQSQorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2RlZmluZSBBVURJT19NT05PX0JVRkZFUl9TSVpFICAgIDEwMjQKKworI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2CisKK2VudW0gT1BMTF9UT05FX0VOVU0ge09QTExfMjQxM19UT05FPTAsIE9QTExfVlJDN19UT05FPTEsIE9QTExfMjgxQl9UT05FPTJ9IDsKKworLyogdm9pY2UgZGF0YSAqLwordHlwZWRlZiBzdHJ1Y3QgX19PUExMX1BBVENIIHsKKyAgZV91aW50MzIgVEwsRkIsRUcsTUwsQVIsRFIsU0wsUlIsS1IsS0wsQU0sUE0sV0YgOworfSBPUExMX1BBVENIIDsKKworLyogc2xvdCAqLwordHlwZWRlZiBzdHJ1Y3QgX19PUExMX1NMT1QgeworCisgIE9QTExfUEFUQ0ggKnBhdGNoOyAgCisKKyAgZV9pbnQzMiB0eXBlIDsgICAgICAgICAgLyogMCA6IG1vZHVsYXRvciAxIDogY2FycmllciAqLworCisgIC8qIE9VVFBVVCAqLworICBlX2ludDMyIGZlZWRiYWNrIDsKKyAgZV9pbnQzMiBvdXRwdXRbMl0gOyAgIC8qIE91dHB1dCB2YWx1ZSBvZiBzbG90ICovCisKKyAgLyogZm9yIFBoYXNlIEdlbmVyYXRvciAoUEcpICovCisgIGVfdWludDE2ICpzaW50YmwgOyAgICAvKiBXYXZldGFibGUgKi8KKyAgZV91aW50MzIgcGhhc2UgOyAgICAgIC8qIFBoYXNlICovCisgIGVfdWludDMyIGRwaGFzZSA7ICAgICAvKiBQaGFzZSBpbmNyZW1lbnQgYW1vdW50ICovCisgIGVfdWludDMyIHBnb3V0IDsgICAgICAvKiBvdXRwdXQgKi8KKworICAvKiBmb3IgRW52ZWxvcGUgR2VuZXJhdG9yIChFRykgKi8KKyAgZV9pbnQzMiBmbnVtIDsgICAgICAgICAgLyogRi1OdW1iZXIgKi8KKyAgZV9pbnQzMiBibG9jayA7ICAgICAgICAgLyogQmxvY2sgKi8KKyAgZV9pbnQzMiB2b2x1bWUgOyAgICAgICAgLyogQ3VycmVudCB2b2x1bWUgKi8KKyAgZV9pbnQzMiBzdXN0aW5lIDsgICAgICAgLyogU3VzdGluZSAxID0gT04sIDAgPSBPRkYgKi8KKyAgZV91aW50MzIgdGxsIDsJICAgICAgLyogVG90YWwgTGV2ZWwgKyBLZXkgc2NhbGUgbGV2ZWwqLworICBlX3VpbnQzMiBya3MgOyAgICAgICAgLyogS2V5IHNjYWxlIG9mZnNldCAoUmtzKSAqLworICBlX2ludDMyIGVnX21vZGUgOyAgICAgICAvKiBDdXJyZW50IHN0YXRlICovCisgIGVfdWludDMyIGVnX3BoYXNlIDsgICAvKiBQaGFzZSAqLworICBlX3VpbnQzMiBlZ19kcGhhc2UgOyAgLyogUGhhc2UgaW5jcmVtZW50IGFtb3VudCAqLworICBlX3VpbnQzMiBlZ291dCA7ICAgICAgLyogb3V0cHV0ICovCisKK30gT1BMTF9TTE9UIDsKKworLyogTWFzayAqLworI2RlZmluZSBPUExMX01BU0tfQ0goeCkgKDE8PCh4KSkKKyNkZWZpbmUgT1BMTF9NQVNLX0hIICgxPDwoOSkpCisjZGVmaW5lIE9QTExfTUFTS19DWU0gKDE8PCgxMCkpCisjZGVmaW5lIE9QTExfTUFTS19UT00gKDE8PCgxMSkpCisjZGVmaW5lIE9QTExfTUFTS19TRCAoMTw8KDEyKSkKKyNkZWZpbmUgT1BMTF9NQVNLX0JEICgxPDwoMTMpKQorI2RlZmluZSBPUExMX01BU0tfUkhZVEhNICggT1BMTF9NQVNLX0hIIHwgT1BMTF9NQVNLX0NZTSB8IE9QTExfTUFTS19UT00gfCBPUExMX01BU0tfU0QgfCBPUExMX01BU0tfQkQgKQorCisvKiBvcGxsICovCit0eXBlZGVmIHN0cnVjdCBfX09QTEwgeworCisgIGVfdWludDMyIGFkciA7CisgIGVfaW50MzIgb3V0IDsKKworI2lmbmRlZiBFTVUyNDEzX0NPTVBBQ1RJT04KKyAgZV91aW50MzIgcmVhbHN0ZXAgOworICBlX3VpbnQzMiBvcGxsdGltZSA7CisgIGVfdWludDMyIG9wbGxzdGVwIDsKKyAgZV9pbnQzMiBwcmV2LCBuZXh0IDsKKyAgZV9pbnQzMiBzcHJldlsyXSxzbmV4dFsyXTsKKyAgZV91aW50MzIgcGFuWzE2XTsKKyNlbmRpZgorCisgIC8qIFJlZ2lzdGVyICovCisgIGVfdWludDggcmVnWzB4NDBdIDsgCisgIGVfaW50MzIgc2xvdF9vbl9mbGFnWzE4XSA7CisKKyAgLyogUGl0Y2ggTW9kdWxhdG9yICovCisgIGVfdWludDMyIHBtX3BoYXNlIDsKKyAgZV9pbnQzMiBsZm9fcG0gOworCisgIC8qIEFtcCBNb2R1bGF0b3IgKi8KKyAgZV9pbnQzMiBhbV9waGFzZSA7CisgIGVfaW50MzIgbGZvX2FtIDsKKworICBlX3VpbnQzMiBxdWFsaXR5OworCisgIC8qIE5vaXNlIEdlbmVyYXRvciAqLworICBlX3VpbnQzMiBub2lzZV9zZWVkIDsKKworICAvKiBDaGFubmVsIERhdGEgKi8KKyAgZV9pbnQzMiBwYXRjaF9udW1iZXJbOV07CisgIGVfaW50MzIga2V5X3N0YXR1c1s5XSA7CisKKyAgLyogU2xvdCAqLworICBPUExMX1NMT1Qgc2xvdFsxOF0gOworCisgIC8qIFZvaWNlIERhdGEgKi8KKyAgT1BMTF9QQVRDSCBwYXRjaFsxOSoyXSA7CisgIGVfaW50MzIgcGF0Y2hfdXBkYXRlWzJdIDsgLyogZmxhZyBmb3IgY2hlY2sgcGF0Y2ggdXBkYXRlICovCisKKyAgZV91aW50MzIgbWFzayA7CisgIGVfdWludDMyIGN1cnJlbnRfbWFzazsKKyAgZV91aW50MzIgc3RhdHVzOworICAKKyAgZV91aW50MzIgaW50ZXJuYWxfbXV0ZTsKKyAgZV9pbnQxNiBidWZmZXJbQVVESU9fTU9OT19CVUZGRVJfU0laRV07Cit9IE9QTEwgOworCisvKiBDcmVhdGUgT2JqZWN0ICovCitFTVUyNDEzX0FQSSB2b2lkIE9QTExfbmV3KE9QTEwgKiwgZV91aW50MzIgY2xrLCBlX3VpbnQzMiByYXRlKSA7CitFTVUyNDEzX0FQSSB2b2lkIE9QTExfZGVsZXRlKE9QTEwgKikgOworCisvKiBTZXR1cCAqLworRU1VMjQxM19BUEkgdm9pZCBPUExMX3Jlc2V0KE9QTEwgKikgOworRU1VMjQxM19BUEkgdm9pZCBPUExMX3Jlc2V0X3BhdGNoKE9QTEwgKiwgZV9pbnQzMikgOworRU1VMjQxM19BUEkgdm9pZCBPUExMX3NldF9yYXRlKE9QTEwgKm9wbGwsIGVfdWludDMyIHIpIDsKK0VNVTI0MTNfQVBJIHZvaWQgT1BMTF9zZXRfcXVhbGl0eShPUExMICpvcGxsLCBlX3VpbnQzMiBxKSA7CitFTVUyNDEzX0FQSSB2b2lkIE9QTExfc2V0X3BhbihPUExMICosIGVfdWludDMyIGNoLCBlX3VpbnQzMiBwYW4pOworRU1VMjQxM19BUEkgdm9pZCBPUExMX3NldF9pbnRlcm5hbF9tdXRlKE9QTEwgKiwgZV91aW50MzIgbXV0ZSk7CitFTVUyNDEzX0FQSSBlX3VpbnQzMiBPUExMX2lzX2ludGVybmFsX211dGVkKE9QTEwgKik7CisKKy8qIFBvcnQvUmVnaXN0ZXIgYWNjZXNzICovCitFTVUyNDEzX0FQSSB2b2lkIE9QTExfd3JpdGVJTyhPUExMICosIGVfdWludDMyIHJlZywgZV91aW50MzIgdmFsKTsKK0VNVTI0MTNfQVBJIHZvaWQgT1BMTF93cml0ZVJlZyhPUExMICosIGVfdWludDMyIHJlZywgZV91aW50MzIgdmFsKTsKK0VNVTI0MTNfQVBJIGVfdWludDMyIE9QTExfcmVhZChPUExMICosIGVfdWludDMyIHBvcnQpOworCisvKiBTeW50aHNpemUgKi8KK0VNVTI0MTNfQVBJIGVfaW50MTYgT1BMTF9jYWxjKE9QTEwgKikgRU1VMjQxM19DQUxDX0lDT0RFOworRU1VMjQxM19BUEkgdm9pZCBPUExMX2NhbGNfc3RlcmVvKE9QTEwgKiwgZV9pbnQzMiBvdXRbMl0pIDsKK0VNVTI0MTNfQVBJIGVfaW50MTYgKk9QTExfdXBkYXRlX2J1ZmZlcihPUExMICosIGVfdWludDMyIGxlbmd0aCkgOworCisvKiBNaXNjICovCitFTVUyNDEzX0FQSSB2b2lkIE9QTExfc2V0UGF0Y2goT1BMTCAqLCBjb25zdCBlX3VpbnQ4ICpkdW1wKSA7CitFTVUyNDEzX0FQSSB2b2lkIE9QTExfY29weVBhdGNoKE9QTEwgKiwgZV9pbnQzMiwgT1BMTF9QQVRDSCAqKSA7CitFTVUyNDEzX0FQSSB2b2lkIE9QTExfZm9yY2VSZWZyZXNoKE9QTEwgKikgOworLyogVXRpbGl0eSAqLworRU1VMjQxM19BUEkgdm9pZCBPUExMX2R1bXAycGF0Y2goY29uc3QgZV91aW50OCAqZHVtcCwgT1BMTF9QQVRDSCAqcGF0Y2gpIDsKK0VNVTI0MTNfQVBJIHZvaWQgT1BMTF9wYXRjaDJkdW1wKGNvbnN0IE9QTExfUEFUQ0ggKnBhdGNoLCBlX3VpbnQ4ICpkdW1wKSA7CitFTVUyNDEzX0FQSSB2b2lkIE9QTExfZ2V0RGVmYXVsdFBhdGNoKGVfaW50MzIgdHlwZSwgZV9pbnQzMiBudW0sIE9QTExfUEFUQ0ggKikgOworCisvKiBDaGFubmVsIE1hc2sgKi8KK0VNVTI0MTNfQVBJIGVfdWludDMyIE9QTExfc2V0TWFzayhPUExMICosIGVfdWludDMyIG1hc2spIDsKK0VNVTI0MTNfQVBJIGVfdWludDMyIE9QTExfdG9nZ2xlTWFzayhPUExMICosIGVfdWludDMyIG1hc2spIDsKKworI2RlZmluZSBkdW1wMnBhdGNoIE9QTExfZHVtcDJwYXRjaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL2VtdXRhYmxlcy5oIGIvYXBwcy9jb2RlY3MvbGliZ21lL2VtdXRhYmxlcy5oCmluZGV4IGUzNGYxMDAuLjczOWM4YzMgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9lbXV0YWJsZXMuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvZW11dGFibGVzLmgKQEAgLTEsMjEwICsxLDIxMCBAQAotI2lmbmRlZiBfRU1VVEFCTEVTX0hfDQotI2RlZmluZSBfRU1VVEFCTEVTX0hfDQotDQotLyogUHJlY2FsY3VsYXRlZCBlbXUyNDEzIHRhYmxlcyBmb3IgdXNlIGluIFJvY2tib3gsIA0KLSAgIENhbGN1bGF0ZWQgZm9yIDQ0S2h6IHNhbXBsaW5nIHJhdGUgKi8NCi0NCi0jaW5jbHVkZSAiZW11dHlwZXMuaCINCi0NCi1zdGF0aWMgY29uc3QgZV91aW50MTYgc2luX2NvZWZmW10gPSB7DQotCTI1NSwgICAyMDMsICAgMTcxLCAgIDE1MiwgICAxMzksICAgMTI5LCAgIDEyMCwgDQotCTExMywgICAxMDcsICAgMTAyLCAgICA5NywgICAgOTIsICAgIDg4LCAgICA4NSwgDQotCSA4MSwgICAgNzgsICAgIDc1LCAgICA3MiwgICAgNzAsICAgIDY3LCAgICA2NSwgDQotCSA2MywgICAgNjEsICAgIDU5LCAgICA1NywgICAgNTUsICAgIDUzLCAgICA1MiwgDQotCSA1MCwgICAgNDgsICAgIDQ3LCAgICA0NSwgICAgNDQsICAgIDQzLCAgICA0MSwgDQotCSA0MCwgICAgMzksICAgIDM4LCAgICAzNywgICAgMzUsICAgIDM0LCAgICAzMywgDQotCSAzMiwgICAgMzEsICAgIDMwLCAgICAyOSwgICAgMjgsICAgIDI4LCAgICAyNywgDQotCSAyNiwgICAgMjUsICAgIDI0LCAgICAyMywgICAgMjMsICAgIDIyLCAgICAyMSwgDQotCSAyMSwgICAgMjAsICAgIDE5LCAgICAxOSwgICAgMTgsICAgIDE3LCAgICAxNywgDQotCSAxNiwgICAgMTYsICAgIDE1LCAgICAxNCwgICAgMTQsICAgIDEzLCAgICAxMywgDQotCSAxMiwgICAgMTIsICAgIDExLCAgICAxMSwgICAgMTEsICAgIDEwLCAgICAxMCwgDQotCSAgOSwgICAgIDksICAgICA4LCAgICAgOCwgICAgIDgsICAgICA3LCAgICAgNywgDQotCSAgNywgICAgIDYsICAgICA2LCAgICAgNiwgICAgIDUsICAgICA1LCAgICAgNSwgDQotCSAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDMsICAgICAzLCAgICAgMywgDQotCSAgMywgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgDQotCSAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgDQotCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgDQotCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgDQotCSAgMCwgICAgIDAsIA0KLX07DQotDQotc3RhdGljIGNvbnN0IGVfaW50MTYgcG1fY29lZmZbXSA9IHsNCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU4LCAgIDI1OCwgICAyNTgsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCANCi0JMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCANCi0JMjU2LCAgIDI1NiwgICAyNTYsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjUzLCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCANCi0JMjU0LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi0JMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCANCi19Ow0KLQ0KLXN0YXRpYyBjb25zdCBlX2ludDggYW1fY29lZmZbXSA9IHsNCi0gICAgIDEzLCAgICAxMywgICAgMTMsICAgIDEzLCAgICAxMywgICAgMTQsICAgIDE0LCANCi0gICAgIDE0LCAgICAxNCwgICAgMTQsICAgIDE1LCAgICAxNSwgICAgMTUsICAgIDE1LCANCi0gICAgIDE1LCAgICAxNiwgICAgMTYsICAgIDE2LCAgICAxNiwgICAgMTYsICAgIDE3LCANCi0gICAgIDE3LCAgICAxNywgICAgMTcsICAgIDE3LCAgICAxOCwgICAgMTgsICAgIDE4LCANCi0gICAgIDE4LCAgICAxOCwgICAgMTksICAgIDE5LCAgICAxOSwgICAgMTksICAgIDE5LCANCi0gICAgIDIwLCAgICAyMCwgICAgMjAsICAgIDIwLCAgICAyMCwgICAgMjEsICAgIDIxLCANCi0gICAgIDIxLCAgICAyMSwgICAgMjEsICAgIDIyLCAgICAyMiwgICAgMjIsICAgIDIyLCANCi0gICAgIDIyLCAgICAyMywgICAgMjMsICAgIDIzLCAgICAyMywgICAgMjMsICAgIDI0LCANCi0gICAgIDI0LCAgICAyNCwgICAgMjQsICAgIDI0LCAgICAyNSwgICAgMjUsICAgIDI1LCANCi0gICAgIDI1LCAgICAyNiwgICAgMjUsICAgIDI1LCAgICAyNSwgICAgMjUsICAgIDI0LCANCi0gICAgIDI0LCAgICAyNCwgICAgMjQsICAgIDI0LCAgICAyMywgICAgMjMsICAgIDIzLCANCi0gICAgIDIzLCAgICAyMywgICAgMjIsICAgIDIyLCAgICAyMiwgICAgMjIsICAgIDIyLCANCi0gICAgIDIxLCAgICAyMSwgICAgMjEsICAgIDIxLCAgICAyMSwgICAgMjAsICAgIDIwLCANCi0gICAgIDIwLCAgICAyMCwgICAgMjAsICAgIDE5LCAgICAxOSwgICAgMTksICAgIDE5LCANCi0gICAgIDE5LCAgICAxOCwgICAgMTgsICAgIDE4LCAgICAxOCwgICAgMTgsICAgIDE3LCANCi0gICAgIDE3LCAgICAxNywgICAgMTcsICAgIDE3LCAgICAxNiwgICAgMTYsICAgIDE2LCANCi0gICAgIDE2LCAgICAxNiwgICAgMTUsICAgIDE1LCAgICAxNSwgICAgMTUsICAgIDE1LCANCi0gICAgIDE0LCAgICAxNCwgICAgMTQsICAgIDE0LCAgICAxNCwgICAgMTMsICAgIDEzLCANCi0gICAgIDEzLCAgICAxMywgICAgMTMsICAgIDEyLCAgICAxMiwgICAgMTIsICAgIDEyLCANCi0gICAgIDExLCAgICAxMSwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTAsICAgIDEwLCANCi0gICAgIDEwLCAgICAxMCwgICAgMTAsICAgICA5LCAgICAgOSwgICAgIDksICAgICA5LCANCi0gICAgICA5LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsICAgICA3LCANCi0gICAgICA3LCAgICAgNywgICAgIDcsICAgICA3LCAgICAgNiwgICAgIDYsICAgICA2LCANCi0gICAgICA2LCAgICAgNiwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDUsICAgICA1LCANCi0gICAgICA0LCAgICAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDMsICAgICAzLCANCi0gICAgICAzLCAgICAgMywgICAgIDMsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCANCi0gICAgICAyLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAwLCANCi0gICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCANCi0gICAgICAwLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAyLCANCi0gICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMywgICAgIDMsICAgICAzLCANCi0gICAgICAzLCAgICAgMywgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDQsICAgICA0LCANCi0gICAgICA1LCAgICAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDYsICAgICA2LCANCi0gICAgICA2LCAgICAgNiwgICAgIDYsICAgICA3LCAgICAgNywgICAgIDcsICAgICA3LCANCi0gICAgICA3LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsICAgICA5LCANCi0gICAgICA5LCAgICAgOSwgICAgIDksICAgICA5LCAgICAxMCwgICAgMTAsICAgIDEwLCANCi0gICAgIDEwLCAgICAxMCwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTEsICAgIDExLCANCi0gICAgIDEyLCAgICAxMiwgICAgMTIsICAgIDEyLA0KLX07DQotDQotc3RhdGljIGNvbnN0IGVfaW50MTYgZGIybGluX2NvZWZmW10gID0gew0KLQkyNTUsICAgMjQ5LCAgIDI0NCwgICAyMzksICAgMjMzLCAgIDIyOCwgICAyMjQsIA0KLQkyMTksICAgMjE0LCAgIDIwOSwgICAyMDUsICAgMjAxLCAgIDE5NiwgICAxOTIsIA0KLQkxODgsICAgMTg0LCAgIDE4MCwgICAxNzYsICAgMTcyLCAgIDE2OSwgICAxNjUsIA0KLQkxNjIsICAgMTU4LCAgIDE1NSwgICAxNTEsICAgMTQ4LCAgIDE0NSwgICAxNDIsIA0KLQkxMzksICAgMTM2LCAgIDEzMywgICAxMzAsICAgMTI3LCAgIDEyNSwgICAxMjIsIA0KLQkxMTksICAgMTE3LCAgIDExNCwgICAxMTIsICAgMTA5LCAgIDEwNywgICAxMDUsIA0KLQkxMDIsICAgMTAwLCAgICA5OCwgICAgOTYsICAgIDk0LCAgICA5MiwgICAgOTAsIA0KLQkgODgsICAgIDg2LCAgICA4NCwgICAgODIsICAgIDgxLCAgICA3OSwgICAgNzcsIA0KLQkgNzYsICAgIDc0LCAgICA3MiwgICAgNzEsICAgIDY5LCAgICA2OCwgICAgNjYsIA0KLQkgNjUsICAgIDY0LCAgICA2MiwgICAgNjEsICAgIDYwLCAgICA1OCwgICAgNTcsIA0KLQkgNTYsICAgIDU1LCAgICA1MywgICAgNTIsICAgIDUxLCAgICA1MCwgICAgNDksIA0KLQkgNDgsICAgIDQ3LCAgICA0NiwgICAgNDUsICAgIDQ0LCAgICA0MywgICAgNDIsIA0KLQkgNDEsICAgIDQwLCAgICAzOSwgICAgMzgsICAgIDM4LCAgICAzNywgICAgMzYsIA0KLQkgMzUsICAgIDM0LCAgICAzNCwgICAgMzMsICAgIDMyLCAgICAzMiwgICAgMzEsIA0KLQkgMzAsICAgIDMwLCAgICAyOSwgICAgMjgsICAgIDI4LCAgICAyNywgICAgMjcsIA0KLQkgMjYsICAgIDI1LCAgICAyNSwgICAgMjQsICAgIDI0LCAgICAyMywgICAgMjMsIA0KLQkgMjIsICAgIDIyLCAgICAyMSwgICAgMjEsICAgIDIwLCAgICAyMCwgICAgMTksIA0KLQkgMTksICAgIDE5LCAgICAxOCwgICAgMTgsICAgIDE3LCAgICAxNywgICAgMTcsIA0KLQkgMTYsICAgIDE2LCAgICAxNiwgICAgMTUsICAgIDE1LCAgICAxNSwgICAgMTQsIA0KLQkgMTQsICAgIDE0LCAgICAxMywgICAgMTMsICAgIDEzLCAgICAxMiwgICAgMTIsIA0KLQkgMTIsICAgIDEyLCAgICAxMSwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTAsIA0KLQkgMTAsICAgIDEwLCAgICAxMCwgICAgMTAsICAgICA5LCAgICAgOSwgICAgIDksIA0KLQkgIDksICAgICA4LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsIA0KLQkgIDcsICAgICA3LCAgICAgNywgICAgIDcsICAgICA3LCAgICAgNywgICAgIDYsIA0KLQkgIDYsICAgICA2LCAgICAgNiwgICAgIDYsICAgICA2LCAgICAgNiwgICAgIDUsIA0KLQkgIDUsICAgICA1LCAgICAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDUsIA0KLQkgIDUsICAgICA0LCAgICAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDQsIA0KLQkgIDQsICAgICA0LCAgICAgNCwgICAgIDQsICAgICAzLCAgICAgMywgICAgIDMsIA0KLQkgIDMsICAgICAzLCAgICAgMywgICAgIDMsICAgICAzLCAgICAgMywgICAgIDMsIA0KLQkgIDMsICAgICAzLCAgICAgMywgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsIA0KLQkgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsIA0KLQkgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsIA0KLQkgIDIsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsIA0KLQkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsIA0KLQkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsIA0KLQkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsIA0KLQkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIA0KLQkgIDAsIA0KLX07DQotDQotc3RhdGljIGNvbnN0IGVfdWludDE2IGFyX2FkanVzdF9jb2VmZltdID0gew0KLQkxMjcsICAxMDgsICAgOTgsICAgOTAsICAgODQsICAgODAsICAgNzUsIA0KLQkgNzIsICAgNjksICAgNjYsICAgNjQsICAgNjEsICAgNTksICAgNTcsIA0KLQkgNTYsICAgNTQsICAgNTIsICAgNTEsICAgNDksICAgNDgsICAgNDcsIA0KLQkgNDUsICAgNDQsICAgNDMsICAgNDIsICAgNDEsICAgNDAsICAgMzksIA0KLQkgMzgsICAgMzcsICAgMzYsICAgMzYsICAgMzUsICAgMzQsICAgMzMsIA0KLQkgMzMsICAgMzIsICAgMzEsICAgMzAsICAgMzAsICAgMjksICAgMjksIA0KLQkgMjgsICAgMjcsICAgMjcsICAgMjYsICAgMjYsICAgMjUsICAgMjQsIA0KLQkgMjQsICAgMjMsICAgMjMsICAgMjIsICAgMjIsICAgMjEsICAgMjEsIA0KLQkgMjEsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTgsICAgMTgsIA0KLQkgMTcsICAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTUsICAgMTUsIA0KLQkgMTUsICAgMTQsICAgMTQsICAgMTQsICAgMTMsICAgMTMsICAgMTMsIA0KLQkgMTIsICAgMTIsICAgMTIsICAgMTEsICAgMTEsICAgMTEsICAgMTAsIA0KLQkgMTAsICAgMTAsICAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsIA0KLQkgIDgsICAgIDgsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDYsIA0KLQkgIDYsICAgIDYsICAgIDYsICAgIDUsICAgIDUsICAgIDUsICAgIDQsIA0KLQkgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsIA0KLQkgIDMsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsIA0KLQkgIDEsICAgIDEsICAgIDEsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgIDAsIA0KLX07DQotDQotI2VuZGlmDQorI2lmbmRlZiBfRU1VVEFCTEVTX0hfCisjZGVmaW5lIF9FTVVUQUJMRVNfSF8KKworLyogUHJlY2FsY3VsYXRlZCBlbXUyNDEzIHRhYmxlcyBmb3IgdXNlIGluIFJvY2tib3gsIAorICAgQ2FsY3VsYXRlZCBmb3IgNDRLaHogc2FtcGxpbmcgcmF0ZSAqLworCisjaW5jbHVkZSAiZW11dHlwZXMuaCIKKworc3RhdGljIGNvbnN0IGVfdWludDE2IHNpbl9jb2VmZltdID0geworCTI1NSwgICAyMDMsICAgMTcxLCAgIDE1MiwgICAxMzksICAgMTI5LCAgIDEyMCwgCisJMTEzLCAgIDEwNywgICAxMDIsICAgIDk3LCAgICA5MiwgICAgODgsICAgIDg1LCAKKwkgODEsICAgIDc4LCAgICA3NSwgICAgNzIsICAgIDcwLCAgICA2NywgICAgNjUsIAorCSA2MywgICAgNjEsICAgIDU5LCAgICA1NywgICAgNTUsICAgIDUzLCAgICA1MiwgCisJIDUwLCAgICA0OCwgICAgNDcsICAgIDQ1LCAgICA0NCwgICAgNDMsICAgIDQxLCAKKwkgNDAsICAgIDM5LCAgICAzOCwgICAgMzcsICAgIDM1LCAgICAzNCwgICAgMzMsIAorCSAzMiwgICAgMzEsICAgIDMwLCAgICAyOSwgICAgMjgsICAgIDI4LCAgICAyNywgCisJIDI2LCAgICAyNSwgICAgMjQsICAgIDIzLCAgICAyMywgICAgMjIsICAgIDIxLCAKKwkgMjEsICAgIDIwLCAgICAxOSwgICAgMTksICAgIDE4LCAgICAxNywgICAgMTcsIAorCSAxNiwgICAgMTYsICAgIDE1LCAgICAxNCwgICAgMTQsICAgIDEzLCAgICAxMywgCisJIDEyLCAgICAxMiwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTAsICAgIDEwLCAKKwkgIDksICAgICA5LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgNywgICAgIDcsIAorCSAgNywgICAgIDYsICAgICA2LCAgICAgNiwgICAgIDUsICAgICA1LCAgICAgNSwgCisJICA0LCAgICAgNCwgICAgIDQsICAgICA0LCAgICAgMywgICAgIDMsICAgICAzLCAKKwkgIDMsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsIAorCSAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsIAorfTsKKworc3RhdGljIGNvbnN0IGVfaW50MTYgcG1fY29lZmZbXSA9IHsKKwkyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsIAorCTI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgCisJMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAKKwkyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsIAorCTI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTcsICAgMjU3LCAgIDI1NywgCisJMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAKKwkyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsIAorCTI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgCisJMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAKKwkyNTgsICAgMjU4LCAgIDI1OCwgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsIAorCTI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgCisJMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAKKwkyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsIAorCTI1NywgICAyNTcsICAgMjU3LCAgIDI1NywgICAyNTcsICAgMjU3LCAgIDI1NiwgCisJMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAKKwkyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsIAorCTI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgCisJMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAgIDI1NiwgICAyNTYsICAgMjU2LCAKKwkyNTYsICAgMjU2LCAgIDI1NiwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsIAorCTI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgCisJMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAKKwkyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsIAorCTI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NCwgCisJMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAKKwkyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsIAorCTI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgCisJMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAKKwkyNTQsICAgMjU0LCAgIDI1NCwgICAyNTMsICAgMjU0LCAgIDI1NCwgICAyNTQsIAorCTI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgCisJMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAKKwkyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsIAorCTI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgICAyNTQsICAgMjU0LCAgIDI1NCwgCisJMjU0LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAKKwkyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsIAorCTI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgCisJMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsICAgMjU1LCAKKwkyNTUsICAgMjU1LCAgIDI1NSwgICAyNTUsIAorfTsKKworc3RhdGljIGNvbnN0IGVfaW50OCBhbV9jb2VmZltdID0geworICAgICAxMywgICAgMTMsICAgIDEzLCAgICAxMywgICAgMTMsICAgIDE0LCAgICAxNCwgCisgICAgIDE0LCAgICAxNCwgICAgMTQsICAgIDE1LCAgICAxNSwgICAgMTUsICAgIDE1LCAKKyAgICAgMTUsICAgIDE2LCAgICAxNiwgICAgMTYsICAgIDE2LCAgICAxNiwgICAgMTcsIAorICAgICAxNywgICAgMTcsICAgIDE3LCAgICAxNywgICAgMTgsICAgIDE4LCAgICAxOCwgCisgICAgIDE4LCAgICAxOCwgICAgMTksICAgIDE5LCAgICAxOSwgICAgMTksICAgIDE5LCAKKyAgICAgMjAsICAgIDIwLCAgICAyMCwgICAgMjAsICAgIDIwLCAgICAyMSwgICAgMjEsIAorICAgICAyMSwgICAgMjEsICAgIDIxLCAgICAyMiwgICAgMjIsICAgIDIyLCAgICAyMiwgCisgICAgIDIyLCAgICAyMywgICAgMjMsICAgIDIzLCAgICAyMywgICAgMjMsICAgIDI0LCAKKyAgICAgMjQsICAgIDI0LCAgICAyNCwgICAgMjQsICAgIDI1LCAgICAyNSwgICAgMjUsIAorICAgICAyNSwgICAgMjYsICAgIDI1LCAgICAyNSwgICAgMjUsICAgIDI1LCAgICAyNCwgCisgICAgIDI0LCAgICAyNCwgICAgMjQsICAgIDI0LCAgICAyMywgICAgMjMsICAgIDIzLCAKKyAgICAgMjMsICAgIDIzLCAgICAyMiwgICAgMjIsICAgIDIyLCAgICAyMiwgICAgMjIsIAorICAgICAyMSwgICAgMjEsICAgIDIxLCAgICAyMSwgICAgMjEsICAgIDIwLCAgICAyMCwgCisgICAgIDIwLCAgICAyMCwgICAgMjAsICAgIDE5LCAgICAxOSwgICAgMTksICAgIDE5LCAKKyAgICAgMTksICAgIDE4LCAgICAxOCwgICAgMTgsICAgIDE4LCAgICAxOCwgICAgMTcsIAorICAgICAxNywgICAgMTcsICAgIDE3LCAgICAxNywgICAgMTYsICAgIDE2LCAgICAxNiwgCisgICAgIDE2LCAgICAxNiwgICAgMTUsICAgIDE1LCAgICAxNSwgICAgMTUsICAgIDE1LCAKKyAgICAgMTQsICAgIDE0LCAgICAxNCwgICAgMTQsICAgIDE0LCAgICAxMywgICAgMTMsIAorICAgICAxMywgICAgMTMsICAgIDEzLCAgICAxMiwgICAgMTIsICAgIDEyLCAgICAxMiwgCisgICAgIDExLCAgICAxMSwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTAsICAgIDEwLCAKKyAgICAgMTAsICAgIDEwLCAgICAxMCwgICAgIDksICAgICA5LCAgICAgOSwgICAgIDksIAorICAgICAgOSwgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgNywgCisgICAgICA3LCAgICAgNywgICAgIDcsICAgICA3LCAgICAgNiwgICAgIDYsICAgICA2LCAKKyAgICAgIDYsICAgICA2LCAgICAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDUsIAorICAgICAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDQsICAgICAzLCAgICAgMywgCisgICAgICAzLCAgICAgMywgICAgIDMsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAKKyAgICAgIDIsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDAsIAorICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisgICAgICAwLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAyLCAKKyAgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAzLCAgICAgMywgICAgIDMsIAorICAgICAgMywgICAgIDMsICAgICA0LCAgICAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgCisgICAgICA1LCAgICAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDYsICAgICA2LCAKKyAgICAgIDYsICAgICA2LCAgICAgNiwgICAgIDcsICAgICA3LCAgICAgNywgICAgIDcsIAorICAgICAgNywgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgOSwgCisgICAgICA5LCAgICAgOSwgICAgIDksICAgICA5LCAgICAxMCwgICAgMTAsICAgIDEwLCAKKyAgICAgMTAsICAgIDEwLCAgICAxMSwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTEsIAorICAgICAxMiwgICAgMTIsICAgIDEyLCAgICAxMiwKK307CisKK3N0YXRpYyBjb25zdCBlX2ludDE2IGRiMmxpbl9jb2VmZltdICA9IHsKKwkyNTUsICAgMjQ5LCAgIDI0NCwgICAyMzksICAgMjMzLCAgIDIyOCwgICAyMjQsIAorCTIxOSwgICAyMTQsICAgMjA5LCAgIDIwNSwgICAyMDEsICAgMTk2LCAgIDE5MiwgCisJMTg4LCAgIDE4NCwgICAxODAsICAgMTc2LCAgIDE3MiwgICAxNjksICAgMTY1LCAKKwkxNjIsICAgMTU4LCAgIDE1NSwgICAxNTEsICAgMTQ4LCAgIDE0NSwgICAxNDIsIAorCTEzOSwgICAxMzYsICAgMTMzLCAgIDEzMCwgICAxMjcsICAgMTI1LCAgIDEyMiwgCisJMTE5LCAgIDExNywgICAxMTQsICAgMTEyLCAgIDEwOSwgICAxMDcsICAgMTA1LCAKKwkxMDIsICAgMTAwLCAgICA5OCwgICAgOTYsICAgIDk0LCAgICA5MiwgICAgOTAsIAorCSA4OCwgICAgODYsICAgIDg0LCAgICA4MiwgICAgODEsICAgIDc5LCAgICA3NywgCisJIDc2LCAgICA3NCwgICAgNzIsICAgIDcxLCAgICA2OSwgICAgNjgsICAgIDY2LCAKKwkgNjUsICAgIDY0LCAgICA2MiwgICAgNjEsICAgIDYwLCAgICA1OCwgICAgNTcsIAorCSA1NiwgICAgNTUsICAgIDUzLCAgICA1MiwgICAgNTEsICAgIDUwLCAgICA0OSwgCisJIDQ4LCAgICA0NywgICAgNDYsICAgIDQ1LCAgICA0NCwgICAgNDMsICAgIDQyLCAKKwkgNDEsICAgIDQwLCAgICAzOSwgICAgMzgsICAgIDM4LCAgICAzNywgICAgMzYsIAorCSAzNSwgICAgMzQsICAgIDM0LCAgICAzMywgICAgMzIsICAgIDMyLCAgICAzMSwgCisJIDMwLCAgICAzMCwgICAgMjksICAgIDI4LCAgICAyOCwgICAgMjcsICAgIDI3LCAKKwkgMjYsICAgIDI1LCAgICAyNSwgICAgMjQsICAgIDI0LCAgICAyMywgICAgMjMsIAorCSAyMiwgICAgMjIsICAgIDIxLCAgICAyMSwgICAgMjAsICAgIDIwLCAgICAxOSwgCisJIDE5LCAgICAxOSwgICAgMTgsICAgIDE4LCAgICAxNywgICAgMTcsICAgIDE3LCAKKwkgMTYsICAgIDE2LCAgICAxNiwgICAgMTUsICAgIDE1LCAgICAxNSwgICAgMTQsIAorCSAxNCwgICAgMTQsICAgIDEzLCAgICAxMywgICAgMTMsICAgIDEyLCAgICAxMiwgCisJIDEyLCAgICAxMiwgICAgMTEsICAgIDExLCAgICAxMSwgICAgMTEsICAgIDEwLCAKKwkgMTAsICAgIDEwLCAgICAxMCwgICAgMTAsICAgICA5LCAgICAgOSwgICAgIDksIAorCSAgOSwgICAgIDgsICAgICA4LCAgICAgOCwgICAgIDgsICAgICA4LCAgICAgOCwgCisJICA3LCAgICAgNywgICAgIDcsICAgICA3LCAgICAgNywgICAgIDcsICAgICA2LCAKKwkgIDYsICAgICA2LCAgICAgNiwgICAgIDYsICAgICA2LCAgICAgNiwgICAgIDUsIAorCSAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgICAgIDUsICAgICA1LCAgICAgNSwgCisJICA1LCAgICAgNCwgICAgIDQsICAgICA0LCAgICAgNCwgICAgIDQsICAgICA0LCAKKwkgIDQsICAgICA0LCAgICAgNCwgICAgIDQsICAgICAzLCAgICAgMywgICAgIDMsIAorCSAgMywgICAgIDMsICAgICAzLCAgICAgMywgICAgIDMsICAgICAzLCAgICAgMywgCisJICAzLCAgICAgMywgICAgIDMsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAKKwkgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsIAorCSAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgCisJICAyLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAKKwkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsIAorCSAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgCisJICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAKKwkgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgCisJICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAKKwkgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsIAorCSAgMCwgCit9OworCitzdGF0aWMgY29uc3QgZV91aW50MTYgYXJfYWRqdXN0X2NvZWZmW10gPSB7CisJMTI3LCAgMTA4LCAgIDk4LCAgIDkwLCAgIDg0LCAgIDgwLCAgIDc1LCAKKwkgNzIsICAgNjksICAgNjYsICAgNjQsICAgNjEsICAgNTksICAgNTcsIAorCSA1NiwgICA1NCwgICA1MiwgICA1MSwgICA0OSwgICA0OCwgICA0NywgCisJIDQ1LCAgIDQ0LCAgIDQzLCAgIDQyLCAgIDQxLCAgIDQwLCAgIDM5LCAKKwkgMzgsICAgMzcsICAgMzYsICAgMzYsICAgMzUsICAgMzQsICAgMzMsIAorCSAzMywgICAzMiwgICAzMSwgICAzMCwgICAzMCwgICAyOSwgICAyOSwgCisJIDI4LCAgIDI3LCAgIDI3LCAgIDI2LCAgIDI2LCAgIDI1LCAgIDI0LCAKKwkgMjQsICAgMjMsICAgMjMsICAgMjIsICAgMjIsICAgMjEsICAgMjEsIAorCSAyMSwgICAyMCwgICAyMCwgICAxOSwgICAxOSwgICAxOCwgICAxOCwgCisJIDE3LCAgIDE3LCAgIDE3LCAgIDE2LCAgIDE2LCAgIDE1LCAgIDE1LCAKKwkgMTUsICAgMTQsICAgMTQsICAgMTQsICAgMTMsICAgMTMsICAgMTMsIAorCSAxMiwgICAxMiwgICAxMiwgICAxMSwgICAxMSwgICAxMSwgICAxMCwgCisJIDEwLCAgIDEwLCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgICA4LCAKKwkgIDgsICAgIDgsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDYsIAorCSAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgCisJICA0LCAgICA0LCAgICA0LCAgICA0LCAgICAzLCAgICAzLCAgICAzLCAKKwkgIDMsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsIAorCSAgMSwgICAgMSwgICAgMSwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAwLCAKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL2VtdXR5cGVzLmggYi9hcHBzL2NvZGVjcy9saWJnbWUvZW11dHlwZXMuaAppbmRleCBiZjVkN2UxLi5iYzUyM2RiIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvZW11dHlwZXMuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvZW11dHlwZXMuaApAQCAtMSw0MSArMSw0MSBAQAotI2lmbmRlZiBfRU1VVFlQRVNfSF8NCi0jZGVmaW5lIF9FTVVUWVBFU19IXw0KLQ0KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQ0KLSNkZWZpbmUgSU5MSU5FIF9fZm9yY2VpbmxpbmUNCi0jZWxpZiBkZWZpbmVkKF9fR05VQ19fKQ0KLSNkZWZpbmUgSU5MSU5FIF9faW5saW5lX18NCi0jZWxpZiBkZWZpbmVkKF9NV0VSS1NfKQ0KLSNkZWZpbmUgSU5MSU5FIGlubGluZQ0KLSNlbHNlDQotI2RlZmluZSBJTkxJTkUNCi0jZW5kaWYNCi0NCi0jaWYgZGVmaW5lZChFTVVfRExMX0lNUE9SVFMpDQotI2RlZmluZSBFTVUyMTQ5X0RMTF9JTVBPUlRTDQotI2RlZmluZSBFTVUyMjEyX0RMTF9JTVBPUlRTDQotI2RlZmluZSBFTVUyNDEzX0RMTF9JTVBPUlRTDQotI2RlZmluZSBFTVU4OTUwX0RMTF9JTVBPUlRTDQotI2RlZmluZSBFTVU3NjQ4OV9ETExfSU1QT1JUUw0KLSNlbmRpZg0KLQ0KLSNpZmRlZiBfX2NwbHVzcGx1cw0KLWV4dGVybiAiQyIgew0KLSNlbmRpZg0KLQ0KLXR5cGVkZWYgdW5zaWduZWQgaW50IGVfdWludDsNCi10eXBlZGVmIHNpZ25lZCBpbnQgZV9pbnQ7DQotDQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGVfdWludDggOw0KLXR5cGVkZWYgc2lnbmVkIGNoYXIgZV9pbnQ4IDsNCi0NCi10eXBlZGVmIHVuc2lnbmVkIHNob3J0IGVfdWludDE2IDsNCi10eXBlZGVmIHNpZ25lZCBzaG9ydCBlX2ludDE2IDsNCi0NCi10eXBlZGVmIHVuc2lnbmVkIGludCBlX3VpbnQzMiA7DQotdHlwZWRlZiBzaWduZWQgaW50IGVfaW50MzIgOw0KLQ0KLSNpZmRlZiBfX2NwbHVzcGx1cw0KLX0NCi0jZW5kaWYNCi0jZW5kaWYNCisjaWZuZGVmIF9FTVVUWVBFU19IXworI2RlZmluZSBfRU1VVFlQRVNfSF8KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIElOTElORSBfX2ZvcmNlaW5saW5lCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBJTkxJTkUgX19pbmxpbmVfXworI2VsaWYgZGVmaW5lZChfTVdFUktTXykKKyNkZWZpbmUgSU5MSU5FIGlubGluZQorI2Vsc2UKKyNkZWZpbmUgSU5MSU5FCisjZW5kaWYKKworI2lmIGRlZmluZWQoRU1VX0RMTF9JTVBPUlRTKQorI2RlZmluZSBFTVUyMTQ5X0RMTF9JTVBPUlRTCisjZGVmaW5lIEVNVTIyMTJfRExMX0lNUE9SVFMKKyNkZWZpbmUgRU1VMjQxM19ETExfSU1QT1JUUworI2RlZmluZSBFTVU4OTUwX0RMTF9JTVBPUlRTCisjZGVmaW5lIEVNVTc2NDg5X0RMTF9JTVBPUlRTCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHVuc2lnbmVkIGludCBlX3VpbnQ7Cit0eXBlZGVmIHNpZ25lZCBpbnQgZV9pbnQ7CisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBlX3VpbnQ4IDsKK3R5cGVkZWYgc2lnbmVkIGNoYXIgZV9pbnQ4IDsKKwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBlX3VpbnQxNiA7Cit0eXBlZGVmIHNpZ25lZCBzaG9ydCBlX2ludDE2IDsKKwordHlwZWRlZiB1bnNpZ25lZCBpbnQgZV91aW50MzIgOwordHlwZWRlZiBzaWduZWQgaW50IGVfaW50MzIgOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvaGVzX2FwdV9hZHBjbS5jIGIvYXBwcy9jb2RlY3MvbGliZ21lL2hlc19hcHVfYWRwY20uYwppbmRleCA2OWFjNzEyLi5kZTliODk0IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvaGVzX2FwdV9hZHBjbS5jCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9oZXNfYXB1X2FkcGNtLmMKQEAgLTEsMjk3ICsxLDI5NyBAQAotLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8NCi0NCi0jaW5jbHVkZSAiaGVzX2FwdV9hZHBjbS5oIg0KLQ0KLS8qIENvcHlyaWdodCAoQykgMjAwNi0yMDA4IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwNCi1JbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovDQotDQotDQotdm9pZCBBZHBjbV9pbml0KCBzdHJ1Y3QgSGVzX0FwdV9BZHBjbSogdGhpcyApDQotew0KLQl0aGlzLT5vdXRwdXQgPSBOVUxMOw0KLQltZW1zZXQoICZ0aGlzLT5zdGF0ZSwgMCwgc2l6ZW9mKCB0aGlzLT5zdGF0ZSApICk7DQotCUFkcGNtX3Jlc2V0KCB0aGlzICk7DQotfQ0KLQ0KLXZvaWQgQWRwY21fcmVzZXQoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzICkNCi17DQotCXRoaXMtPmxhc3RfdGltZSA9IDA7DQotCXRoaXMtPm5leHRfdGltZXIgPSAwOw0KLQl0aGlzLT5sYXN0X2FtcCA9IDA7DQotDQotCW1lbXNldCggJnRoaXMtPnN0YXRlLnBjbWJ1ZiwgMCwgc2l6ZW9mKHRoaXMtPnN0YXRlLnBjbWJ1ZikgKTsNCi0JbWVtc2V0KCAmdGhpcy0+c3RhdGUucG9ydCwgMCwgc2l6ZW9mKHRoaXMtPnN0YXRlLnBvcnQpICk7DQotDQotCXRoaXMtPnN0YXRlLmFkX3NhbXBsZSA9IDA7DQotCXRoaXMtPnN0YXRlLmFkX3JlZl9pbmRleCA9IDA7DQotDQotCXRoaXMtPnN0YXRlLmFkZHIgPSAwOw0KLQl0aGlzLT5zdGF0ZS5mcmVxID0gMDsNCi0JdGhpcy0+c3RhdGUud3JpdGVwdHIgPSAwOw0KLQl0aGlzLT5zdGF0ZS5yZWFkcHRyID0gMDsNCi0JdGhpcy0+c3RhdGUucGxheWZsYWcgPSAwOw0KLQl0aGlzLT5zdGF0ZS5yZXBlYXRmbGFnID0gMDsNCi0JdGhpcy0+c3RhdGUubGVuZ3RoID0gMDsNCi0JdGhpcy0+c3RhdGUudm9sdW1lID0gMHhGRjsNCi0JdGhpcy0+c3RhdGUuZmFkZXRpbWVyID0gMDsNCi0JdGhpcy0+c3RhdGUuZmFkZWNvdW50ID0gMDsNCi19DQotDQotc3RhdGljIHNob3J0IHN0ZXBzaXplWzQ5XSA9IHsNCi0gIDE2LCAgMTcsICAxOSwgIDIxLCAgMjMsICAyNSwgIDI4LA0KLSAgMzEsICAzNCwgIDM3LCAgNDEsICA0NSwgIDUwLCAgNTUsDQotICA2MCwgIDY2LCAgNzMsICA4MCwgIDg4LCAgOTcsIDEwNywNCi0gMTE4LCAxMzAsIDE0MywgMTU3LCAxNzMsIDE5MCwgMjA5LA0KLSAyMzAsIDI1MywgMjc5LCAzMDcsIDMzNywgMzcxLCA0MDgsDQotIDQ0OSwgNDk0LCA1NDQsIDU5OCwgNjU4LCA3MjQsIDc5NiwNCi0gODc2LCA5NjMsMTA2MCwxMTY2LDEyODIsMTQxMSwxNTUyDQotfTsNCi0NCi1zdGF0aWMgaW50IEFkcGNtX2RlY29kZSggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsaW50IGNvZGUgKTsNCi1zdGF0aWMgaW50IEFkcGNtX2RlY29kZSggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsaW50IGNvZGUgKQ0KLXsNCi0Jc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsNCi0JaW50IHN0ZXAgPSBzdGVwc2l6ZVtzdGF0ZS0+YWRfcmVmX2luZGV4XTsNCi0JaW50IGRlbHRhOw0KLQlpbnQgYyA9IGNvZGUgJiA3Ow0KLSNpZiAxDQotCWRlbHRhID0gMDsNCi0JaWYgKCBjICYgNCApIGRlbHRhICs9IHN0ZXA7DQotCXN0ZXAgPj49IDE7DQotCWlmICggYyAmIDIgKSBkZWx0YSArPSBzdGVwOw0KLQlzdGVwID4+PSAxOw0KLQlpZiAoIGMgJiAxICkgZGVsdGEgKz0gc3RlcDsNCi0Jc3RlcCA+Pj0gMTsNCi0JZGVsdGEgKz0gc3RlcDsNCi0jZWxzZQ0KLQlkZWx0YSA9ICggKCBjICsgYyArIDEgKSAqIHN0ZXAgKSAvIDg7IC8vIG1heWJlIGZhc3RlciwgYnV0IGludHJvZHVjZXMgcm91bmRpbmcNCi0jZW5kaWYNCi0JaWYgKCBjICE9IGNvZGUgKQ0KLQl7DQotCQlzdGF0ZS0+YWRfc2FtcGxlIC09IGRlbHRhOw0KLQkJaWYgKCBzdGF0ZS0+YWRfc2FtcGxlIDwgLTIwNDggKQ0KLQkJCXN0YXRlLT5hZF9zYW1wbGUgPSAtMjA0ODsNCi0JfQ0KLQllbHNlDQotCXsNCi0JCXN0YXRlLT5hZF9zYW1wbGUgKz0gZGVsdGE7DQotCQlpZiAoIHN0YXRlLT5hZF9zYW1wbGUgPiAyMDQ3ICkNCi0JCQlzdGF0ZS0+YWRfc2FtcGxlID0gMjA0NzsNCi0JfQ0KLQ0KLQlzdGF0aWMgaW50IGNvbnN0IHN0ZXBzIFs4XSA9IHsNCi0JCS0xLCAtMSwgLTEsIC0xLCAyLCA0LCA2LCA4DQotCX07DQotCXN0YXRlLT5hZF9yZWZfaW5kZXggKz0gc3RlcHMgW2NdOw0KLQlpZiAoIHN0YXRlLT5hZF9yZWZfaW5kZXggPCAwICkNCi0JCXN0YXRlLT5hZF9yZWZfaW5kZXggPSAwOw0KLQllbHNlIGlmICggc3RhdGUtPmFkX3JlZl9pbmRleCA+IDQ4ICkNCi0JCXN0YXRlLT5hZF9yZWZfaW5kZXggPSA0ODsNCi0NCi0JcmV0dXJuIHN0YXRlLT5hZF9zYW1wbGU7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkIEFkcGNtX3J1bl91bnRpbCggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICk7DQotc3RhdGljIHZvaWQgQWRwY21fcnVuX3VudGlsKCBzdHJ1Y3QgSGVzX0FwdV9BZHBjbSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKQ0KLXsNCi0Jc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsNCi0JaW50IHZvbHVtZSA9IHN0YXRlLT52b2x1bWU7DQotCWludCBmYWRldGltZXIgPSBzdGF0ZS0+ZmFkZXRpbWVyOw0KLQlpbnQgZmFkZWNvdW50ID0gc3RhdGUtPmZhZGVjb3VudDsNCi0JaW50IGxhc3RfdGltZSA9IHRoaXMtPmxhc3RfdGltZTsNCi0JaW50IG5leHRfdGltZXIgPSB0aGlzLT5uZXh0X3RpbWVyOw0KLQlpbnQgbGFzdF9hbXAgPSB0aGlzLT5sYXN0X2FtcDsNCi0JDQotCXN0cnVjdCBCbGlwX0J1ZmZlciogb3V0cHV0ID0gdGhpcy0+b3V0cHV0OyAvLyBjYWNoZSBvZnRlbi11c2VkIHZhbHVlcw0KLQ0KLQl3aGlsZSAoIHN0YXRlLT5wbGF5ZmxhZyAmJiBsYXN0X3RpbWUgPCBlbmRfdGltZSApDQotCXsNCi0JCXdoaWxlICggbGFzdF90aW1lID49IG5leHRfdGltZXIgKQ0KLQkJew0KLQkJCWlmICggZmFkZXRpbWVyICkNCi0JCQl7DQotCQkJCWlmICggZmFkZWNvdW50ID4gMCApDQotCQkJCXsNCi0JCQkJCWZhZGVjb3VudC0tOw0KLQkJCQkJdm9sdW1lID0gMHhGRiAqIGZhZGVjb3VudCAvIGZhZGV0aW1lcjsNCi0JCQkJfQ0KLQkJCQllbHNlIGlmICggZmFkZWNvdW50IDwgMCApDQotCQkJCXsNCi0JCQkJCWZhZGVjb3VudCsrOw0KLQkJCQkJdm9sdW1lID0gMHhGRiAtICggMHhGRiAqIGZhZGVjb3VudCAvIGZhZGV0aW1lciApOw0KLQkJCQl9DQotCQkJfQ0KLQkJCW5leHRfdGltZXIgKz0gNzE1OTsgLy8gNzE1OTA5MS8xMDAwOw0KLQkJfQ0KLQkJaW50IGFtcDsNCi0JCWlmICggc3RhdGUtPmFkX2xvd19uaWJibGUgKQ0KLQkJew0KLQkJCWFtcCA9IEFkcGNtX2RlY29kZSggdGhpcywgc3RhdGUtPnBjbWJ1Zlsgc3RhdGUtPnBsYXlwdHIgXSAmIDB4MEYgKTsNCi0JCQlzdGF0ZS0+YWRfbG93X25pYmJsZSA9IGZhbHNlOw0KLQkJCXN0YXRlLT5wbGF5cHRyKys7DQotCQkJc3RhdGUtPnBsYXllZHNhbXBsZWNvdW50Kys7DQotCQkJaWYgKCBzdGF0ZS0+cGxheWVkc2FtcGxlY291bnQgPT0gc3RhdGUtPnBsYXlsZW5ndGggKQ0KLQkJCXsNCi0JCQkJc3RhdGUtPnBsYXlmbGFnID0gMDsNCi0JCQl9DQotCQl9DQotCQllbHNlDQotCQl7DQotCQkJYW1wID0gQWRwY21fZGVjb2RlKCB0aGlzLCBzdGF0ZS0+cGNtYnVmWyBzdGF0ZS0+cGxheXB0ciBdID4+IDQgKTsNCi0JCQlzdGF0ZS0+YWRfbG93X25pYmJsZSA9IHRydWU7DQotCQl9DQotCQlhbXAgPSBhbXAgKiB2b2x1bWUgLyAweEZGOw0KLQkJaW50IGRlbHRhID0gYW1wIC0gbGFzdF9hbXA7DQotCQlpZiAoIG91dHB1dCAmJiBkZWx0YSApDQotCQl7DQotCQkJbGFzdF9hbXAgPSBhbXA7DQotCQkJU3ludGhfb2Zmc2V0X2lubGluZSggJnRoaXMtPnN5bnRoLCBsYXN0X3RpbWUsIGRlbHRhLCBvdXRwdXQgKTsNCi0JCX0NCi0JCWxhc3RfdGltZSArPSBzdGF0ZS0+ZnJlcTsNCi0JfQ0KLQ0KLQlpZiAoICFzdGF0ZS0+cGxheWZsYWcgKQ0KLQl7DQotCQl3aGlsZSAoIG5leHRfdGltZXIgPD0gZW5kX3RpbWUgKSBuZXh0X3RpbWVyICs9IDcxNTk7IC8vIDcxNTkwOTEvMTAwMA0KLQkJbGFzdF90aW1lID0gZW5kX3RpbWU7DQotCX0NCi0JDQotCXRoaXMtPmxhc3RfdGltZSAgPSBsYXN0X3RpbWU7DQotCXRoaXMtPm5leHRfdGltZXIgPSBuZXh0X3RpbWVyOw0KLQl0aGlzLT5sYXN0X2FtcCAgID0gbGFzdF9hbXA7DQotCXN0YXRlLT52b2x1bWUgPSB2b2x1bWU7DQotCXN0YXRlLT5mYWRldGltZXIgPSBmYWRldGltZXI7DQotCXN0YXRlLT5mYWRlY291bnQgPSBmYWRlY291bnQ7DQotfQ0KLQ0KLXZvaWQgQWRwY21fd3JpdGVfZGF0YSggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsIGJsaXBfdGltZV90IHRpbWUsIGludCBhZGRyLCBpbnQgZGF0YSApDQotew0KLQlpZiAoIHRpbWUgPiB0aGlzLT5sYXN0X3RpbWUgKSBBZHBjbV9ydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsNCi0Jc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsNCi0NCi0JZGF0YSAmPSAweEZGOw0KLQlzdGF0ZS0+cG9ydFsgYWRkciAmIDE1IF0gPSBkYXRhOw0KLQlzd2l0Y2ggKCBhZGRyICYgMTUgKQ0KLQl7DQotCWNhc2UgODoNCi0JCXN0YXRlLT5hZGRyICY9IDB4RkYwMDsNCi0JCXN0YXRlLT5hZGRyIHw9IGRhdGE7DQotCQlicmVhazsNCi0JY2FzZSA5Og0KLQkJc3RhdGUtPmFkZHIgJj0gMHhGRjsNCi0JCXN0YXRlLT5hZGRyIHw9IGRhdGEgPDwgODsNCi0JCWJyZWFrOw0KLQljYXNlIDEwOg0KLQkJc3RhdGUtPnBjbWJ1Zlsgc3RhdGUtPndyaXRlcHRyKysgXSA9IGRhdGE7DQotCQlzdGF0ZS0+cGxheWxlbmd0aCArKzsNCi0JCWJyZWFrOw0KLQljYXNlIDExOg0KLQkJZHByaW50ZigiQURQQ00gRE1BIDB4JTAyWCIsIGRhdGEpOw0KLQkJYnJlYWs7DQotCWNhc2UgMTM6DQotCQlpZiAoIGRhdGEgJiAweDgwICkNCi0JCXsNCi0JCQlzdGF0ZS0+YWRkciA9IDA7DQotCQkJc3RhdGUtPmZyZXEgPSAwOw0KLQkJCXN0YXRlLT53cml0ZXB0ciA9IDA7DQotCQkJc3RhdGUtPnJlYWRwdHIgPSAwOw0KLQkJCXN0YXRlLT5wbGF5ZmxhZyA9IDA7DQotCQkJc3RhdGUtPnJlcGVhdGZsYWcgPSAwOw0KLQkJCXN0YXRlLT5sZW5ndGggPSAwOw0KLQkJCXN0YXRlLT52b2x1bWUgPSAweEZGOw0KLQkJfQ0KLQkJaWYgKCAoIGRhdGEgJiAzICkgPT0gMyApDQotCQl7DQotCQkJc3RhdGUtPndyaXRlcHRyID0gc3RhdGUtPmFkZHI7DQotCQl9DQotCQlpZiAoIGRhdGEgJiA4ICkNCi0JCXsNCi0JCQlzdGF0ZS0+cmVhZHB0ciA9IHN0YXRlLT5hZGRyID8gc3RhdGUtPmFkZHIgLSAxIDogc3RhdGUtPmFkZHI7DQotCQl9DQotCQlpZiAoIGRhdGEgJiAweDEwICkNCi0JCXsNCi0JCQlzdGF0ZS0+bGVuZ3RoID0gc3RhdGUtPmFkZHI7DQotCQl9DQotCQlzdGF0ZS0+cmVwZWF0ZmxhZyA9IGRhdGEgJiAweDIwOw0KLQkJc3RhdGUtPnBsYXlmbGFnID0gZGF0YSAmIDB4NDA7DQotCQlpZiAoIHN0YXRlLT5wbGF5ZmxhZyApDQotCQl7DQotCQkJc3RhdGUtPnBsYXlwdHIgPSBzdGF0ZS0+cmVhZHB0cjsNCi0JCQlzdGF0ZS0+cGxheWxlbmd0aCA9IHN0YXRlLT5sZW5ndGggKyAxOw0KLQkJCXN0YXRlLT5wbGF5ZWRzYW1wbGVjb3VudCA9IDA7DQotCQkJc3RhdGUtPmFkX3NhbXBsZSA9IDA7DQotCQkJc3RhdGUtPmFkX2xvd19uaWJibGUgPSBmYWxzZTsNCi0JCX0NCi0JCWJyZWFrOw0KLQljYXNlIDE0Og0KLQkJc3RhdGUtPmZyZXEgPSA3MTU5MDkxIC8gKCAzMjAwMCAvICggMTYgLSAoIGRhdGEgJiAxNSApICkgKTsNCi0JCWJyZWFrOw0KLQljYXNlIDE1Og0KLQkJc3dpdGNoICggZGF0YSAmIDE1ICkNCi0JCXsNCi0JCWNhc2UgMDoNCi0JCWNhc2UgODoNCi0JCWNhc2UgMTI6DQotCQkJc3RhdGUtPmZhZGV0aW1lciA9IC0xMDA7DQotCQkJc3RhdGUtPmZhZGVjb3VudCA9IHN0YXRlLT5mYWRldGltZXI7DQotCQkJYnJlYWs7DQotCQljYXNlIDEwOg0KLQkJCXN0YXRlLT5mYWRldGltZXIgPSA1MDAwOw0KLQkJCXN0YXRlLT5mYWRlY291bnQgPSBzdGF0ZS0+ZmFkZXRpbWVyOw0KLQkJCWJyZWFrOw0KLQkJY2FzZSAxNDoNCi0JCQlzdGF0ZS0+ZmFkZXRpbWVyID0gMTUwMDsNCi0JCQlzdGF0ZS0+ZmFkZWNvdW50ID0gc3RhdGUtPmZhZGV0aW1lcjsNCi0JCQlicmVhazsNCi0JCX0NCi0JCWJyZWFrOw0KLQl9DQotfQ0KLQ0KLWludCBBZHBjbV9yZWFkX2RhdGEoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lLCBpbnQgYWRkciApDQotew0KLQlpZiAoIHRpbWUgPiB0aGlzLT5sYXN0X3RpbWUgKSBBZHBjbV9ydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsNCi0NCi0Jc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsNCi0Jc3dpdGNoICggYWRkciAmIDE1ICkNCi0Jew0KLQljYXNlIDEwOg0KLQkJcmV0dXJuIHN0YXRlLT5wY21idWYgW3N0YXRlLT5yZWFkcHRyKytdOw0KLQljYXNlIDExOg0KLQkJcmV0dXJuIHN0YXRlLT5wb3J0IFsxMV0gJiB+MTsNCi0JY2FzZSAxMjoNCi0JCWlmICghc3RhdGUtPnBsYXlmbGFnKQ0KLQkJew0KLQkJCXN0YXRlLT5wb3J0IFsxMl0gfD0gMTsNCi0JCQlzdGF0ZS0+cG9ydCBbMTJdICY9IH44Ow0KLQkJfQ0KLQkJZWxzZQ0KLQkJew0KLQkJCXN0YXRlLT5wb3J0IFsxMl0gJj0gfjE7DQotCQkJc3RhdGUtPnBvcnQgWzEyXSB8PSA4Ow0KLQkJfQ0KLQkJcmV0dXJuIHN0YXRlLT5wb3J0IFsxMl07DQotCWNhc2UgMTM6DQotCQlyZXR1cm4gc3RhdGUtPnBvcnQgWzEzXTsNCi0JfQ0KLQ0KLQlyZXR1cm4gMHhGRjsNCi19DQotDQotdm9pZCBBZHBjbV9lbmRfZnJhbWUoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzLCBibGlwX3RpbWVfdCBlbmRfdGltZSApDQotew0KLQlBZHBjbV9ydW5fdW50aWwoIHRoaXMsIGVuZF90aW1lICk7DQotCXRoaXMtPmxhc3RfdGltZSAtPSBlbmRfdGltZTsNCi0JdGhpcy0+bmV4dF90aW1lciAtPSBlbmRfdGltZTsNCi0JY2hlY2soIGxhc3RfdGltZSA+PSAwICk7DQotCWlmICggdGhpcy0+b3V0cHV0ICkNCi0JCUJsaXBfc2V0X21vZGlmaWVkKCB0aGlzLT5vdXRwdXQgKTsNCi19DQorLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8KKworI2luY2x1ZGUgImhlc19hcHVfYWRwY20uaCIKKworLyogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDggU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91CitjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKK3ZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzCittb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCitkZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8KKworCit2b2lkIEFkcGNtX2luaXQoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzICkKK3sKKwl0aGlzLT5vdXRwdXQgPSBOVUxMOworCW1lbXNldCggJnRoaXMtPnN0YXRlLCAwLCBzaXplb2YoIHRoaXMtPnN0YXRlICkgKTsKKwlBZHBjbV9yZXNldCggdGhpcyApOworfQorCit2b2lkIEFkcGNtX3Jlc2V0KCBzdHJ1Y3QgSGVzX0FwdV9BZHBjbSogdGhpcyApCit7CisJdGhpcy0+bGFzdF90aW1lID0gMDsKKwl0aGlzLT5uZXh0X3RpbWVyID0gMDsKKwl0aGlzLT5sYXN0X2FtcCA9IDA7CisKKwltZW1zZXQoICZ0aGlzLT5zdGF0ZS5wY21idWYsIDAsIHNpemVvZih0aGlzLT5zdGF0ZS5wY21idWYpICk7CisJbWVtc2V0KCAmdGhpcy0+c3RhdGUucG9ydCwgMCwgc2l6ZW9mKHRoaXMtPnN0YXRlLnBvcnQpICk7CisKKwl0aGlzLT5zdGF0ZS5hZF9zYW1wbGUgPSAwOworCXRoaXMtPnN0YXRlLmFkX3JlZl9pbmRleCA9IDA7CisKKwl0aGlzLT5zdGF0ZS5hZGRyID0gMDsKKwl0aGlzLT5zdGF0ZS5mcmVxID0gMDsKKwl0aGlzLT5zdGF0ZS53cml0ZXB0ciA9IDA7CisJdGhpcy0+c3RhdGUucmVhZHB0ciA9IDA7CisJdGhpcy0+c3RhdGUucGxheWZsYWcgPSAwOworCXRoaXMtPnN0YXRlLnJlcGVhdGZsYWcgPSAwOworCXRoaXMtPnN0YXRlLmxlbmd0aCA9IDA7CisJdGhpcy0+c3RhdGUudm9sdW1lID0gMHhGRjsKKwl0aGlzLT5zdGF0ZS5mYWRldGltZXIgPSAwOworCXRoaXMtPnN0YXRlLmZhZGVjb3VudCA9IDA7Cit9CisKK3N0YXRpYyBzaG9ydCBzdGVwc2l6ZVs0OV0gPSB7CisgIDE2LCAgMTcsICAxOSwgIDIxLCAgMjMsICAyNSwgIDI4LAorICAzMSwgIDM0LCAgMzcsICA0MSwgIDQ1LCAgNTAsICA1NSwKKyAgNjAsICA2NiwgIDczLCAgODAsICA4OCwgIDk3LCAxMDcsCisgMTE4LCAxMzAsIDE0MywgMTU3LCAxNzMsIDE5MCwgMjA5LAorIDIzMCwgMjUzLCAyNzksIDMwNywgMzM3LCAzNzEsIDQwOCwKKyA0NDksIDQ5NCwgNTQ0LCA1OTgsIDY1OCwgNzI0LCA3OTYsCisgODc2LCA5NjMsMTA2MCwxMTY2LDEyODIsMTQxMSwxNTUyCit9OworCitzdGF0aWMgaW50IEFkcGNtX2RlY29kZSggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsaW50IGNvZGUgKTsKK3N0YXRpYyBpbnQgQWRwY21fZGVjb2RlKCBzdHJ1Y3QgSGVzX0FwdV9BZHBjbSogdGhpcyxpbnQgY29kZSApCit7CisJc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsKKwlpbnQgc3RlcCA9IHN0ZXBzaXplW3N0YXRlLT5hZF9yZWZfaW5kZXhdOworCWludCBkZWx0YTsKKwlpbnQgYyA9IGNvZGUgJiA3OworI2lmIDEKKwlkZWx0YSA9IDA7CisJaWYgKCBjICYgNCApIGRlbHRhICs9IHN0ZXA7CisJc3RlcCA+Pj0gMTsKKwlpZiAoIGMgJiAyICkgZGVsdGEgKz0gc3RlcDsKKwlzdGVwID4+PSAxOworCWlmICggYyAmIDEgKSBkZWx0YSArPSBzdGVwOworCXN0ZXAgPj49IDE7CisJZGVsdGEgKz0gc3RlcDsKKyNlbHNlCisJZGVsdGEgPSAoICggYyArIGMgKyAxICkgKiBzdGVwICkgLyA4OyAvLyBtYXliZSBmYXN0ZXIsIGJ1dCBpbnRyb2R1Y2VzIHJvdW5kaW5nCisjZW5kaWYKKwlpZiAoIGMgIT0gY29kZSApCisJeworCQlzdGF0ZS0+YWRfc2FtcGxlIC09IGRlbHRhOworCQlpZiAoIHN0YXRlLT5hZF9zYW1wbGUgPCAtMjA0OCApCisJCQlzdGF0ZS0+YWRfc2FtcGxlID0gLTIwNDg7CisJfQorCWVsc2UKKwl7CisJCXN0YXRlLT5hZF9zYW1wbGUgKz0gZGVsdGE7CisJCWlmICggc3RhdGUtPmFkX3NhbXBsZSA+IDIwNDcgKQorCQkJc3RhdGUtPmFkX3NhbXBsZSA9IDIwNDc7CisJfQorCisJc3RhdGljIGludCBjb25zdCBzdGVwcyBbOF0gPSB7CisJCS0xLCAtMSwgLTEsIC0xLCAyLCA0LCA2LCA4CisJfTsKKwlzdGF0ZS0+YWRfcmVmX2luZGV4ICs9IHN0ZXBzIFtjXTsKKwlpZiAoIHN0YXRlLT5hZF9yZWZfaW5kZXggPCAwICkKKwkJc3RhdGUtPmFkX3JlZl9pbmRleCA9IDA7CisJZWxzZSBpZiAoIHN0YXRlLT5hZF9yZWZfaW5kZXggPiA0OCApCisJCXN0YXRlLT5hZF9yZWZfaW5kZXggPSA0ODsKKworCXJldHVybiBzdGF0ZS0+YWRfc2FtcGxlOworfQorCitzdGF0aWMgdm9pZCBBZHBjbV9ydW5fdW50aWwoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzLCBibGlwX3RpbWVfdCBlbmRfdGltZSApOworc3RhdGljIHZvaWQgQWRwY21fcnVuX3VudGlsKCBzdHJ1Y3QgSGVzX0FwdV9BZHBjbSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKQoreworCXN0cnVjdCBTdGF0ZSogc3RhdGUgPSAmdGhpcy0+c3RhdGU7CisJaW50IHZvbHVtZSA9IHN0YXRlLT52b2x1bWU7CisJaW50IGZhZGV0aW1lciA9IHN0YXRlLT5mYWRldGltZXI7CisJaW50IGZhZGVjb3VudCA9IHN0YXRlLT5mYWRlY291bnQ7CisJaW50IGxhc3RfdGltZSA9IHRoaXMtPmxhc3RfdGltZTsKKwlpbnQgbmV4dF90aW1lciA9IHRoaXMtPm5leHRfdGltZXI7CisJaW50IGxhc3RfYW1wID0gdGhpcy0+bGFzdF9hbXA7CisJCisJc3RydWN0IEJsaXBfQnVmZmVyKiBvdXRwdXQgPSB0aGlzLT5vdXRwdXQ7IC8vIGNhY2hlIG9mdGVuLXVzZWQgdmFsdWVzCisKKwl3aGlsZSAoIHN0YXRlLT5wbGF5ZmxhZyAmJiBsYXN0X3RpbWUgPCBlbmRfdGltZSApCisJeworCQl3aGlsZSAoIGxhc3RfdGltZSA+PSBuZXh0X3RpbWVyICkKKwkJeworCQkJaWYgKCBmYWRldGltZXIgKQorCQkJeworCQkJCWlmICggZmFkZWNvdW50ID4gMCApCisJCQkJeworCQkJCQlmYWRlY291bnQtLTsKKwkJCQkJdm9sdW1lID0gMHhGRiAqIGZhZGVjb3VudCAvIGZhZGV0aW1lcjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoIGZhZGVjb3VudCA8IDAgKQorCQkJCXsKKwkJCQkJZmFkZWNvdW50Kys7CisJCQkJCXZvbHVtZSA9IDB4RkYgLSAoIDB4RkYgKiBmYWRlY291bnQgLyBmYWRldGltZXIgKTsKKwkJCQl9CisJCQl9CisJCQluZXh0X3RpbWVyICs9IDcxNTk7IC8vIDcxNTkwOTEvMTAwMDsKKwkJfQorCQlpbnQgYW1wOworCQlpZiAoIHN0YXRlLT5hZF9sb3dfbmliYmxlICkKKwkJeworCQkJYW1wID0gQWRwY21fZGVjb2RlKCB0aGlzLCBzdGF0ZS0+cGNtYnVmWyBzdGF0ZS0+cGxheXB0ciBdICYgMHgwRiApOworCQkJc3RhdGUtPmFkX2xvd19uaWJibGUgPSBmYWxzZTsKKwkJCXN0YXRlLT5wbGF5cHRyKys7CisJCQlzdGF0ZS0+cGxheWVkc2FtcGxlY291bnQrKzsKKwkJCWlmICggc3RhdGUtPnBsYXllZHNhbXBsZWNvdW50ID09IHN0YXRlLT5wbGF5bGVuZ3RoICkKKwkJCXsKKwkJCQlzdGF0ZS0+cGxheWZsYWcgPSAwOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJYW1wID0gQWRwY21fZGVjb2RlKCB0aGlzLCBzdGF0ZS0+cGNtYnVmWyBzdGF0ZS0+cGxheXB0ciBdID4+IDQgKTsKKwkJCXN0YXRlLT5hZF9sb3dfbmliYmxlID0gdHJ1ZTsKKwkJfQorCQlhbXAgPSBhbXAgKiB2b2x1bWUgLyAweEZGOworCQlpbnQgZGVsdGEgPSBhbXAgLSBsYXN0X2FtcDsKKwkJaWYgKCBvdXRwdXQgJiYgZGVsdGEgKQorCQl7CisJCQlsYXN0X2FtcCA9IGFtcDsKKwkJCVN5bnRoX29mZnNldF9pbmxpbmUoICZ0aGlzLT5zeW50aCwgbGFzdF90aW1lLCBkZWx0YSwgb3V0cHV0ICk7CisJCX0KKwkJbGFzdF90aW1lICs9IHN0YXRlLT5mcmVxOworCX0KKworCWlmICggIXN0YXRlLT5wbGF5ZmxhZyApCisJeworCQl3aGlsZSAoIG5leHRfdGltZXIgPD0gZW5kX3RpbWUgKSBuZXh0X3RpbWVyICs9IDcxNTk7IC8vIDcxNTkwOTEvMTAwMAorCQlsYXN0X3RpbWUgPSBlbmRfdGltZTsKKwl9CisJCisJdGhpcy0+bGFzdF90aW1lICA9IGxhc3RfdGltZTsKKwl0aGlzLT5uZXh0X3RpbWVyID0gbmV4dF90aW1lcjsKKwl0aGlzLT5sYXN0X2FtcCAgID0gbGFzdF9hbXA7CisJc3RhdGUtPnZvbHVtZSA9IHZvbHVtZTsKKwlzdGF0ZS0+ZmFkZXRpbWVyID0gZmFkZXRpbWVyOworCXN0YXRlLT5mYWRlY291bnQgPSBmYWRlY291bnQ7Cit9CisKK3ZvaWQgQWRwY21fd3JpdGVfZGF0YSggc3RydWN0IEhlc19BcHVfQWRwY20qIHRoaXMsIGJsaXBfdGltZV90IHRpbWUsIGludCBhZGRyLCBpbnQgZGF0YSApCit7CisJaWYgKCB0aW1lID4gdGhpcy0+bGFzdF90aW1lICkgQWRwY21fcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7CisJc3RydWN0IFN0YXRlKiBzdGF0ZSA9ICZ0aGlzLT5zdGF0ZTsKKworCWRhdGEgJj0gMHhGRjsKKwlzdGF0ZS0+cG9ydFsgYWRkciAmIDE1IF0gPSBkYXRhOworCXN3aXRjaCAoIGFkZHIgJiAxNSApCisJeworCWNhc2UgODoKKwkJc3RhdGUtPmFkZHIgJj0gMHhGRjAwOworCQlzdGF0ZS0+YWRkciB8PSBkYXRhOworCQlicmVhazsKKwljYXNlIDk6CisJCXN0YXRlLT5hZGRyICY9IDB4RkY7CisJCXN0YXRlLT5hZGRyIHw9IGRhdGEgPDwgODsKKwkJYnJlYWs7CisJY2FzZSAxMDoKKwkJc3RhdGUtPnBjbWJ1Zlsgc3RhdGUtPndyaXRlcHRyKysgXSA9IGRhdGE7CisJCXN0YXRlLT5wbGF5bGVuZ3RoICsrOworCQlicmVhazsKKwljYXNlIDExOgorCQlkcHJpbnRmKCJBRFBDTSBETUEgMHglMDJYIiwgZGF0YSk7CisJCWJyZWFrOworCWNhc2UgMTM6CisJCWlmICggZGF0YSAmIDB4ODAgKQorCQl7CisJCQlzdGF0ZS0+YWRkciA9IDA7CisJCQlzdGF0ZS0+ZnJlcSA9IDA7CisJCQlzdGF0ZS0+d3JpdGVwdHIgPSAwOworCQkJc3RhdGUtPnJlYWRwdHIgPSAwOworCQkJc3RhdGUtPnBsYXlmbGFnID0gMDsKKwkJCXN0YXRlLT5yZXBlYXRmbGFnID0gMDsKKwkJCXN0YXRlLT5sZW5ndGggPSAwOworCQkJc3RhdGUtPnZvbHVtZSA9IDB4RkY7CisJCX0KKwkJaWYgKCAoIGRhdGEgJiAzICkgPT0gMyApCisJCXsKKwkJCXN0YXRlLT53cml0ZXB0ciA9IHN0YXRlLT5hZGRyOworCQl9CisJCWlmICggZGF0YSAmIDggKQorCQl7CisJCQlzdGF0ZS0+cmVhZHB0ciA9IHN0YXRlLT5hZGRyID8gc3RhdGUtPmFkZHIgLSAxIDogc3RhdGUtPmFkZHI7CisJCX0KKwkJaWYgKCBkYXRhICYgMHgxMCApCisJCXsKKwkJCXN0YXRlLT5sZW5ndGggPSBzdGF0ZS0+YWRkcjsKKwkJfQorCQlzdGF0ZS0+cmVwZWF0ZmxhZyA9IGRhdGEgJiAweDIwOworCQlzdGF0ZS0+cGxheWZsYWcgPSBkYXRhICYgMHg0MDsKKwkJaWYgKCBzdGF0ZS0+cGxheWZsYWcgKQorCQl7CisJCQlzdGF0ZS0+cGxheXB0ciA9IHN0YXRlLT5yZWFkcHRyOworCQkJc3RhdGUtPnBsYXlsZW5ndGggPSBzdGF0ZS0+bGVuZ3RoICsgMTsKKwkJCXN0YXRlLT5wbGF5ZWRzYW1wbGVjb3VudCA9IDA7CisJCQlzdGF0ZS0+YWRfc2FtcGxlID0gMDsKKwkJCXN0YXRlLT5hZF9sb3dfbmliYmxlID0gZmFsc2U7CisJCX0KKwkJYnJlYWs7CisJY2FzZSAxNDoKKwkJc3RhdGUtPmZyZXEgPSA3MTU5MDkxIC8gKCAzMjAwMCAvICggMTYgLSAoIGRhdGEgJiAxNSApICkgKTsKKwkJYnJlYWs7CisJY2FzZSAxNToKKwkJc3dpdGNoICggZGF0YSAmIDE1ICkKKwkJeworCQljYXNlIDA6CisJCWNhc2UgODoKKwkJY2FzZSAxMjoKKwkJCXN0YXRlLT5mYWRldGltZXIgPSAtMTAwOworCQkJc3RhdGUtPmZhZGVjb3VudCA9IHN0YXRlLT5mYWRldGltZXI7CisJCQlicmVhazsKKwkJY2FzZSAxMDoKKwkJCXN0YXRlLT5mYWRldGltZXIgPSA1MDAwOworCQkJc3RhdGUtPmZhZGVjb3VudCA9IHN0YXRlLT5mYWRldGltZXI7CisJCQlicmVhazsKKwkJY2FzZSAxNDoKKwkJCXN0YXRlLT5mYWRldGltZXIgPSAxNTAwOworCQkJc3RhdGUtPmZhZGVjb3VudCA9IHN0YXRlLT5mYWRldGltZXI7CisJCQlicmVhazsKKwkJfQorCQlicmVhazsKKwl9Cit9CisKK2ludCBBZHBjbV9yZWFkX2RhdGEoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lLCBpbnQgYWRkciApCit7CisJaWYgKCB0aW1lID4gdGhpcy0+bGFzdF90aW1lICkgQWRwY21fcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7CisKKwlzdHJ1Y3QgU3RhdGUqIHN0YXRlID0gJnRoaXMtPnN0YXRlOworCXN3aXRjaCAoIGFkZHIgJiAxNSApCisJeworCWNhc2UgMTA6CisJCXJldHVybiBzdGF0ZS0+cGNtYnVmIFtzdGF0ZS0+cmVhZHB0cisrXTsKKwljYXNlIDExOgorCQlyZXR1cm4gc3RhdGUtPnBvcnQgWzExXSAmIH4xOworCWNhc2UgMTI6CisJCWlmICghc3RhdGUtPnBsYXlmbGFnKQorCQl7CisJCQlzdGF0ZS0+cG9ydCBbMTJdIHw9IDE7CisJCQlzdGF0ZS0+cG9ydCBbMTJdICY9IH44OworCQl9CisJCWVsc2UKKwkJeworCQkJc3RhdGUtPnBvcnQgWzEyXSAmPSB+MTsKKwkJCXN0YXRlLT5wb3J0IFsxMl0gfD0gODsKKwkJfQorCQlyZXR1cm4gc3RhdGUtPnBvcnQgWzEyXTsKKwljYXNlIDEzOgorCQlyZXR1cm4gc3RhdGUtPnBvcnQgWzEzXTsKKwl9CisKKwlyZXR1cm4gMHhGRjsKK30KKwordm9pZCBBZHBjbV9lbmRfZnJhbWUoIHN0cnVjdCBIZXNfQXB1X0FkcGNtKiB0aGlzLCBibGlwX3RpbWVfdCBlbmRfdGltZSApCit7CisJQWRwY21fcnVuX3VudGlsKCB0aGlzLCBlbmRfdGltZSApOworCXRoaXMtPmxhc3RfdGltZSAtPSBlbmRfdGltZTsKKwl0aGlzLT5uZXh0X3RpbWVyIC09IGVuZF90aW1lOworCWNoZWNrKCBsYXN0X3RpbWUgPj0gMCApOworCWlmICggdGhpcy0+b3V0cHV0ICkKKwkJQmxpcF9zZXRfbW9kaWZpZWQoIHRoaXMtPm91dHB1dCApOworfQpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL2luZmxhdGUvbWJyZWFkZXIuYyBiL2FwcHMvY29kZWNzL2xpYmdtZS9pbmZsYXRlL21icmVhZGVyLmMKaW5kZXggOTZlNDVjZC4uODI1Nzg3OSAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL2luZmxhdGUvbWJyZWFkZXIuYworKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvaW5mbGF0ZS9tYnJlYWRlci5jCkBAIC0xLDE2ICsxLDE2IEBACi0NCi0vKiBNZW1vcnkgYnVmZmVyIHJlYWRlciwgc2ltdWxhdGVzIGZpbGUgcmVhZCANCi0gICBAIGdhbWEgDQotKi8NCi0NCi0jaW5jbHVkZSAibWJyZWFkZXIuaCINCi0NCi1pbnQgbWJyZWFkKHN0cnVjdCBtYnJlYWRlcl90ICptZCwgdm9pZCAqYnVmLCBzaXplX3QgbikNCi17DQotCWlmICghbWQpIHJldHVybiAtMTsNCi0Jc2l6ZV90IHJlYWRfYnl0ZXMgPSAobWQtPm9mZnNldCtuKSA+IG1kLT5zaXplID8gDQotCQltZC0+c2l6ZS1tZC0+b2Zmc2V0IDogbjsNCi0JbWVtY3B5KGJ1ZixtZC0+cHRyICsgbWQtPm9mZnNldCxyZWFkX2J5dGVzKTsNCi0JbWQtPm9mZnNldCArPSByZWFkX2J5dGVzOw0KLQlyZXR1cm4gcmVhZF9ieXRlczsNCi19DQorCisvKiBNZW1vcnkgYnVmZmVyIHJlYWRlciwgc2ltdWxhdGVzIGZpbGUgcmVhZCAKKyAgIEAgZ2FtYSAKKyovCisKKyNpbmNsdWRlICJtYnJlYWRlci5oIgorCitpbnQgbWJyZWFkKHN0cnVjdCBtYnJlYWRlcl90ICptZCwgdm9pZCAqYnVmLCBzaXplX3QgbikKK3sKKwlpZiAoIW1kKSByZXR1cm4gLTE7CisJc2l6ZV90IHJlYWRfYnl0ZXMgPSAobWQtPm9mZnNldCtuKSA+IG1kLT5zaXplID8gCisJCW1kLT5zaXplLW1kLT5vZmZzZXQgOiBuOworCW1lbWNweShidWYsbWQtPnB0ciArIG1kLT5vZmZzZXQscmVhZF9ieXRlcyk7CisJbWQtPm9mZnNldCArPSByZWFkX2J5dGVzOworCXJldHVybiByZWFkX2J5dGVzOworfQpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL2luZmxhdGUvbWJyZWFkZXIuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS9pbmZsYXRlL21icmVhZGVyLmgKaW5kZXggNjQyN2YxOC4uZDM0NWMwYyAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL2luZmxhdGUvbWJyZWFkZXIuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvaW5mbGF0ZS9tYnJlYWRlci5oCkBAIC0xLDE1ICsxLDE1IEBACi0NCi0jaWZuZGVmIE1CUkVBREVSX0gNCi0jZGVmaW5lIE1CUkVBREVSX0gNCi0NCi0jaW5jbHVkZSAiY29kZWNsaWIuaCINCi0NCi1zdHJ1Y3QgbWJyZWFkZXJfdCB7DQotCWNvbnN0IGNoYXIgKnB0cjsNCi0Jc2l6ZV90IHNpemU7DQotCXNpemVfdCBvZmZzZXQ7DQotfTsNCi0NCi1pbnQgbWJyZWFkKHN0cnVjdCBtYnJlYWRlcl90ICptZCwgdm9pZCAqYnVmLCBzaXplX3Qgbik7DQotDQotI2VuZGlmDQorCisjaWZuZGVmIE1CUkVBREVSX0gKKyNkZWZpbmUgTUJSRUFERVJfSAorCisjaW5jbHVkZSAiY29kZWNsaWIuaCIKKworc3RydWN0IG1icmVhZGVyX3QgeworCWNvbnN0IGNoYXIgKnB0cjsKKwlzaXplX3Qgc2l6ZTsKKwlzaXplX3Qgb2Zmc2V0OworfTsKKworaW50IG1icmVhZChzdHJ1Y3QgbWJyZWFkZXJfdCAqbWQsIHZvaWQgKmJ1Ziwgc2l6ZV90IG4pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9rc3NfY3B1LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUva3NzX2NwdS5jCmluZGV4IDg5MWE3ZGYuLjIwNjAxZTYgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9rc3NfY3B1LmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL2tzc19jcHUuYwpAQCAtMSwzNSArMSwzNSBAQAotLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8NCi0NCi0jaW5jbHVkZSAia3NzX2VtdS5oIg0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfZW5kaWFuLmgiDQotLy8jaW5jbHVkZSAiejgwX2NwdV9sb2cuaCINCi0NCi0vKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCBTaGF5IEdyZWVuLiBUaGlzIG1vZHVsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UNCi1jYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyDQotR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQotdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIFRoaXMNCi1tb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZDQotV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUw0KLUZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUNCi1kZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQotTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbW9kdWxlOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sDQotSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQSAqLw0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiDQotDQotI2RlZmluZSBPVVRfUE9SVCggIGFkZHIsIGRhdGEgKSBjcHVfb3V0KCB0aGlzLCBUSU1FKCksIGFkZHIsIGRhdGEgKQ0KLSNkZWZpbmUgSU5fUE9SVCggICBhZGRyICAgICAgICkgY3B1X2luKCB0aGlzLCBUSU1FKCksIGFkZHIgKQ0KLSNkZWZpbmUgV1JJVEVfTUVNKCBhZGRyLCBkYXRhICkge0ZMVVNIX1RJTUUoKTsgY3B1X3dyaXRlKCB0aGlzLCBhZGRyLCBkYXRhICk7fQ0KLSNkZWZpbmUgSURMRV9BRERSICAgICAgICAgICAgICAgaWRsZV9hZGRyDQotDQotI2RlZmluZSBDUFVfQkVHSU4gXA0KLWJvb2wgcnVuX2NwdSggc3RydWN0IEtzc19FbXUqIHRoaXMsIGtzc190aW1lX3QgZW5kX3RpbWUgKVwNCi17XA0KLQlzdHJ1Y3QgWjgwX0NwdSAqY3B1ID0gJnRoaXMtPmNwdTsgXA0KLQlaODBfc2V0X2VuZF90aW1lKCBjcHUsIGVuZF90aW1lICk7DQotDQotCSNpbmNsdWRlICJ6ODBfY3B1X3J1bi5oIg0KLQkNCi0JcmV0dXJuIHdhcm5pbmc7DQotfQ0KKy8vIEdhbWVfTXVzaWNfRW11IDAuNi1wcmUuIGh0dHA6Ly93d3cuc2xhY2submV0L35hbnQvCisKKyNpbmNsdWRlICJrc3NfZW11LmgiCisKKyNpbmNsdWRlICJibGFyZ2dfZW5kaWFuLmgiCisvLyNpbmNsdWRlICJ6ODBfY3B1X2xvZy5oIgorCisvKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCBTaGF5IEdyZWVuLiBUaGlzIG1vZHVsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UKK2NhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgordmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIFRoaXMKK21vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKK1dBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKK0ZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKK2RldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIG1vZHVsZTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQSAqLworCisjaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIgorCisjZGVmaW5lIE9VVF9QT1JUKCAgYWRkciwgZGF0YSApIGNwdV9vdXQoIHRoaXMsIFRJTUUoKSwgYWRkciwgZGF0YSApCisjZGVmaW5lIElOX1BPUlQoICAgYWRkciAgICAgICApIGNwdV9pbiggdGhpcywgVElNRSgpLCBhZGRyICkKKyNkZWZpbmUgV1JJVEVfTUVNKCBhZGRyLCBkYXRhICkge0ZMVVNIX1RJTUUoKTsgY3B1X3dyaXRlKCB0aGlzLCBhZGRyLCBkYXRhICk7fQorI2RlZmluZSBJRExFX0FERFIgICAgICAgICAgICAgICBpZGxlX2FkZHIKKworI2RlZmluZSBDUFVfQkVHSU4gXAorYm9vbCBydW5fY3B1KCBzdHJ1Y3QgS3NzX0VtdSogdGhpcywga3NzX3RpbWVfdCBlbmRfdGltZSApXAore1wKKwlzdHJ1Y3QgWjgwX0NwdSAqY3B1ID0gJnRoaXMtPmNwdTsgXAorCVo4MF9zZXRfZW5kX3RpbWUoIGNwdSwgZW5kX3RpbWUgKTsKKworCSNpbmNsdWRlICJ6ODBfY3B1X3J1bi5oIgorCQorCXJldHVybiB3YXJuaW5nOworfQpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL25lc19jcHVfcnVuLmggYi9hcHBzL2NvZGVjcy9saWJnbWUvbmVzX2NwdV9ydW4uaAppbmRleCA1Yjk2NGQ1Li5mZDFmZWE5IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvbmVzX2NwdV9ydW4uaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvbmVzX2NwdV9ydW4uaApAQCAtMSwxMTIyICsxLDExMjIgQEAKLS8vIE5FUyA2NTAyIGNwdSBlbXVsYXRvciBydW4gZnVuY3Rpb24NCi0NCi0jaWYgMA0KLS8qIERlZmluZSB0aGVzZSBtYWNyb3MgaW4gdGhlIHNvdXJjZSBmaWxlIGJlZm9yZSAjaW5jbHVkaW5nIHRoaXMgZmlsZS4NCi0tIFBhcmFtZXRlcnMgbWlnaHQgYmUgZXhwcmVzc2lvbnMsIHNvIHRoZXkgYXJlIGJlc3QgZXZhbHVhdGVkIG9ubHkgb25jZSwNCi10aG91Z2ggdGhleSBORVZFUiBoYXZlIHNpZGUtZWZmZWN0cywgc28gbXVsdGlwbGUgZXZhbHVhdGlvbiBpcyBPSy4NCi0tIE91dHB1dCBwYXJhbWV0ZXJzIG1pZ2h0IGJlIGEgbXVsdGlwbGUtYXNzaWdubWVudCBleHByZXNzaW9uIGxpa2UgImE9eCIsDQotc28gdGhleSBtdXN0IE5PVCBiZSBwYXJlbnRoZXNpemVkLg0KLS0gRXhjZXB0IHdoZXJlIG5vdGVkLCB0aW1lKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHdpbGwgTk9UIHdvcmsNCi1jb3JyZWN0bHkgaW5zaWRlIGEgbWFjcm8uIFRJTUUoKSBpcyBhbHdheXMgY29ycmVjdCwgYW5kIEZMVVNIX1RJTUUoKSBhbmQNCi1DQUNIRV9USU1FKCkgYWxsb3cgdGhlIHRpbWUgY2hhbmdpbmcgZnVuY3Rpb25zIHRvIHdvcmsuDQotLSBNYWNyb3MgInJldHVybmluZyIgdm9pZCBtYXkgdXNlIGEge30gc3RhdGVtZW50IGJsb2NrLiAqLw0KLQ0KLQkvLyAwIDw9IGFkZHIgPD0gMHhGRkZGICsgcGFnZV9zaXplDQotCS8vIHRpbWUgZnVuY3Rpb25zIGNhbiBiZSB1c2VkDQotCWludCAgUkVBRF9NRU0oICBhZGRyX3QgKTsNCi0Jdm9pZCBXUklURV9NRU0oIGFkZHJfdCwgaW50IGRhdGEgKTsNCi0JLy8gMCA8PSBSRUFEX01FTSgpIDw9IDB4RkYNCi0JDQotCS8vIDAgPD0gYWRkciA8PSAweDFGRg0KLQlpbnQgIFJFQURfTE9XKCAgYWRkcl90ICk7DQotCXZvaWQgV1JJVEVfTE9XKCBhZGRyX3QsIGludCBkYXRhICk7DQotCS8vIDAgPD0gUkVBRF9MT1coKSA8PSAweEZGDQotDQotCS8vIE9mdGVuLXVzZWQgaW5zdHJ1Y3Rpb25zIGF0dGVtcHQgdGhlc2UgYmVmb3JlIHVzaW5nIGEgbm9ybWFsIG1lbW9yeSBhY2Nlc3MuDQotCS8vIE9wdGlvbmFsOyBkZWZhdWx0cyB0byBSRUFEX01FTSgpIGFuZCBXUklURV9NRU0oKQ0KLQlib29sIENBTl9SRUFEX0ZBU1QoIGFkZHJfdCApOyAvLyBpZiB0cnVlLCB1c2VzIHJlc3VsdCBvZiBSRUFEX0ZBU1QNCi0Jdm9pZCBSRUFEX0ZBU1QoIGFkZHJfdCwgaW50JiBvdXQgKTsgLy8gQUxXQVlTIGNhbGxlZCBCRUZPUkUgQ0FOX1JFQURfRkFTVA0KLQlib29sIENBTl9XUklURV9GQVNUKCBhZGRyX3QgKTsgLy8gaWYgdHJ1ZSwgdXNlcyBXUklURV9GQVNUIGluc3RlYWQgb2YgV1JJVEVfTUVNDQotCXZvaWQgV1JJVEVfRkFTVCggYWRkcl90LCBpbnQgZGF0YSApOw0KLQ0KLQkvLyBVc2VkIGJ5IGluc3RydWN0aW9ucyBtb3N0IG9mdGVuIHVzZWQgdG8gYWNjZXNzIHRoZSBORVMgUFBVIChMREEgYWJzIGFuZCBCSVQgYWJzKS4NCi0JLy8gT3B0aW9uYWw7IGRlZmF1bHRzIHRvIFJFQURfTUVNLg0KLQl2b2lkIFJFQURfUFBVKCAgYWRkcl90LCBpbnQmIG91dCApOw0KLQkvLyAwIDw9IG91dCA8PSAweEZGDQotDQotLy8gVGhlIGZvbGxvd2luZyBjYW4gYmUgdXNlZCB3aXRoaW4gbWFjcm9zOg0KLQkNCi0JLy8gQ3VycmVudCB0aW1lDQotCXRpbWVfdCBUSU1FKCk7DQotCQ0KLQkvLyBBbGxvd3MgdXNlIG9mIHRpbWUgZnVuY3Rpb25zDQotCXZvaWQgRkxVU0hfVElNRSgpOw0KLQkNCi0JLy8gTXVzdCBiZSB1c2VkIGJlZm9yZSBlbmQgb2YgbWFjcm8gaWYgRkxVU0hfVElNRSgpIHdhcyB1c2VkIGVhcmxpZXINCi0Jdm9pZCBDQUNIRV9USU1FKCk7DQotDQotLy8gQ29uZmlndXJhdGlvbiAob3B0aW9uYWw7IGNvbW1lbnRlZCBiZWhhdmlvciBpZiBkZWZpbmVkKQ0KLQkNCi0JLy8gRW11bGF0ZXMgZHVtbXkgcmVhZHMgZm9yIGluZGV4ZWQgaW5zdHJ1Y3Rpb25zDQotCSNkZWZpbmUgTkVTX0NQVV9EVU1NWV9SRUFEUyAxDQotCQ0KLQkvLyBPcHRpbWl6ZXMgYXMgaWYgbWFwX2NvZGUoIDAsIDB4MTAwMDAgKyBjcHVfcGFkZGluZywgRkxBVF9NRU0gKSBpcyBhbHdheXMgaW4gZWZmZWN0DQotCSNkZWZpbmUgRkxBVF9NRU0gbXlfbWVtX2FycmF5DQotCQ0KLQkvLyBFeHBhbmRlZCBqdXN0IGJlZm9yZSBiZWdpbm5pbmcgb2YgY29kZSwgdG8gaGVscCBkZWJ1Z2dlcg0KLQkjZGVmaW5lIENQVV9CRUdJTiB2b2lkIG15X3J1bl9jcHUoKSB7DQotCQ0KLSNlbmRpZg0KLQ0KLS8qIENvcHlyaWdodCAoQykgMjAwMy0yMDA4IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwNCi1JbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovDQotDQotLy8gQWxsb3dzIE1XQ1cgZGVidWdnZXIgdG8gc3RlcCB0aHJvdWdoIGNvZGUgcHJvcGVybHkNCi0jaWZkZWYgQ1BVX0JFR0lODQotCUNQVV9CRUdJTg0KLSNlbmRpZg0KLQ0KLS8vIFRpbWUNCi0jZGVmaW5lIFRJTUUoKSAgICAgICAgICAoc190aW1lICsgcy5iYXNlKQ0KLSNkZWZpbmUgRkxVU0hfVElNRSgpICAgIHtzLnRpbWUgPSBzX3RpbWUgLSB0aW1lX29mZnNldDt9DQotI2RlZmluZSBDQUNIRV9USU1FKCkgICAge3NfdGltZSA9IHMudGltZSArIHRpbWVfb2Zmc2V0O30NCi0NCi0vLyBEZWZhdWx0cw0KLSNpZm5kZWYgQ0FOX1dSSVRFX0ZBU1QNCi0JI2RlZmluZSBDQU5fV1JJVEVfRkFTVCggYWRkciApICAgICAgMA0KLQkjZGVmaW5lIFdSSVRFX0ZBU1QoIGFkZHIsIGRhdGEgKQ0KLSNlbmRpZg0KLQ0KLSNpZm5kZWYgQ0FOX1JFQURfRkFTVA0KLQkjZGVmaW5lIENBTl9SRUFEX0ZBU1QoIGFkZHIgKSAgICAgICAwDQotCSNkZWZpbmUgUkVBRF9GQVNUKCBhZGRyLCBvdXQgKQ0KLSNlbmRpZg0KLQ0KLSNpZm5kZWYgUkVBRF9QUFUNCi0JI2RlZmluZSBSRUFEX1BQVSggYWRkciwgb3V0IClcDQotCXtcDQotCQlGTFVTSF9USU1FKCk7XA0KLQkJb3V0ID0gUkVBRF9NRU0oIGFkZHIgKTtcDQotCQlDQUNIRV9USU1FKCk7XA0KLQl9DQotI2VuZGlmDQotDQotI2RlZmluZSBSRUFEX1NUQUNLICBSRUFEX0xPVw0KLSNkZWZpbmUgV1JJVEVfU1RBQ0sgV1JJVEVfTE9XDQotDQotLy8gRHVtbXkgcmVhZHMNCi0jaWZkZWYgTkVTX0NQVV9EVU1NWV9SRUFEUw0KLQkvLyBUT0RPOiBvcHRpbWl6ZSB0aW1lIGhhbmRsaW5nDQotCSNkZWZpbmUgRFVNTVlfUkVBRCggYWRkciwgaWR4ICkgXA0KLQkJaWYgKCAoYWRkciAmIDB4RkYpIDwgaWR4IClcDQotCQl7XA0KLQkJCWludCBjb25zdCB0aW1lX29mZnNldCA9IDE7XA0KLQkJCUZMVVNIX1RJTUUoKTtcDQotCQkJUkVBRF9NRU0oIChhZGRyIC0gMHgxMDApICk7XA0KLQkJCUNBQ0hFX1RJTUUoKTtcDQotCQl9DQotI2Vsc2UNCi0JI2RlZmluZSBEVU1NWV9SRUFEKCBhZGRyLCBpZHggKQ0KLSNlbmRpZg0KLQ0KLS8vIENvZGUNCi0jaWZkZWYgRkxBVF9NRU0NCi0JI2RlZmluZSBDT0RFX1BBR0UoICAgYWRkciApIChGTEFUX01FTSkNCi0JI2RlZmluZSBDT0RFX09GRlNFVCggYWRkciApIChhZGRyKQ0KLSNlbHNlDQotCSNkZWZpbmUgQ09ERV9QQUdFKCBhZGRyICkgICAocy5jb2RlX21hcCBbTkVTX0NQVV9QQUdFKCBhZGRyICldKQ0KLQkjZGVmaW5lIENPREVfT0ZGU0VUKCBhZGRyICkgTkVTX0NQVV9PRkZTRVQoIGFkZHIgKQ0KLSNlbmRpZg0KLSNkZWZpbmUgUkVBRF9DT0RFKCBhZGRyICkgICAoQ09ERV9QQUdFKCBhZGRyICkgW0NPREVfT0ZGU0VUKCBhZGRyICldKQ0KLQ0KLS8vIFN0YWNrDQotI2RlZmluZSBTRVRfU1AoIHYgKSAoc3AgPSAoKHYpICsgMSkgfCAweDEwMCkNCi0jZGVmaW5lIEdFVF9TUCgpICAgICgoc3AgLSAxKSAmIDB4RkYpDQotI2RlZmluZSBTUCggbyApICAgICAoKHNwICsgKG8gLSAobz4wKSoweDEwMCkpIHwgMHgxMDApDQotDQotLy8gVHJ1bmNhdGlvbg0KLSNkZWZpbmUgQllURSggIG4gKSAoKHVpbnQ4X3QgKSAobikpIC8qICh1bnNpZ25lZCkgbiAmIDB4RkYgKi8NCi0jZGVmaW5lIFNCWVRFKCBuICkgKChpbnQ4X3QgICkgKG4pKSAvKiAoQllURSggbiApIF4gMHg4MCkgLSAweDgwICovDQotI2RlZmluZSBXT1JEKCAgbiApICgodWludDE2X3QpIChuKSkgLyogKHVuc2lnbmVkKSBuICYgMHhGRkZGICovDQotDQotLy8gRmxhZ3Mgd2l0aCBoZXggdmFsdWUgZm9yIGNsYXJpdHkgd2hlbiB1c2VkIGFzIG1hc2suDQotLy8gU3RvcmVkIGluIGluZGljYXRlZCB2YXJpYWJsZSBkdXJpbmcgZW11bGF0aW9uLg0KLWludCBjb25zdCBuODAgPSAweDgwOyAvLyBueg0KLWludCBjb25zdCB2NDAgPSAweDQwOyAvLyBmbGFncw0KLWludCBjb25zdCByMjAgPSAweDIwOw0KLWludCBjb25zdCBiMTAgPSAweDEwOw0KLWludCBjb25zdCBkMDggPSAweDA4OyAvLyBmbGFncw0KLWludCBjb25zdCBpMDQgPSAweDA0OyAvLyBmbGFncw0KLWludCBjb25zdCB6MDIgPSAweDAyOyAvLyBueg0KLWludCBjb25zdCBjMDEgPSAweDAxOyAvLyBjDQotDQotI2RlZmluZSBJU19ORUcgKG56ICYgMHg4MDgwKQ0KLQ0KLSNkZWZpbmUgR0VUX0ZMQUdTKCBvdXQgKSBcDQote1wNCi0Jb3V0ID0gZmxhZ3MgJiAodjQwIHwgZDA4IHwgaTA0KTtcDQotCW91dCArPSAoKG56ID4+IDgpIHwgbnopICYgbjgwO1wNCi0Jb3V0ICs9IGMgPj4gOCAmIGMwMTtcDQotCWlmICggIUJZVEUoIG56ICkgKVwNCi0JCW91dCArPSB6MDI7XA0KLX0NCi0NCi0jZGVmaW5lIFNFVF9GTEFHUyggaW4gKSBcDQote1wNCi0JZmxhZ3MgPSBpbiAmICh2NDAgfCBkMDggfCBpMDQpO1wNCi0JYyA9IG56ID0gaW4gPDwgODtcDQotCW56ICs9IH5pbiAmIHowMjtcDQotfQ0KLQ0KLXsNCi0JaW50IGNvbnN0IHRpbWVfb2Zmc2V0ID0gMDsNCi0JDQotCS8vIExvY2FsIHN0YXRlDQotCXN0cnVjdCBjcHVfc3RhdGVfdCBzOw0KLQkjaWZkZWYgRkxBVF9NRU0NCi0JCXMuYmFzZSA9IGNwdS0+Y3B1X3N0YXRlXy5iYXNlOw0KLQkjZWxzZQ0KLQkJcyA9IGNwdS0+Y3B1X3N0YXRlXzsNCi0JI2VuZGlmDQotCWNwdS0+Y3B1X3N0YXRlID0gJnM7DQotCWludCBzX3RpbWUgPSBjcHUtPmNwdV9zdGF0ZV8udGltZTsgLy8gaGVscHMgZXZlbiBvbiB4ODYNCi0JDQotCS8vIFJlZ2lzdGVycw0KLQlpbnQgcGMgPSBjcHUtPnIucGM7DQotCWludCBhICA9IGNwdS0+ci5hOw0KLQlpbnQgeCAgPSBjcHUtPnIueDsNCi0JaW50IHkgID0gY3B1LT5yLnk7DQotCWludCBzcDsNCi0JU0VUX1NQKCBjcHUtPnIuc3AgKTsNCi0JDQotCS8vIEZsYWdzDQotCWludCBmbGFnczsNCi0JaW50IGM7ICAvLyBjYXJyeSBzZXQgaWYgKGMgJiAweDEwMCkgIT0gMA0KLQlpbnQgbno7IC8vIFogc2V0IGlmIChueiAmIDB4RkYpID09IDAsIE4gc2V0IGlmIChueiAmIDB4ODA4MCkgIT0gMA0KLQl7DQotCQlpbnQgdGVtcCA9IGNwdS0+ci5mbGFnczsNCi0JCVNFVF9GTEFHUyggdGVtcCApOw0KLQl9DQotCQ0KLWxvb3A6DQotCQ0KLQkvLyBDaGVjayBhbGwgdmFsdWVzDQotCWNoZWNrKCAodW5zaWduZWQpIHNwIC0gMHgxMDAgPCAweDEwMCApOw0KLQljaGVjayggKHVuc2lnbmVkKSBwYyA8IDB4MTAwMDAgKTsNCi0JY2hlY2soICh1bnNpZ25lZCkgYSA8IDB4MTAwICk7DQotCWNoZWNrKCAodW5zaWduZWQpIHggPCAweDEwMCApOw0KLQljaGVjayggKHVuc2lnbmVkKSB5IDwgMHgxMDAgKTsNCi0JDQotCS8vIFJlYWQgaW5zdHJ1Y3Rpb24NCi0JYnl0ZSBjb25zdCogaW5zdHIgPSBDT0RFX1BBR0UoIHBjICk7DQotCWludCBvcGNvZGU7DQotCQ0KLQlpZiAoIENPREVfT0ZGU0VUKH4wKSA9PSB+MCApDQotCXsNCi0JCW9wY29kZSA9IGluc3RyIFtwY107DQotCQlwYysrOw0KLQkJaW5zdHIgKz0gcGM7DQotCX0NCi0JZWxzZQ0KLQl7DQotCQlpbnN0ciArPSBDT0RFX09GRlNFVCggcGMgKTsNCi0JCW9wY29kZSA9ICppbnN0cisrOw0KLQkJcGMrKzsNCi0JfQ0KLQkNCi0JLy8gbG9jYWwgdG8gZnVuY3Rpb24gaW4gY2FzZSBpdCBoZWxwcyBvcHRpbWl6ZXINCi0Jc3RhdGljIGJ5dGUgY29uc3QgY2xvY2tfdGFibGUgWzI1Nl0gPQ0KLQl7Ly8gMCAxIDIgMyA0IDUgNiA3IDggOSBBIEIgQyBEIEUgRg0KLQkJMCw2LDIsOCwzLDMsNSw1LDMsMiwyLDIsNCw0LDYsNiwvLyAwDQotCQkyLDUsMiw4LDQsNCw2LDYsMiw0LDIsNyw0LDQsNyw3LC8vIDENCi0JCTYsNiwwLDgsMywzLDUsNSw0LDIsMiwyLDQsNCw2LDYsLy8gMg0KLQkJMiw1LDIsOCw0LDQsNiw2LDIsNCwyLDcsNCw0LDcsNywvLyAzDQotCQk2LDYsMiw4LDMsMyw1LDUsMywyLDIsMiwzLDQsNiw2LC8vIDQNCi0JCTIsNSwyLDgsNCw0LDYsNiwyLDQsMiw3LDQsNCw3LDcsLy8gNQ0KLQkJNiw2LDIsOCwzLDMsNSw1LDQsMiwyLDIsNSw0LDYsNiwvLyA2DQotCQkyLDUsMiw4LDQsNCw2LDYsMiw0LDIsNyw0LDQsNyw3LC8vIDcNCi0JCTIsNiwyLDYsMywzLDMsMywyLDIsMiwyLDQsNCw0LDQsLy8gOA0KLQkJMiw2LDIsNiw0LDQsNCw0LDIsNSwyLDUsNSw1LDUsNSwvLyA5DQotCQkyLDYsMiw2LDMsMywzLDMsMiwyLDIsMiw0LDQsNCw0LC8vIEENCi0JCTIsNSwyLDUsNCw0LDQsNCwyLDQsMiw0LDQsNCw0LDQsLy8gQg0KLQkJMiw2LDIsOCwzLDMsNSw1LDIsMiwyLDIsNCw0LDYsNiwvLyBDDQotCQkyLDUsMiw4LDQsNCw2LDYsMiw0LDIsNyw0LDQsNyw3LC8vIEQNCi0JCTIsNiwyLDgsMywzLDUsNSwyLDIsMiwyLDQsNCw2LDYsLy8gRQ0KLQkJMiw1LDIsOCw0LDQsNiw2LDIsNCwyLDcsNCw0LDcsNyAvLyBGDQotCX07IC8vIDB4MDAgd2FzIDcgYW5kIDB4MjIgd2FzIDINCi0JDQotCS8vIFVwZGF0ZSB0aW1lDQotCWlmICggc190aW1lID49IDAgKQ0KLQkJZ290byBvdXRfb2ZfdGltZTsNCi0JDQotCSNpZmRlZiBDUFVfSU5TVFJfSE9PSw0KLQl7IENQVV9JTlNUUl9IT09LKCAocGMtMSksICgmaW5zdHIgWy0xXSksIGEsIHgsIHksIEdFVF9TUCgpLCBUSU1FKCkgKTsgfQ0KLQkjZW5kaWYNCi0JDQotCXNfdGltZSArPSBjbG9ja190YWJsZSBbb3Bjb2RlXTsNCi0JDQotCWludCBkYXRhOw0KLQlkYXRhID0gKmluc3RyOw0KLQkNCi0Jc3dpdGNoICggb3Bjb2RlICkNCi0Jew0KLQ0KLS8vIE1hY3Jvcw0KLQ0KLSNkZWZpbmUgR0VUX01TQigpICAgICAgIChpbnN0ciBbMV0pDQotI2RlZmluZSBBRERfUEFHRSggb3V0ICkgKHBjKyssIG91dCA9IGRhdGEgKyAweDEwMCAqIEdFVF9NU0IoKSkNCi0jZGVmaW5lIEdFVF9BRERSKCkgICAgICBHRVRfTEUxNiggaW5zdHIgKQ0KLQ0KLSNkZWZpbmUgUEFHRV9QRU5BTFRZKCBsc2IgKSBzX3RpbWUgKz0gKGxzYikgPj4gODsNCi0NCi0jZGVmaW5lIElOQ19ERUMoIHJlZywgbiApIHJlZyA9IEJZVEUoIG56ID0gcmVnICsgbiApOyBnb3RvIGxvb3A7DQotDQotI2RlZmluZSBJTkRfWSggY3Jvc3MsIG91dCApIHtcDQotCQlpbnQgdGVtcCA9IFJFQURfTE9XKCBkYXRhICkgKyB5O1wNCi0JCW91dCA9IHRlbXAgKyAweDEwMCAqIFJFQURfTE9XKCBCWVRFKCBkYXRhICsgMSApICk7XA0KLQkJY3Jvc3MoIHRlbXAgKTtcDQotCX0NCi0JDQotI2RlZmluZSBJTkRfWCggb3V0ICkge1wNCi0JCWludCB0ZW1wID0gZGF0YSArIHg7XA0KLQkJb3V0ID0gMHgxMDAgKiBSRUFEX0xPVyggQllURSggdGVtcCArIDEgKSApICsgUkVBRF9MT1coIEJZVEUoIHRlbXAgKSApO1wNCi0JfQ0KLQkNCi0jZGVmaW5lIEFSSVRIX0FERFJfTU9ERVMoIG9wIClcDQotY2FzZSBvcCAtIDB4MDQ6IC8qIChpbmQseCkgKi9cDQotCUlORF9YKCBkYXRhIClcDQotCWdvdG8gcHRyIyNvcDtcDQotY2FzZSBvcCArIDB4MEM6IC8qIChpbmQpLHkgKi9cDQotCUlORF9ZKCBQQUdFX1BFTkFMVFksIGRhdGEgKVwNCi0JZ290byBwdHIjI29wO1wNCi1jYXNlIG9wICsgMHgxMDogLyogenAsWCAqL1wNCi0JZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7XA0KLWNhc2Ugb3AgKyAweDAwOiAvKiB6cCAqL1wNCi0JZGF0YSA9IFJFQURfTE9XKCBkYXRhICk7XA0KLQlnb3RvIGltbSMjb3A7XA0KLWNhc2Ugb3AgKyAweDE0OiAvKiBhYnMsWSAqL1wNCi0JZGF0YSArPSB5O1wNCi0JZ290byBpbmQjI29wO1wNCi1jYXNlIG9wICsgMHgxODogLyogYWJzLFggKi9cDQotCWRhdGEgKz0geDtcDQotaW5kIyNvcDpcDQotCVBBR0VfUEVOQUxUWSggZGF0YSApO1wNCi1jYXNlIG9wICsgMHgwODogLyogYWJzICovXA0KLQlBRERfUEFHRSggZGF0YSApO1wNCi1wdHIjI29wOlwNCi0JRkxVU0hfVElNRSgpO1wNCi0JZGF0YSA9IFJFQURfTUVNKCBkYXRhICk7XA0KLQlDQUNIRV9USU1FKCk7XA0KLWNhc2Ugb3AgKyAweDA0OiAvKiBpbW0gKi9cDQotaW1tIyNvcDoNCi0NCi0vLyBUT0RPOiBtb3JlIGVmZmljaWVudCB3YXkgdG8gaGFuZGxlIG5lZ2F0aXZlIGJyYW5jaCB0aGF0IHdyYXBzIFBDIGFyb3VuZA0KLSNkZWZpbmUgQlJBTkNIKCBjb25kIClcDQote1wNCi0JKytwYztcDQotCWlmICggIShjb25kKSApIGdvdG8gbG9vcDtcDQotCXNfdGltZSsrO1wNCi0JaW50IG9mZnNldCA9IFNCWVRFKCBkYXRhICk7XA0KLQlzX3RpbWUgKz0gKEJZVEUocGMpICsgb2Zmc2V0KSA+PiA4ICYgMTtcDQotCXBjID0gV09SRCggcGMgKyBvZmZzZXQgKTtcDQotCWdvdG8gbG9vcDtcDQotfQ0KLQ0KLS8vIE9mdGVuLVVzZWQNCi0NCi0JY2FzZSAweEI1OiAvLyBMREEgenAseA0KLQkJYSA9IG56ID0gUkVBRF9MT1coIEJZVEUoIGRhdGEgKyB4ICkgKTsNCi0JCXBjKys7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QTU6IC8vIExEQSB6cA0KLQkJYSA9IG56ID0gUkVBRF9MT1coIGRhdGEgKTsNCi0JCXBjKys7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4RDA6IC8vIEJORQ0KLQkJQlJBTkNIKCBCWVRFKCBueiApICk7DQotCQ0KLQljYXNlIDB4MjA6IHsgLy8gSlNSDQotCQlpbnQgdGVtcCA9IHBjICsgMTsNCi0JCXBjID0gR0VUX0FERFIoKTsNCi0JCVdSSVRFX1NUQUNLKCBTUCggLTEgKSwgdGVtcCA+PiA4ICk7DQotCQlzcCA9IFNQKCAtMiApOw0KLQkJV1JJVEVfU1RBQ0soIHNwLCB0ZW1wICk7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHg0QzogLy8gSk1QIGFicw0KLQkJcGMgPSBHRVRfQUREUigpOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEU4OiAvLyBJTlgNCi0JCUlOQ19ERUMoIHgsIDEgKQ0KLQkNCi0JY2FzZSAweDEwOiAvLyBCUEwNCi0JCUJSQU5DSCggIUlTX05FRyApDQotCQ0KLQlBUklUSF9BRERSX01PREVTKCAweEM1ICkgLy8gQ01QDQotCQlueiA9IGEgLSBkYXRhOw0KLQkJcGMrKzsNCi0JCWMgPSB+bno7DQotCQlueiAmPSAweEZGOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDMwOiAvLyBCTUkNCi0JCUJSQU5DSCggSVNfTkVHICkNCi0JDQotCWNhc2UgMHhGMDogLy8gQkVRDQotCQlCUkFOQ0goICFCWVRFKCBueiApICk7DQotCQ0KLQljYXNlIDB4OTU6IC8vIFNUQSB6cCx4DQotCQlkYXRhID0gQllURSggZGF0YSArIHggKTsNCi0JY2FzZSAweDg1OiAvLyBTVEEgenANCi0JCXBjKys7DQotCQlXUklURV9MT1coIGRhdGEsIGEgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhDODogLy8gSU5ZDQotCQlJTkNfREVDKCB5LCAxICkNCi0NCi0JY2FzZSAweEE4OiAvLyBUQVkNCi0JCXkgID0gYTsNCi0JCW56ID0gYTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHg5ODogLy8gVFlBDQotCQlhICA9IHk7DQotCQlueiA9IHk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QUQ6ey8vIExEQSBhYnMNCi0JCWludCBhZGRyID0gR0VUX0FERFIoKTsNCi0JCXBjICs9IDI7DQotCQlSRUFEX1BQVSggYWRkciwgYSA9IG56ICk7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHg2MDogLy8gUlRTDQotCQlwYyA9IDEgKyBSRUFEX1NUQUNLKCBzcCApOw0KLQkJcGMgKz0gMHgxMDAgKiBSRUFEX1NUQUNLKCBTUCggMSApICk7DQotCQlzcCA9IFNQKCAyICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQl7DQotCQlpbnQgYWRkcjsNCi0JCQ0KLQljYXNlIDB4OEQ6IC8vIFNUQSBhYnMNCi0JCWFkZHIgPSBHRVRfQUREUigpOw0KLQkJcGMgKz0gMjsNCi0JCWlmICggQ0FOX1dSSVRFX0ZBU1QoIGFkZHIgKSApDQotCQl7DQotCQkJV1JJVEVfRkFTVCggYWRkciwgYSApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0Jc3RhX3B0cjoNCi0JCUZMVVNIX1RJTUUoKTsNCi0JCVdSSVRFX01FTSggYWRkciwgYSApOw0KLQkJQ0FDSEVfVElNRSgpOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDk5OiAvLyBTVEEgYWJzLFkNCi0JCWFkZHIgPSB5ICsgR0VUX0FERFIoKTsNCi0JCXBjICs9IDI7DQotCQlpZiAoIENBTl9XUklURV9GQVNUKCBhZGRyICkgKQ0KLQkJew0KLQkJCVdSSVRFX0ZBU1QoIGFkZHIsIGEgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQlnb3RvIHN0YV9hYnNfeDsNCi0JDQotCWNhc2UgMHg5RDogLy8gU1RBIGFicyxYIChzbGlnaHRseSBtb3JlIGNvbW1vbiB0aGFuIFNUQSBhYnMpDQotCQlhZGRyID0geCArIEdFVF9BRERSKCk7DQotCQlwYyArPSAyOw0KLQkJaWYgKCBDQU5fV1JJVEVfRkFTVCggYWRkciApICkNCi0JCXsNCi0JCQlXUklURV9GQVNUKCBhZGRyLCBhICk7DQotCQkJZ290byBsb29wOw0KLQkJfQ0KLQkJRFVNTVlfUkVBRCggYWRkciwgeCApOw0KLQlzdGFfYWJzX3g6DQotCQlGTFVTSF9USU1FKCk7DQotCQlXUklURV9NRU0oIGFkZHIsIGEgKTsNCi0JCUNBQ0hFX1RJTUUoKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHg5MTogLy8gU1RBIChpbmQpLFkNCi0JCSNkZWZpbmUgTk9fUEFHRV9QRU5BTFRZKCBsc2IgKQ0KLQkJSU5EX1koIE5PX1BBR0VfUEVOQUxUWSwgYWRkciApDQotCQlwYysrOw0KLQkJRFVNTVlfUkVBRCggYWRkciwgeSApOw0KLQkJZ290byBzdGFfcHRyOw0KLQkNCi0JY2FzZSAweDgxOiAvLyBTVEEgKGluZCxYKQ0KLQkJSU5EX1goIGFkZHIgKQ0KLQkJcGMrKzsNCi0JCWdvdG8gc3RhX3B0cjsNCi0JDQotCX0NCi0JDQotCWNhc2UgMHhBOTogLy8gTERBICNpbW0NCi0JCXBjKys7DQotCQlhICA9IGRhdGE7DQotCQlueiA9IGRhdGE7DQotCQlnb3RvIGxvb3A7DQotDQotCS8vIGNvbW1vbiByZWFkIGluc3RydWN0aW9ucw0KLQl7DQotCQlpbnQgYWRkcjsNCi0JCQ0KLQljYXNlIDB4QTE6IC8vIExEQSAoaW5kLFgpDQotCQlJTkRfWCggYWRkciApDQotCQlwYysrOw0KLQkJZ290byBhX256X3JlYWRfYWRkcjsNCi0JDQotCWNhc2UgMHhCMTovLyBMREEgKGluZCksWQ0KLQkJYWRkciA9IFJFQURfTE9XKCBkYXRhICkgKyB5Ow0KLQkJUEFHRV9QRU5BTFRZKCBhZGRyICk7DQotCQlhZGRyICs9IDB4MTAwICogUkVBRF9MT1coIEJZVEUoIGRhdGEgKyAxICkgKTsNCi0JCXBjKys7DQotCQlSRUFEX0ZBU1QoIGFkZHIsIGEgPSBueiApOw0KLQkJaWYgKCBDQU5fUkVBRF9GQVNUKCBhZGRyICkgKQ0KLQkJCWdvdG8gbG9vcDsNCi0JCURVTU1ZX1JFQUQoIGFkZHIsIHkgKTsNCi0JCWdvdG8gYV9uel9yZWFkX2FkZHI7DQotCQ0KLQljYXNlIDB4Qjk6IC8vIExEQSBhYnMsWQ0KLQkJUEFHRV9QRU5BTFRZKCBkYXRhICsgeSApOw0KLQkJYWRkciA9IEdFVF9BRERSKCkgKyB5Ow0KLQkJcGMgKz0gMjsNCi0JCVJFQURfRkFTVCggYWRkciwgYSA9IG56ICk7DQotCQlpZiAoIENBTl9SRUFEX0ZBU1QoIGFkZHIgKSApDQotCQkJZ290byBsb29wOw0KLQkJZ290byBhX256X3JlYWRfYWRkcjsNCi0JDQotCWNhc2UgMHhCRDogLy8gTERBIGFicyxYDQotCQlQQUdFX1BFTkFMVFkoIGRhdGEgKyB4ICk7DQotCQlhZGRyID0gR0VUX0FERFIoKSArIHg7DQotCQlwYyArPSAyOw0KLQkJUkVBRF9GQVNUKCBhZGRyLCBhID0gbnogKTsNCi0JCWlmICggQ0FOX1JFQURfRkFTVCggYWRkciApICkNCi0JCQlnb3RvIGxvb3A7DQotCQlEVU1NWV9SRUFEKCBhZGRyLCB4ICk7DQotCWFfbnpfcmVhZF9hZGRyOg0KLQkJRkxVU0hfVElNRSgpOw0KLQkJYSA9IG56ID0gUkVBRF9NRU0oIGFkZHIgKTsNCi0JCUNBQ0hFX1RJTUUoKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCX0NCi0NCi0vLyBCcmFuY2gNCi0NCi0JY2FzZSAweDUwOiAvLyBCVkMNCi0JCUJSQU5DSCggIShmbGFncyAmIHY0MCkgKQ0KLQkNCi0JY2FzZSAweDcwOiAvLyBCVlMNCi0JCUJSQU5DSCggZmxhZ3MgJiB2NDAgKQ0KLQkNCi0JY2FzZSAweEIwOiAvLyBCQ1MNCi0JCUJSQU5DSCggYyAmIDB4MTAwICkNCi0JDQotCWNhc2UgMHg5MDogLy8gQkNDDQotCQlCUkFOQ0goICEoYyAmIDB4MTAwKSApDQotCQ0KLS8vIExvYWQvc3RvcmUNCi0JDQotCWNhc2UgMHg5NDogLy8gU1RZIHpwLHgNCi0JCWRhdGEgPSBCWVRFKCBkYXRhICsgeCApOw0KLQljYXNlIDB4ODQ6IC8vIFNUWSB6cA0KLQkJcGMrKzsNCi0JCVdSSVRFX0xPVyggZGF0YSwgeSApOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDk2OiAvLyBTVFggenAseQ0KLQkJZGF0YSA9IEJZVEUoIGRhdGEgKyB5ICk7DQotCWNhc2UgMHg4NjogLy8gU1RYIHpwDQotCQlwYysrOw0KLQkJV1JJVEVfTE9XKCBkYXRhLCB4ICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QjY6IC8vIExEWCB6cCx5DQotCQlkYXRhID0gQllURSggZGF0YSArIHkgKTsNCi0JY2FzZSAweEE2OiAvLyBMRFggenANCi0JCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOw0KLQljYXNlIDB4QTI6IC8vIExEWCAjaW1tDQotCQlwYysrOw0KLQkJeCA9IGRhdGE7DQotCQlueiA9IGRhdGE7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QjQ6IC8vIExEWSB6cCx4DQotCQlkYXRhID0gQllURSggZGF0YSArIHggKTsNCi0JY2FzZSAweEE0OiAvLyBMRFkgenANCi0JCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOw0KLQljYXNlIDB4QTA6IC8vIExEWSAjaW1tDQotCQlwYysrOw0KLQkJeSA9IGRhdGE7DQotCQlueiA9IGRhdGE7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QkM6IC8vIExEWSBhYnMsWA0KLQkJZGF0YSArPSB4Ow0KLQkJUEFHRV9QRU5BTFRZKCBkYXRhICk7DQotCWNhc2UgMHhBQzp7Ly8gTERZIGFicw0KLQkJaW50IGFkZHIgPSBkYXRhICsgMHgxMDAgKiBHRVRfTVNCKCk7DQotCQlwYyArPSAyOw0KLQkJRkxVU0hfVElNRSgpOw0KLQkJeSA9IG56ID0gUkVBRF9NRU0oIGFkZHIgKTsNCi0JCUNBQ0hFX1RJTUUoKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweEJFOiAvLyBMRFggYWJzLHkNCi0JCWRhdGEgKz0geTsNCi0JCVBBR0VfUEVOQUxUWSggZGF0YSApOw0KLQljYXNlIDB4QUU6ey8vIExEWCBhYnMNCi0JCWludCBhZGRyID0gZGF0YSArIDB4MTAwICogR0VUX01TQigpOw0KLQkJcGMgKz0gMjsNCi0JCUZMVVNIX1RJTUUoKTsNCi0JCXggPSBueiA9IFJFQURfTUVNKCBhZGRyICk7DQotCQlDQUNIRV9USU1FKCk7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCXsNCi0JCWludCB0ZW1wOw0KLQljYXNlIDB4OEM6IC8vIFNUWSBhYnMNCi0JCXRlbXAgPSB5Ow0KLQkJZ290byBzdG9yZV9hYnM7DQotCQ0KLQljYXNlIDB4OEU6IC8vIFNUWCBhYnMNCi0JCXRlbXAgPSB4Ow0KLQlzdG9yZV9hYnM6DQotCQl7DQotCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJCXBjICs9IDI7DQotCQkJaWYgKCBDQU5fV1JJVEVfRkFTVCggYWRkciApICkNCi0JCQl7DQotCQkJCVdSSVRFX0ZBU1QoIGFkZHIsIHRlbXAgKTsNCi0JCQkJZ290byBsb29wOw0KLQkJCX0NCi0JCQlGTFVTSF9USU1FKCk7DQotCQkJV1JJVEVfTUVNKCBhZGRyLCB0ZW1wICk7DQotCQkJQ0FDSEVfVElNRSgpOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JfQ0KLQ0KLS8vIENvbXBhcmUNCi0NCi0JY2FzZSAweEVDOiB7Ly8gQ1BYIGFicw0KLQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJcGMrKzsNCi0JCUZMVVNIX1RJTUUoKTsNCi0JCWRhdGEgPSBSRUFEX01FTSggYWRkciApOw0KLQkJQ0FDSEVfVElNRSgpOw0KLQkJZ290byBjcHhfZGF0YTsNCi0JfQ0KLQkNCi0JY2FzZSAweEU0OiAvLyBDUFggenANCi0JCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOw0KLQljYXNlIDB4RTA6IC8vIENQWCAjaW1tDQotCWNweF9kYXRhOg0KLQkJbnogPSB4IC0gZGF0YTsNCi0JCXBjKys7DQotCQljID0gfm56Ow0KLQkJbnogJj0gMHhGRjsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhDQzp7Ly8gQ1BZIGFicw0KLQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJcGMrKzsNCi0JCUZMVVNIX1RJTUUoKTsNCi0JCWRhdGEgPSBSRUFEX01FTSggYWRkciApOw0KLQkJQ0FDSEVfVElNRSgpOw0KLQkJZ290byBjcHlfZGF0YTsNCi0JfQ0KLQkNCi0JY2FzZSAweEM0OiAvLyBDUFkgenANCi0JCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOw0KLQljYXNlIDB4QzA6IC8vIENQWSAjaW1tDQotCWNweV9kYXRhOg0KLQkJbnogPSB5IC0gZGF0YTsNCi0JCXBjKys7DQotCQljID0gfm56Ow0KLQkJbnogJj0gMHhGRjsNCi0JCWdvdG8gbG9vcDsNCi0JDQotLy8gTG9naWNhbA0KLQ0KLQlBUklUSF9BRERSX01PREVTKCAweDI1ICkgLy8gQU5EDQotCQlueiA9IChhICY9IGRhdGEpOw0KLQkJcGMrKzsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCUFSSVRIX0FERFJfTU9ERVMoIDB4NDUgKSAvLyBFT1INCi0JCW56ID0gKGEgXj0gZGF0YSk7DQotCQlwYysrOw0KLQkJZ290byBsb29wOw0KLQkNCi0JQVJJVEhfQUREUl9NT0RFUyggMHgwNSApIC8vIE9SQQ0KLQkJbnogPSAoYSB8PSBkYXRhKTsNCi0JCXBjKys7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4MkM6ey8vIEJJVCBhYnMNCi0JCWludCBhZGRyID0gR0VUX0FERFIoKTsNCi0JCXBjICs9IDI7DQotCQlSRUFEX1BQVSggYWRkciwgbnogKTsNCi0JCWZsYWdzID0gKGZsYWdzICYgfnY0MCkgKyAobnogJiB2NDApOw0KLQkJaWYgKCBhICYgbnogKQ0KLQkJCWdvdG8gbG9vcDsNCi0JCW56IDw8PSA4OyAvLyByZXN1bHQgbXVzdCBiZSB6ZXJvLCBldmVuIGlmIE4gYml0IGlzIHNldA0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLQljYXNlIDB4MjQ6IC8vIEJJVCB6cA0KLQkJbnogPSBSRUFEX0xPVyggZGF0YSApOw0KLQkJcGMrKzsNCi0JCWZsYWdzID0gKGZsYWdzICYgfnY0MCkgKyAobnogJiB2NDApOw0KLQkJaWYgKCBhICYgbnogKQ0KLQkJCWdvdG8gbG9vcDsgLy8gWiBzaG91bGQgYmUgY2xlYXIsIGFuZCBueiBtdXN0IGJlIG5vbi16ZXJvIGlmIG56ICYgYSBpcw0KLQkJbnogPDw9IDg7IC8vIHNldCBaIGZsYWcgd2l0aG91dCBhZmZlY3RpbmcgTiBmbGFnDQotCQlnb3RvIGxvb3A7DQotCQkNCi0vLyBBZGQvc3VidHJhY3QNCi0NCi0JQVJJVEhfQUREUl9NT0RFUyggMHhFNSApIC8vIFNCQw0KLQljYXNlIDB4RUI6IC8vIHVub2ZmaWNpYWwgZXF1aXZhbGVudA0KLQkJZGF0YSBePSAweEZGOw0KLQkJZ290byBhZGNfaW1tOw0KLQkNCi0JQVJJVEhfQUREUl9NT0RFUyggMHg2NSApIC8vIEFEQw0KLQlhZGNfaW1tOiB7DQotCQlpbnQgY2FycnkgPSBjID4+IDggJiAxOw0KLQkJaW50IG92ID0gKGEgXiAweDgwKSArIGNhcnJ5ICsgU0JZVEUoIGRhdGEgKTsNCi0JCWZsYWdzID0gKGZsYWdzICYgfnY0MCkgKyAob3YgPj4gMiAmIHY0MCk7DQotCQljID0gbnogPSBhICsgZGF0YSArIGNhcnJ5Ow0KLQkJcGMrKzsNCi0JCWEgPSBCWVRFKCBueiApOw0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLS8vIFNoaWZ0L3JvdGF0ZQ0KLQ0KLQljYXNlIDB4NEE6IC8vIExTUiBBDQotCQljID0gMDsNCi0JY2FzZSAweDZBOiAvLyBST1IgQQ0KLQkJbnogPSBjID4+IDEgJiAweDgwOw0KLQkJYyA9IGEgPDwgODsNCi0JCW56ICs9IGEgPj4gMTsNCi0JCWEgPSBuejsNCi0JCWdvdG8gbG9vcDsNCi0NCi0JY2FzZSAweDBBOiAvLyBBU0wgQQ0KLQkJbnogPSBhIDw8IDE7DQotCQljID0gbno7DQotCQlhID0gQllURSggbnogKTsNCi0JCWdvdG8gbG9vcDsNCi0NCi0JY2FzZSAweDJBOiB7IC8vIFJPTCBBDQotCQlueiA9IGEgPDwgMTsNCi0JCWludCB0ZW1wID0gYyA+PiA4ICYgMTsNCi0JCWMgPSBuejsNCi0JCW56ICs9IHRlbXA7DQotCQlhID0gQllURSggbnogKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDVFOiAvLyBMU1IgYWJzLFgNCi0JCWRhdGEgKz0geDsNCi0JY2FzZSAweDRFOiAvLyBMU1IgYWJzDQotCQljID0gMDsNCi0JY2FzZSAweDZFOiAvLyBST1IgYWJzDQotCXJvcl9hYnM6IHsNCi0JCUFERF9QQUdFKCBkYXRhICk7DQotCQlGTFVTSF9USU1FKCk7DQotCQlpbnQgdGVtcCA9IFJFQURfTUVNKCBkYXRhICk7DQotCQlueiA9IChjID4+IDEgJiAweDgwKSArICh0ZW1wID4+IDEpOw0KLQkJYyA9IHRlbXAgPDwgODsNCi0JCWdvdG8gcm90YXRlX2NvbW1vbjsNCi0JfQ0KLQkNCi0JY2FzZSAweDNFOiAvLyBST0wgYWJzLFgNCi0JCWRhdGEgKz0geDsNCi0JCWdvdG8gcm9sX2FiczsNCi0JDQotCWNhc2UgMHgxRTogLy8gQVNMIGFicyxYDQotCQlkYXRhICs9IHg7DQotCWNhc2UgMHgwRTogLy8gQVNMIGFicw0KLQkJYyA9IDA7DQotCWNhc2UgMHgyRTogLy8gUk9MIGFicw0KLQlyb2xfYWJzOg0KLQkJQUREX1BBR0UoIGRhdGEgKTsNCi0JCW56ID0gYyA+PiA4ICYgMTsNCi0JCUZMVVNIX1RJTUUoKTsNCi0JCW56ICs9IChjID0gUkVBRF9NRU0oIGRhdGEgKSA8PCAxKTsNCi0Jcm90YXRlX2NvbW1vbjoNCi0JCXBjKys7DQotCQlXUklURV9NRU0oIGRhdGEsIEJZVEUoIG56ICkgKTsNCi0JCUNBQ0hFX1RJTUUoKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHg3RTogLy8gUk9SIGFicyxYDQotCQlkYXRhICs9IHg7DQotCQlnb3RvIHJvcl9hYnM7DQotCQ0KLQljYXNlIDB4NzY6IC8vIFJPUiB6cCx4DQotCQlkYXRhID0gQllURSggZGF0YSArIHggKTsNCi0JCWdvdG8gcm9yX3pwOw0KLQkNCi0JY2FzZSAweDU2OiAvLyBMU1IgenAseA0KLQkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7DQotCWNhc2UgMHg0NjogLy8gTFNSIHpwDQotCQljID0gMDsNCi0JY2FzZSAweDY2OiAvLyBST1IgenANCi0Jcm9yX3pwOiB7DQotCQlpbnQgdGVtcCA9IFJFQURfTE9XKCBkYXRhICk7DQotCQlueiA9IChjID4+IDEgJiAweDgwKSArICh0ZW1wID4+IDEpOw0KLQkJYyA9IHRlbXAgPDwgODsNCi0JCWdvdG8gd3JpdGVfbnpfenA7DQotCX0NCi0JDQotCWNhc2UgMHgzNjogLy8gUk9MIHpwLHgNCi0JCWRhdGEgPSBCWVRFKCBkYXRhICsgeCApOw0KLQkJZ290byByb2xfenA7DQotCQ0KLQljYXNlIDB4MTY6IC8vIEFTTCB6cCx4DQotCQlkYXRhID0gQllURSggZGF0YSArIHggKTsNCi0JY2FzZSAweDA2OiAvLyBBU0wgenANCi0JCWMgPSAwOw0KLQljYXNlIDB4MjY6IC8vIFJPTCB6cA0KLQlyb2xfenA6DQotCQlueiA9IGMgPj4gOCAmIDE7DQotCQlueiArPSAoYyA9IFJFQURfTE9XKCBkYXRhICkgPDwgMSk7DQotCQlnb3RvIHdyaXRlX256X3pwOw0KLQkNCi0vLyBJbmNyZW1lbnQvZGVjcmVtZW50DQotDQotCWNhc2UgMHhDQTogLy8gREVYDQotCQlJTkNfREVDKCB4LCAtMSApDQotCQ0KLQljYXNlIDB4ODg6IC8vIERFWQ0KLQkJSU5DX0RFQyggeSwgLTEgKQ0KLQkNCi0JY2FzZSAweEY2OiAvLyBJTkMgenAseA0KLQkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7DQotCWNhc2UgMHhFNjogLy8gSU5DIHpwDQotCQlueiA9IDE7DQotCQlnb3RvIGFkZF9uel96cDsNCi0JDQotCWNhc2UgMHhENjogLy8gREVDIHpwLHgNCi0JCWRhdGEgPSBCWVRFKCBkYXRhICsgeCApOw0KLQljYXNlIDB4QzY6IC8vIERFQyB6cA0KLQkJbnogPSAtMTsNCi0JYWRkX256X3pwOg0KLQkJbnogKz0gUkVBRF9MT1coIGRhdGEgKTsNCi0Jd3JpdGVfbnpfenA6DQotCQlwYysrOw0KLQkJV1JJVEVfTE9XKCBkYXRhLCBueiApOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEZFOiAvLyBJTkMgYWJzLHgNCi0JCWRhdGEgPSB4ICsgR0VUX0FERFIoKTsNCi0JCWdvdG8gaW5jX3B0cjsNCi0JDQotCWNhc2UgMHhFRTogLy8gSU5DIGFicw0KLQkJZGF0YSA9IEdFVF9BRERSKCk7DQotCWluY19wdHI6DQotCQlueiA9IDE7DQotCQlnb3RvIGluY19jb21tb247DQotCQ0KLQljYXNlIDB4REU6IC8vIERFQyBhYnMseA0KLQkJZGF0YSA9IHggKyBHRVRfQUREUigpOw0KLQkJZ290byBkZWNfcHRyOw0KLQkNCi0JY2FzZSAweENFOiAvLyBERUMgYWJzDQotCQlkYXRhID0gR0VUX0FERFIoKTsNCi0JZGVjX3B0cjoNCi0JCW56ID0gLTE7DQotCWluY19jb21tb246DQotCQlGTFVTSF9USU1FKCk7DQotCQlwYyArPSAyOw0KLQkJbnogKz0gUkVBRF9NRU0oIGRhdGEgKTsNCi0JCVdSSVRFX01FTSggZGF0YSwgQllURSggbnogKSApOw0KLQkJQ0FDSEVfVElNRSgpOw0KLQkJZ290byBsb29wOw0KLQkJDQotLy8gVHJhbnNmZXINCi0NCi0JY2FzZSAweEFBOiAvLyBUQVgNCi0JCXggPSBueiA9IGE7DQotCQlnb3RvIGxvb3A7DQotCQkNCi0JY2FzZSAweDhBOiAvLyBUWEENCi0JCWEgPSBueiA9IHg7DQotCQlnb3RvIGxvb3A7DQotDQotCWNhc2UgMHg5QTogLy8gVFhTDQotCQlTRVRfU1AoIHggKTsgLy8gdmVyaWZpZWQgKG5vIGZsYWcgY2hhbmdlKQ0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEJBOiAvLyBUU1gNCi0JCXggPSBueiA9IEdFVF9TUCgpOw0KLQkJZ290byBsb29wOw0KLQkNCi0vLyBTdGFjaw0KLQkNCi0JY2FzZSAweDQ4OiAvLyBQSEENCi0JCXNwID0gU1AoIC0xICk7DQotCQlXUklURV9TVEFDSyggc3AsIGEgKTsNCi0JCWdvdG8gbG9vcDsNCi0JCQ0KLQljYXNlIDB4Njg6IC8vIFBMQQ0KLQkJYSA9IG56ID0gUkVBRF9TVEFDSyggc3AgKTsNCi0JCXNwID0gU1AoIDEgKTsNCi0JCWdvdG8gbG9vcDsNCi0JCQ0KLQljYXNlIDB4NDA6ey8vIFJUSQ0KLQkJcGMgID0gUkVBRF9TVEFDSyggU1AoIDEgKSApOw0KLQkJcGMgKz0gUkVBRF9TVEFDSyggU1AoIDIgKSApICogMHgxMDA7DQotCQlpbnQgdGVtcCA9IFJFQURfU1RBQ0soIHNwICk7DQotCQlzcCA9IFNQKCAzICk7DQotCQlkYXRhID0gZmxhZ3M7DQotCQlTRVRfRkxBR1MoIHRlbXAgKTsNCi0JCWNwdS0+ci5mbGFncyA9IGZsYWdzOyAvLyB1cGRhdGUgZXh0ZXJuYWxseS12aXNpYmxlIEkgZmxhZw0KLQkJaW50IGRlbHRhID0gcy5iYXNlIC0gY3B1LT5pcnFfdGltZTsNCi0JCWlmICggZGVsdGEgPD0gMCApIGdvdG8gbG9vcDsgLy8gZW5kX3RpbWUgPCBpcnFfdGltZQ0KLQkJaWYgKCBmbGFncyAmIGkwNCApIGdvdG8gbG9vcDsNCi0JCXNfdGltZSArPSBkZWx0YTsNCi0JCXMuYmFzZSA9IGNwdS0+aXJxX3RpbWU7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHgyODp7Ly8gUExQDQotCQlpbnQgdGVtcCA9IFJFQURfU1RBQ0soIHNwICk7DQotCQlzcCA9IFNQKCAxICk7DQotCQlpbnQgY2hhbmdlZCA9IGZsYWdzIF4gdGVtcDsNCi0JCVNFVF9GTEFHUyggdGVtcCApOw0KLQkJaWYgKCAhKGNoYW5nZWQgJiBpMDQpICkNCi0JCQlnb3RvIGxvb3A7IC8vIEkgZmxhZyBkaWRuJ3QgY2hhbmdlDQotCQlpZiAoIGZsYWdzICYgaTA0ICkNCi0JCQlnb3RvIGhhbmRsZV9zZWk7DQotCQlnb3RvIGhhbmRsZV9jbGk7DQotCX0NCi0JDQotCWNhc2UgMHgwODp7Ly8gUEhQDQotCQlpbnQgdGVtcDsNCi0JCUdFVF9GTEFHUyggdGVtcCApOw0KLQkJc3AgPSBTUCggLTEgKTsNCi0JCVdSSVRFX1NUQUNLKCBzcCwgdGVtcCB8IChiMTAgfCByMjApICk7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHg2Qzp7Ly8gSk1QIChpbmQpDQotCQlkYXRhID0gR0VUX0FERFIoKTsNCi0JCWJ5dGUgY29uc3QqIHBhZ2UgPSBDT0RFX1BBR0UoIGRhdGEgKTsNCi0JCXBjID0gcGFnZSBbQ09ERV9PRkZTRVQoIGRhdGEgKV07DQotCQlkYXRhID0gKGRhdGEgJiAweEZGMDApICsgKChkYXRhICsgMSkgJiAweEZGKTsNCi0JCXBjICs9IHBhZ2UgW0NPREVfT0ZGU0VUKCBkYXRhICldICogMHgxMDA7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHgwMDogLy8gQlJLDQotCQlnb3RvIGhhbmRsZV9icms7DQotCQ0KLS8vIEZsYWdzDQotDQotCWNhc2UgMHgzODogLy8gU0VDDQotCQljID0gMHgxMDA7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4MTg6IC8vIENMQw0KLQkJYyA9IDA7DQotCQlnb3RvIGxvb3A7DQotCQkNCi0JY2FzZSAweEI4OiAvLyBDTFYNCi0JCWZsYWdzICY9IH52NDA7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4RDg6IC8vIENMRA0KLQkJZmxhZ3MgJj0gfmQwODsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhGODogLy8gU0VEDQotCQlmbGFncyB8PSBkMDg7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4NTg6IC8vIENMSQ0KLQkJaWYgKCAhKGZsYWdzICYgaTA0KSApDQotCQkJZ290byBsb29wOw0KLQkJZmxhZ3MgJj0gfmkwNDsNCi0JaGFuZGxlX2NsaTogew0KLQkJLy9kcHJpbnRmKCAiQ0xJIGF0ICVkXG4iLCBUSU1FICk7DQotCQljcHUtPnIuZmxhZ3MgPSBmbGFnczsgLy8gdXBkYXRlIGV4dGVybmFsbHktdmlzaWJsZSBJIGZsYWcNCi0JCWludCBkZWx0YSA9IHMuYmFzZSAtIGNwdS0+aXJxX3RpbWU7DQotCQlpZiAoIGRlbHRhIDw9IDAgKQ0KLQkJew0KLQkJCWlmICggVElNRSgpIDwgY3B1LT5pcnFfdGltZSApDQotCQkJCWdvdG8gbG9vcDsNCi0JCQlnb3RvIGRlbGF5ZWRfY2xpOw0KLQkJfQ0KLQkJcy5iYXNlID0gY3B1LT5pcnFfdGltZTsNCi0JCXNfdGltZSArPSBkZWx0YTsNCi0JCWlmICggc190aW1lIDwgMCApDQotCQkJZ290byBsb29wOw0KLQkJDQotCQlpZiAoIGRlbHRhID49IHNfdGltZSArIDEgKQ0KLQkJew0KLQkJCS8vIGRlbGF5ZWQgaXJxIHVudGlsIGFmdGVyIG5leHQgaW5zdHJ1Y3Rpb24NCi0JCQlzLmJhc2UgKz0gc190aW1lICsgMTsNCi0JCQlzX3RpbWUgPSAtMTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCS8vIFRPRE86IGltcGxlbWVudA0KLQlkZWxheWVkX2NsaToNCi0JCWRwcmludGYoICJEZWxheWVkIENMSSBub3QgZW11bGF0ZWRcbiIgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDc4OiAvLyBTRUkNCi0JCWlmICggZmxhZ3MgJiBpMDQgKQ0KLQkJCWdvdG8gbG9vcDsNCi0JCWZsYWdzIHw9IGkwNDsNCi0JaGFuZGxlX3NlaTogew0KLQkJY3B1LT5yLmZsYWdzID0gZmxhZ3M7IC8vIHVwZGF0ZSBleHRlcm5hbGx5LXZpc2libGUgSSBmbGFnDQotCQlpbnQgZGVsdGEgPSBzLmJhc2UgLSBjcHUtPmVuZF90aW1lOw0KLQkJcy5iYXNlID0gY3B1LT5lbmRfdGltZTsNCi0JCXNfdGltZSArPSBkZWx0YTsNCi0JCWlmICggc190aW1lIDwgMCApDQotCQkJZ290byBsb29wOw0KLQkJDQotCQlkcHJpbnRmKCAiRGVsYXllZCBTRUkgbm90IGVtdWxhdGVkXG4iICk7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotLy8gVW5vZmZpY2lhbA0KLQkNCi0JLy8gU0tXIC0gc2tpcCB3b3JkDQotCWNhc2UgMHgxQzogY2FzZSAweDNDOiBjYXNlIDB4NUM6IGNhc2UgMHg3QzogY2FzZSAweERDOiBjYXNlIDB4RkM6DQotCQlQQUdFX1BFTkFMVFkoIGRhdGEgKyB4ICk7DQotCWNhc2UgMHgwQzoNCi0JCXBjKys7DQotCS8vIFNLQiAtIHNraXAgYnl0ZQ0KLQljYXNlIDB4NzQ6IGNhc2UgMHgwNDogY2FzZSAweDE0OiBjYXNlIDB4MzQ6IGNhc2UgMHg0NDogY2FzZSAweDU0OiBjYXNlIDB4NjQ6DQotCWNhc2UgMHg4MDogY2FzZSAweDgyOiBjYXNlIDB4ODk6IGNhc2UgMHhDMjogY2FzZSAweEQ0OiBjYXNlIDB4RTI6IGNhc2UgMHhGNDoNCi0JCXBjKys7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQkvLyBOT1ANCi0JY2FzZSAweEVBOiBjYXNlIDB4MUE6IGNhc2UgMHgzQTogY2FzZSAweDVBOiBjYXNlIDB4N0E6IGNhc2UgMHhEQTogY2FzZSAweEZBOg0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSBoYWx0X29wY29kZTogLy8gSExUIC0gaGFsdCBwcm9jZXNzb3INCi0JCWlmICggcGMtLSA+IDB4MTAwMDAgKQ0KLQkJew0KLQkJCS8vIGhhbmRsZSB3cmFwLWFyb3VuZCAoYXNzdW1lcyBjYWxsZXIgaGFzIHB1dCBwYWdlIG9mIEhMVCBhdCAweDEwMDAwKQ0KLQkJCXBjID0gV09SRCggcGMgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCWNhc2UgMHgwMjogY2FzZSAweDEyOiAgICAgICAgICAgIGNhc2UgMHgzMjogY2FzZSAweDQyOiBjYXNlIDB4NTI6DQotCWNhc2UgMHg2MjogY2FzZSAweDcyOiBjYXNlIDB4OTI6IGNhc2UgMHhCMjogY2FzZSAweEQyOiBjYXNlIDB4RjI6DQotCQlnb3RvIHN0b3A7DQotCQ0KLS8vIFVuaW1wbGVtZW50ZWQNCi0JDQotCWNhc2UgMHhGRjogIC8vIGZvcmNlIDI1Ni1lbnRyeSBqdW1wIHRhYmxlIGZvciBvcHRpbWl6YXRpb24gcHVycG9zZXMNCi0JCWMgfD0gMTsgLy8gY29tcGlsZXIgZG9lc24ndCBrbm93IHRoYXQgdGhpcyB3b24ndCBhZmZlY3QgYW55dGhpbmcNCi0JZGVmYXVsdDoNCi0JCWNoZWNrKCAodW5zaWduZWQpIG9wY29kZSA8IDB4MTAwICk7DQotCQkNCi0JCSNpZmRlZiBVTklNUExfSU5TVFINCi0JCQlVTklNUExfSU5TVFIoKTsNCi0JCSNlbmRpZg0KLQkJDQotCQkvLyBBdCBsZWFzdCBza2lwIG92ZXIgcHJvcGVyIG51bWJlciBvZiBieXRlcyBpbnN0cnVjdGlvbiB1c2VzDQotCQlzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCBpbGxvcF9sZW5zIFs4XSA9IHsNCi0JCQkweDQwLCAweDQwLCAweDQwLCAweDgwLCAweDQwLCAweDQwLCAweDgwLCAweEEwDQotCQl9Ow0KLQkJaW50IG9wY29kZSA9IGluc3RyIFstMV07DQotCQlpbnQgbGVuID0gaWxsb3BfbGVucyBbb3Bjb2RlID4+IDIgJiA3XSA+PiAob3Bjb2RlIDw8IDEgJiA2KSAmIDM7DQotCQlpZiAoIG9wY29kZSA9PSAweDlDICkNCi0JCQlsZW4gPSAyOw0KLQkJcGMgKz0gbGVuOw0KLQkJDQotCQkvLyBBY2NvdW50IGZvciBleHRyYSBjbG9jaw0KLQkJaWYgKCAob3Bjb2RlID4+IDQpID09IDB4MEIgKQ0KLQkJew0KLQkJCWlmICggb3Bjb2RlID09IDB4QjMgKQ0KLQkJCQlkYXRhID0gUkVBRF9MT1coIGRhdGEgKTsNCi0JCQlpZiAoIG9wY29kZSAhPSAweEI3ICkNCi0JCQkJUEFHRV9QRU5BTFRZKCBkYXRhICsgeSApOw0KLQkJfQ0KLQkJZ290byBsb29wOw0KLQl9DQotCWFzc2VydCggZmFsc2UgKTsgLy8gY2F0Y2ggbWlzc2luZyAnZ290byBsb29wJyBvciBhY2NpZGVudGFsICdicmVhaycNCi0JDQotCWludCByZXN1bHRfOw0KLWhhbmRsZV9icms6DQotCXBjKys7DQotCXJlc3VsdF8gPSBiMTAgfCA0Ow0KLQkNCi0jaWZkZWYgQ1BVX0RPTkUNCi1pbnRlcnJ1cHQ6DQotI2VuZGlmDQotCXsNCi0JCXNfdGltZSArPSA3Ow0KLQkJDQotCQkvLyBTYXZlIFBDIGFuZCByZWFkIHZlY3Rvcg0KLQkJV1JJVEVfU1RBQ0soIFNQKCAtMSApLCBwYyA+PiA4ICk7DQotCQlXUklURV9TVEFDSyggU1AoIC0yICksIHBjICk7DQotCQlwYyA9IEdFVF9MRTE2KCAmUkVBRF9DT0RFKCAweEZGRkEgKSArIChyZXN1bHRfICYgNCkgKTsNCi0JCQ0KLQkJLy8gU2F2ZSBmbGFncw0KLQkJaW50IHRlbXA7DQotCQlHRVRfRkxBR1MoIHRlbXAgKTsNCi0JCXRlbXAgfD0gcjIwICsgKHJlc3VsdF8gJiBiMTApOyAvLyBCIGZsYWcgc2V0IGZvciBCUksNCi0JCXNwID0gU1AoIC0zICk7DQotCQlXUklURV9TVEFDSyggc3AsIHRlbXAgKTsNCi0JCQ0KLQkJLy8gVXBkYXRlIEkgZmxhZyBpbiBleHRlcm5hbGx5LXZpc2libGUgZmxhZ3MNCi0JCWNwdS0+ci5mbGFncyA9IChmbGFncyB8PSBpMDQpOw0KLQkJDQotCQkvLyBVcGRhdGUgdGltZQ0KLQkJaW50IGRlbHRhID0gcy5iYXNlIC0gY3B1LT5lbmRfdGltZTsNCi0JCWlmICggZGVsdGEgPj0gMCApDQotCQkJZ290byBsb29wOw0KLQkJc190aW1lICs9IGRlbHRhOw0KLQkJcy5iYXNlID0gY3B1LT5lbmRfdGltZTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi1vdXRfb2ZfdGltZToNCi0JcGMtLTsNCi0JDQotCS8vIE9wdGlvbmFsIGFjdGlvbiB0aGF0IHRyaWdnZXJzIGludGVycnVwdCBvciBjaGFuZ2VzIGlycS9lbmQgdGltZQ0KLQkjaWZkZWYgQ1BVX0RPTkUNCi0Jew0KLQkJQ1BVX0RPTkUoIHJlc3VsdF8gKTsNCi0JCWlmICggcmVzdWx0XyA+PSAwICkNCi0JCQlnb3RvIGludGVycnVwdDsNCi0JCWlmICggc190aW1lIDwgMCApDQotCQkJZ290byBsb29wOw0KLQl9DQotCSNlbmRpZg0KLXN0b3A6DQotCQ0KLQkvLyBGbHVzaCBjYWNoZWQgc3RhdGUNCi0JY3B1LT5yLnBjID0gcGM7DQotCWNwdS0+ci5zcCA9IEdFVF9TUCgpOw0KLQljcHUtPnIuYSAgPSBhOw0KLQljcHUtPnIueCAgPSB4Ow0KLQljcHUtPnIueSAgPSB5Ow0KLQ0KLQlpbnQgdGVtcDsNCi0JR0VUX0ZMQUdTKCB0ZW1wICk7DQotCWNwdS0+ci5mbGFncyA9IHRlbXA7DQotCQ0KLQljcHUtPmNwdV9zdGF0ZV8uYmFzZSA9IHMuYmFzZTsNCi0JY3B1LT5jcHVfc3RhdGVfLnRpbWUgPSBzX3RpbWU7DQotCWNwdS0+Y3B1X3N0YXRlID0gJmNwdS0+Y3B1X3N0YXRlXzsNCi19DQorLy8gTkVTIDY1MDIgY3B1IGVtdWxhdG9yIHJ1biBmdW5jdGlvbgorCisjaWYgMAorLyogRGVmaW5lIHRoZXNlIG1hY3JvcyBpbiB0aGUgc291cmNlIGZpbGUgYmVmb3JlICNpbmNsdWRpbmcgdGhpcyBmaWxlLgorLSBQYXJhbWV0ZXJzIG1pZ2h0IGJlIGV4cHJlc3Npb25zLCBzbyB0aGV5IGFyZSBiZXN0IGV2YWx1YXRlZCBvbmx5IG9uY2UsCit0aG91Z2ggdGhleSBORVZFUiBoYXZlIHNpZGUtZWZmZWN0cywgc28gbXVsdGlwbGUgZXZhbHVhdGlvbiBpcyBPSy4KKy0gT3V0cHV0IHBhcmFtZXRlcnMgbWlnaHQgYmUgYSBtdWx0aXBsZS1hc3NpZ25tZW50IGV4cHJlc3Npb24gbGlrZSAiYT14IiwKK3NvIHRoZXkgbXVzdCBOT1QgYmUgcGFyZW50aGVzaXplZC4KKy0gRXhjZXB0IHdoZXJlIG5vdGVkLCB0aW1lKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHdpbGwgTk9UIHdvcmsKK2NvcnJlY3RseSBpbnNpZGUgYSBtYWNyby4gVElNRSgpIGlzIGFsd2F5cyBjb3JyZWN0LCBhbmQgRkxVU0hfVElNRSgpIGFuZAorQ0FDSEVfVElNRSgpIGFsbG93IHRoZSB0aW1lIGNoYW5naW5nIGZ1bmN0aW9ucyB0byB3b3JrLgorLSBNYWNyb3MgInJldHVybmluZyIgdm9pZCBtYXkgdXNlIGEge30gc3RhdGVtZW50IGJsb2NrLiAqLworCisJLy8gMCA8PSBhZGRyIDw9IDB4RkZGRiArIHBhZ2Vfc2l6ZQorCS8vIHRpbWUgZnVuY3Rpb25zIGNhbiBiZSB1c2VkCisJaW50ICBSRUFEX01FTSggIGFkZHJfdCApOworCXZvaWQgV1JJVEVfTUVNKCBhZGRyX3QsIGludCBkYXRhICk7CisJLy8gMCA8PSBSRUFEX01FTSgpIDw9IDB4RkYKKwkKKwkvLyAwIDw9IGFkZHIgPD0gMHgxRkYKKwlpbnQgIFJFQURfTE9XKCAgYWRkcl90ICk7CisJdm9pZCBXUklURV9MT1coIGFkZHJfdCwgaW50IGRhdGEgKTsKKwkvLyAwIDw9IFJFQURfTE9XKCkgPD0gMHhGRgorCisJLy8gT2Z0ZW4tdXNlZCBpbnN0cnVjdGlvbnMgYXR0ZW1wdCB0aGVzZSBiZWZvcmUgdXNpbmcgYSBub3JtYWwgbWVtb3J5IGFjY2Vzcy4KKwkvLyBPcHRpb25hbDsgZGVmYXVsdHMgdG8gUkVBRF9NRU0oKSBhbmQgV1JJVEVfTUVNKCkKKwlib29sIENBTl9SRUFEX0ZBU1QoIGFkZHJfdCApOyAvLyBpZiB0cnVlLCB1c2VzIHJlc3VsdCBvZiBSRUFEX0ZBU1QKKwl2b2lkIFJFQURfRkFTVCggYWRkcl90LCBpbnQmIG91dCApOyAvLyBBTFdBWVMgY2FsbGVkIEJFRk9SRSBDQU5fUkVBRF9GQVNUCisJYm9vbCBDQU5fV1JJVEVfRkFTVCggYWRkcl90ICk7IC8vIGlmIHRydWUsIHVzZXMgV1JJVEVfRkFTVCBpbnN0ZWFkIG9mIFdSSVRFX01FTQorCXZvaWQgV1JJVEVfRkFTVCggYWRkcl90LCBpbnQgZGF0YSApOworCisJLy8gVXNlZCBieSBpbnN0cnVjdGlvbnMgbW9zdCBvZnRlbiB1c2VkIHRvIGFjY2VzcyB0aGUgTkVTIFBQVSAoTERBIGFicyBhbmQgQklUIGFicykuCisJLy8gT3B0aW9uYWw7IGRlZmF1bHRzIHRvIFJFQURfTUVNLgorCXZvaWQgUkVBRF9QUFUoICBhZGRyX3QsIGludCYgb3V0ICk7CisJLy8gMCA8PSBvdXQgPD0gMHhGRgorCisvLyBUaGUgZm9sbG93aW5nIGNhbiBiZSB1c2VkIHdpdGhpbiBtYWNyb3M6CisJCisJLy8gQ3VycmVudCB0aW1lCisJdGltZV90IFRJTUUoKTsKKwkKKwkvLyBBbGxvd3MgdXNlIG9mIHRpbWUgZnVuY3Rpb25zCisJdm9pZCBGTFVTSF9USU1FKCk7CisJCisJLy8gTXVzdCBiZSB1c2VkIGJlZm9yZSBlbmQgb2YgbWFjcm8gaWYgRkxVU0hfVElNRSgpIHdhcyB1c2VkIGVhcmxpZXIKKwl2b2lkIENBQ0hFX1RJTUUoKTsKKworLy8gQ29uZmlndXJhdGlvbiAob3B0aW9uYWw7IGNvbW1lbnRlZCBiZWhhdmlvciBpZiBkZWZpbmVkKQorCQorCS8vIEVtdWxhdGVzIGR1bW15IHJlYWRzIGZvciBpbmRleGVkIGluc3RydWN0aW9ucworCSNkZWZpbmUgTkVTX0NQVV9EVU1NWV9SRUFEUyAxCisJCisJLy8gT3B0aW1pemVzIGFzIGlmIG1hcF9jb2RlKCAwLCAweDEwMDAwICsgY3B1X3BhZGRpbmcsIEZMQVRfTUVNICkgaXMgYWx3YXlzIGluIGVmZmVjdAorCSNkZWZpbmUgRkxBVF9NRU0gbXlfbWVtX2FycmF5CisJCisJLy8gRXhwYW5kZWQganVzdCBiZWZvcmUgYmVnaW5uaW5nIG9mIGNvZGUsIHRvIGhlbHAgZGVidWdnZXIKKwkjZGVmaW5lIENQVV9CRUdJTiB2b2lkIG15X3J1bl9jcHUoKSB7CisJCisjZW5kaWYKKworLyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDggU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91CitjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKK3ZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzCittb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCitkZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8KKworLy8gQWxsb3dzIE1XQ1cgZGVidWdnZXIgdG8gc3RlcCB0aHJvdWdoIGNvZGUgcHJvcGVybHkKKyNpZmRlZiBDUFVfQkVHSU4KKwlDUFVfQkVHSU4KKyNlbmRpZgorCisvLyBUaW1lCisjZGVmaW5lIFRJTUUoKSAgICAgICAgICAoc190aW1lICsgcy5iYXNlKQorI2RlZmluZSBGTFVTSF9USU1FKCkgICAge3MudGltZSA9IHNfdGltZSAtIHRpbWVfb2Zmc2V0O30KKyNkZWZpbmUgQ0FDSEVfVElNRSgpICAgIHtzX3RpbWUgPSBzLnRpbWUgKyB0aW1lX29mZnNldDt9CisKKy8vIERlZmF1bHRzCisjaWZuZGVmIENBTl9XUklURV9GQVNUCisJI2RlZmluZSBDQU5fV1JJVEVfRkFTVCggYWRkciApICAgICAgMAorCSNkZWZpbmUgV1JJVEVfRkFTVCggYWRkciwgZGF0YSApCisjZW5kaWYKKworI2lmbmRlZiBDQU5fUkVBRF9GQVNUCisJI2RlZmluZSBDQU5fUkVBRF9GQVNUKCBhZGRyICkgICAgICAgMAorCSNkZWZpbmUgUkVBRF9GQVNUKCBhZGRyLCBvdXQgKQorI2VuZGlmCisKKyNpZm5kZWYgUkVBRF9QUFUKKwkjZGVmaW5lIFJFQURfUFBVKCBhZGRyLCBvdXQgKVwKKwl7XAorCQlGTFVTSF9USU1FKCk7XAorCQlvdXQgPSBSRUFEX01FTSggYWRkciApO1wKKwkJQ0FDSEVfVElNRSgpO1wKKwl9CisjZW5kaWYKKworI2RlZmluZSBSRUFEX1NUQUNLICBSRUFEX0xPVworI2RlZmluZSBXUklURV9TVEFDSyBXUklURV9MT1cKKworLy8gRHVtbXkgcmVhZHMKKyNpZmRlZiBORVNfQ1BVX0RVTU1ZX1JFQURTCisJLy8gVE9ETzogb3B0aW1pemUgdGltZSBoYW5kbGluZworCSNkZWZpbmUgRFVNTVlfUkVBRCggYWRkciwgaWR4ICkgXAorCQlpZiAoIChhZGRyICYgMHhGRikgPCBpZHggKVwKKwkJe1wKKwkJCWludCBjb25zdCB0aW1lX29mZnNldCA9IDE7XAorCQkJRkxVU0hfVElNRSgpO1wKKwkJCVJFQURfTUVNKCAoYWRkciAtIDB4MTAwKSApO1wKKwkJCUNBQ0hFX1RJTUUoKTtcCisJCX0KKyNlbHNlCisJI2RlZmluZSBEVU1NWV9SRUFEKCBhZGRyLCBpZHggKQorI2VuZGlmCisKKy8vIENvZGUKKyNpZmRlZiBGTEFUX01FTQorCSNkZWZpbmUgQ09ERV9QQUdFKCAgIGFkZHIgKSAoRkxBVF9NRU0pCisJI2RlZmluZSBDT0RFX09GRlNFVCggYWRkciApIChhZGRyKQorI2Vsc2UKKwkjZGVmaW5lIENPREVfUEFHRSggYWRkciApICAgKHMuY29kZV9tYXAgW05FU19DUFVfUEFHRSggYWRkciApXSkKKwkjZGVmaW5lIENPREVfT0ZGU0VUKCBhZGRyICkgTkVTX0NQVV9PRkZTRVQoIGFkZHIgKQorI2VuZGlmCisjZGVmaW5lIFJFQURfQ09ERSggYWRkciApICAgKENPREVfUEFHRSggYWRkciApIFtDT0RFX09GRlNFVCggYWRkciApXSkKKworLy8gU3RhY2sKKyNkZWZpbmUgU0VUX1NQKCB2ICkgKHNwID0gKCh2KSArIDEpIHwgMHgxMDApCisjZGVmaW5lIEdFVF9TUCgpICAgICgoc3AgLSAxKSAmIDB4RkYpCisjZGVmaW5lIFNQKCBvICkgICAgICgoc3AgKyAobyAtIChvPjApKjB4MTAwKSkgfCAweDEwMCkKKworLy8gVHJ1bmNhdGlvbgorI2RlZmluZSBCWVRFKCAgbiApICgodWludDhfdCApIChuKSkgLyogKHVuc2lnbmVkKSBuICYgMHhGRiAqLworI2RlZmluZSBTQllURSggbiApICgoaW50OF90ICApIChuKSkgLyogKEJZVEUoIG4gKSBeIDB4ODApIC0gMHg4MCAqLworI2RlZmluZSBXT1JEKCAgbiApICgodWludDE2X3QpIChuKSkgLyogKHVuc2lnbmVkKSBuICYgMHhGRkZGICovCisKKy8vIEZsYWdzIHdpdGggaGV4IHZhbHVlIGZvciBjbGFyaXR5IHdoZW4gdXNlZCBhcyBtYXNrLgorLy8gU3RvcmVkIGluIGluZGljYXRlZCB2YXJpYWJsZSBkdXJpbmcgZW11bGF0aW9uLgoraW50IGNvbnN0IG44MCA9IDB4ODA7IC8vIG56CitpbnQgY29uc3QgdjQwID0gMHg0MDsgLy8gZmxhZ3MKK2ludCBjb25zdCByMjAgPSAweDIwOworaW50IGNvbnN0IGIxMCA9IDB4MTA7CitpbnQgY29uc3QgZDA4ID0gMHgwODsgLy8gZmxhZ3MKK2ludCBjb25zdCBpMDQgPSAweDA0OyAvLyBmbGFncworaW50IGNvbnN0IHowMiA9IDB4MDI7IC8vIG56CitpbnQgY29uc3QgYzAxID0gMHgwMTsgLy8gYworCisjZGVmaW5lIElTX05FRyAobnogJiAweDgwODApCisKKyNkZWZpbmUgR0VUX0ZMQUdTKCBvdXQgKSBcCit7XAorCW91dCA9IGZsYWdzICYgKHY0MCB8IGQwOCB8IGkwNCk7XAorCW91dCArPSAoKG56ID4+IDgpIHwgbnopICYgbjgwO1wKKwlvdXQgKz0gYyA+PiA4ICYgYzAxO1wKKwlpZiAoICFCWVRFKCBueiApIClcCisJCW91dCArPSB6MDI7XAorfQorCisjZGVmaW5lIFNFVF9GTEFHUyggaW4gKSBcCit7XAorCWZsYWdzID0gaW4gJiAodjQwIHwgZDA4IHwgaTA0KTtcCisJYyA9IG56ID0gaW4gPDwgODtcCisJbnogKz0gfmluICYgejAyO1wKK30KKworeworCWludCBjb25zdCB0aW1lX29mZnNldCA9IDA7CisJCisJLy8gTG9jYWwgc3RhdGUKKwlzdHJ1Y3QgY3B1X3N0YXRlX3QgczsKKwkjaWZkZWYgRkxBVF9NRU0KKwkJcy5iYXNlID0gY3B1LT5jcHVfc3RhdGVfLmJhc2U7CisJI2Vsc2UKKwkJcyA9IGNwdS0+Y3B1X3N0YXRlXzsKKwkjZW5kaWYKKwljcHUtPmNwdV9zdGF0ZSA9ICZzOworCWludCBzX3RpbWUgPSBjcHUtPmNwdV9zdGF0ZV8udGltZTsgLy8gaGVscHMgZXZlbiBvbiB4ODYKKwkKKwkvLyBSZWdpc3RlcnMKKwlpbnQgcGMgPSBjcHUtPnIucGM7CisJaW50IGEgID0gY3B1LT5yLmE7CisJaW50IHggID0gY3B1LT5yLng7CisJaW50IHkgID0gY3B1LT5yLnk7CisJaW50IHNwOworCVNFVF9TUCggY3B1LT5yLnNwICk7CisJCisJLy8gRmxhZ3MKKwlpbnQgZmxhZ3M7CisJaW50IGM7ICAvLyBjYXJyeSBzZXQgaWYgKGMgJiAweDEwMCkgIT0gMAorCWludCBuejsgLy8gWiBzZXQgaWYgKG56ICYgMHhGRikgPT0gMCwgTiBzZXQgaWYgKG56ICYgMHg4MDgwKSAhPSAwCisJeworCQlpbnQgdGVtcCA9IGNwdS0+ci5mbGFnczsKKwkJU0VUX0ZMQUdTKCB0ZW1wICk7CisJfQorCQorbG9vcDoKKwkKKwkvLyBDaGVjayBhbGwgdmFsdWVzCisJY2hlY2soICh1bnNpZ25lZCkgc3AgLSAweDEwMCA8IDB4MTAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgcGMgPCAweDEwMDAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgYSA8IDB4MTAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgeCA8IDB4MTAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgeSA8IDB4MTAwICk7CisJCisJLy8gUmVhZCBpbnN0cnVjdGlvbgorCWJ5dGUgY29uc3QqIGluc3RyID0gQ09ERV9QQUdFKCBwYyApOworCWludCBvcGNvZGU7CisJCisJaWYgKCBDT0RFX09GRlNFVCh+MCkgPT0gfjAgKQorCXsKKwkJb3Bjb2RlID0gaW5zdHIgW3BjXTsKKwkJcGMrKzsKKwkJaW5zdHIgKz0gcGM7CisJfQorCWVsc2UKKwl7CisJCWluc3RyICs9IENPREVfT0ZGU0VUKCBwYyApOworCQlvcGNvZGUgPSAqaW5zdHIrKzsKKwkJcGMrKzsKKwl9CisJCisJLy8gbG9jYWwgdG8gZnVuY3Rpb24gaW4gY2FzZSBpdCBoZWxwcyBvcHRpbWl6ZXIKKwlzdGF0aWMgYnl0ZSBjb25zdCBjbG9ja190YWJsZSBbMjU2XSA9CisJey8vIDAgMSAyIDMgNCA1IDYgNyA4IDkgQSBCIEMgRCBFIEYKKwkJMCw2LDIsOCwzLDMsNSw1LDMsMiwyLDIsNCw0LDYsNiwvLyAwCisJCTIsNSwyLDgsNCw0LDYsNiwyLDQsMiw3LDQsNCw3LDcsLy8gMQorCQk2LDYsMCw4LDMsMyw1LDUsNCwyLDIsMiw0LDQsNiw2LC8vIDIKKwkJMiw1LDIsOCw0LDQsNiw2LDIsNCwyLDcsNCw0LDcsNywvLyAzCisJCTYsNiwyLDgsMywzLDUsNSwzLDIsMiwyLDMsNCw2LDYsLy8gNAorCQkyLDUsMiw4LDQsNCw2LDYsMiw0LDIsNyw0LDQsNyw3LC8vIDUKKwkJNiw2LDIsOCwzLDMsNSw1LDQsMiwyLDIsNSw0LDYsNiwvLyA2CisJCTIsNSwyLDgsNCw0LDYsNiwyLDQsMiw3LDQsNCw3LDcsLy8gNworCQkyLDYsMiw2LDMsMywzLDMsMiwyLDIsMiw0LDQsNCw0LC8vIDgKKwkJMiw2LDIsNiw0LDQsNCw0LDIsNSwyLDUsNSw1LDUsNSwvLyA5CisJCTIsNiwyLDYsMywzLDMsMywyLDIsMiwyLDQsNCw0LDQsLy8gQQorCQkyLDUsMiw1LDQsNCw0LDQsMiw0LDIsNCw0LDQsNCw0LC8vIEIKKwkJMiw2LDIsOCwzLDMsNSw1LDIsMiwyLDIsNCw0LDYsNiwvLyBDCisJCTIsNSwyLDgsNCw0LDYsNiwyLDQsMiw3LDQsNCw3LDcsLy8gRAorCQkyLDYsMiw4LDMsMyw1LDUsMiwyLDIsMiw0LDQsNiw2LC8vIEUKKwkJMiw1LDIsOCw0LDQsNiw2LDIsNCwyLDcsNCw0LDcsNyAvLyBGCisJfTsgLy8gMHgwMCB3YXMgNyBhbmQgMHgyMiB3YXMgMgorCQorCS8vIFVwZGF0ZSB0aW1lCisJaWYgKCBzX3RpbWUgPj0gMCApCisJCWdvdG8gb3V0X29mX3RpbWU7CisJCisJI2lmZGVmIENQVV9JTlNUUl9IT09LCisJeyBDUFVfSU5TVFJfSE9PSyggKHBjLTEpLCAoJmluc3RyIFstMV0pLCBhLCB4LCB5LCBHRVRfU1AoKSwgVElNRSgpICk7IH0KKwkjZW5kaWYKKwkKKwlzX3RpbWUgKz0gY2xvY2tfdGFibGUgW29wY29kZV07CisJCisJaW50IGRhdGE7CisJZGF0YSA9ICppbnN0cjsKKwkKKwlzd2l0Y2ggKCBvcGNvZGUgKQorCXsKKworLy8gTWFjcm9zCisKKyNkZWZpbmUgR0VUX01TQigpICAgICAgIChpbnN0ciBbMV0pCisjZGVmaW5lIEFERF9QQUdFKCBvdXQgKSAocGMrKywgb3V0ID0gZGF0YSArIDB4MTAwICogR0VUX01TQigpKQorI2RlZmluZSBHRVRfQUREUigpICAgICAgR0VUX0xFMTYoIGluc3RyICkKKworI2RlZmluZSBQQUdFX1BFTkFMVFkoIGxzYiApIHNfdGltZSArPSAobHNiKSA+PiA4OworCisjZGVmaW5lIElOQ19ERUMoIHJlZywgbiApIHJlZyA9IEJZVEUoIG56ID0gcmVnICsgbiApOyBnb3RvIGxvb3A7CisKKyNkZWZpbmUgSU5EX1koIGNyb3NzLCBvdXQgKSB7XAorCQlpbnQgdGVtcCA9IFJFQURfTE9XKCBkYXRhICkgKyB5O1wKKwkJb3V0ID0gdGVtcCArIDB4MTAwICogUkVBRF9MT1coIEJZVEUoIGRhdGEgKyAxICkgKTtcCisJCWNyb3NzKCB0ZW1wICk7XAorCX0KKwkKKyNkZWZpbmUgSU5EX1goIG91dCApIHtcCisJCWludCB0ZW1wID0gZGF0YSArIHg7XAorCQlvdXQgPSAweDEwMCAqIFJFQURfTE9XKCBCWVRFKCB0ZW1wICsgMSApICkgKyBSRUFEX0xPVyggQllURSggdGVtcCApICk7XAorCX0KKwkKKyNkZWZpbmUgQVJJVEhfQUREUl9NT0RFUyggb3AgKVwKK2Nhc2Ugb3AgLSAweDA0OiAvKiAoaW5kLHgpICovXAorCUlORF9YKCBkYXRhIClcCisJZ290byBwdHIjI29wO1wKK2Nhc2Ugb3AgKyAweDBDOiAvKiAoaW5kKSx5ICovXAorCUlORF9ZKCBQQUdFX1BFTkFMVFksIGRhdGEgKVwKKwlnb3RvIHB0ciMjb3A7XAorY2FzZSBvcCArIDB4MTA6IC8qIHpwLFggKi9cCisJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7XAorY2FzZSBvcCArIDB4MDA6IC8qIHpwICovXAorCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApO1wKKwlnb3RvIGltbSMjb3A7XAorY2FzZSBvcCArIDB4MTQ6IC8qIGFicyxZICovXAorCWRhdGEgKz0geTtcCisJZ290byBpbmQjI29wO1wKK2Nhc2Ugb3AgKyAweDE4OiAvKiBhYnMsWCAqL1wKKwlkYXRhICs9IHg7XAoraW5kIyNvcDpcCisJUEFHRV9QRU5BTFRZKCBkYXRhICk7XAorY2FzZSBvcCArIDB4MDg6IC8qIGFicyAqL1wKKwlBRERfUEFHRSggZGF0YSApO1wKK3B0ciMjb3A6XAorCUZMVVNIX1RJTUUoKTtcCisJZGF0YSA9IFJFQURfTUVNKCBkYXRhICk7XAorCUNBQ0hFX1RJTUUoKTtcCitjYXNlIG9wICsgMHgwNDogLyogaW1tICovXAoraW1tIyNvcDoKKworLy8gVE9ETzogbW9yZSBlZmZpY2llbnQgd2F5IHRvIGhhbmRsZSBuZWdhdGl2ZSBicmFuY2ggdGhhdCB3cmFwcyBQQyBhcm91bmQKKyNkZWZpbmUgQlJBTkNIKCBjb25kIClcCit7XAorCSsrcGM7XAorCWlmICggIShjb25kKSApIGdvdG8gbG9vcDtcCisJc190aW1lKys7XAorCWludCBvZmZzZXQgPSBTQllURSggZGF0YSApO1wKKwlzX3RpbWUgKz0gKEJZVEUocGMpICsgb2Zmc2V0KSA+PiA4ICYgMTtcCisJcGMgPSBXT1JEKCBwYyArIG9mZnNldCApO1wKKwlnb3RvIGxvb3A7XAorfQorCisvLyBPZnRlbi1Vc2VkCisKKwljYXNlIDB4QjU6IC8vIExEQSB6cCx4CisJCWEgPSBueiA9IFJFQURfTE9XKCBCWVRFKCBkYXRhICsgeCApICk7CisJCXBjKys7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4QTU6IC8vIExEQSB6cAorCQlhID0gbnogPSBSRUFEX0xPVyggZGF0YSApOworCQlwYysrOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEQwOiAvLyBCTkUKKwkJQlJBTkNIKCBCWVRFKCBueiApICk7CisJCisJY2FzZSAweDIwOiB7IC8vIEpTUgorCQlpbnQgdGVtcCA9IHBjICsgMTsKKwkJcGMgPSBHRVRfQUREUigpOworCQlXUklURV9TVEFDSyggU1AoIC0xICksIHRlbXAgPj4gOCApOworCQlzcCA9IFNQKCAtMiApOworCQlXUklURV9TVEFDSyggc3AsIHRlbXAgKTsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4NEM6IC8vIEpNUCBhYnMKKwkJcGMgPSBHRVRfQUREUigpOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEU4OiAvLyBJTlgKKwkJSU5DX0RFQyggeCwgMSApCisJCisJY2FzZSAweDEwOiAvLyBCUEwKKwkJQlJBTkNIKCAhSVNfTkVHICkKKwkKKwlBUklUSF9BRERSX01PREVTKCAweEM1ICkgLy8gQ01QCisJCW56ID0gYSAtIGRhdGE7CisJCXBjKys7CisJCWMgPSB+bno7CisJCW56ICY9IDB4RkY7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4MzA6IC8vIEJNSQorCQlCUkFOQ0goIElTX05FRyApCisJCisJY2FzZSAweEYwOiAvLyBCRVEKKwkJQlJBTkNIKCAhQllURSggbnogKSApOworCQorCWNhc2UgMHg5NTogLy8gU1RBIHpwLHgKKwkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7CisJY2FzZSAweDg1OiAvLyBTVEEgenAKKwkJcGMrKzsKKwkJV1JJVEVfTE9XKCBkYXRhLCBhICk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4Qzg6IC8vIElOWQorCQlJTkNfREVDKCB5LCAxICkKKworCWNhc2UgMHhBODogLy8gVEFZCisJCXkgID0gYTsKKwkJbnogPSBhOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDk4OiAvLyBUWUEKKwkJYSAgPSB5OworCQlueiA9IHk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4QUQ6ey8vIExEQSBhYnMKKwkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQlwYyArPSAyOworCQlSRUFEX1BQVSggYWRkciwgYSA9IG56ICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweDYwOiAvLyBSVFMKKwkJcGMgPSAxICsgUkVBRF9TVEFDSyggc3AgKTsKKwkJcGMgKz0gMHgxMDAgKiBSRUFEX1NUQUNLKCBTUCggMSApICk7CisJCXNwID0gU1AoIDIgKTsKKwkJZ290byBsb29wOworCQorCXsKKwkJaW50IGFkZHI7CisJCQorCWNhc2UgMHg4RDogLy8gU1RBIGFicworCQlhZGRyID0gR0VUX0FERFIoKTsKKwkJcGMgKz0gMjsKKwkJaWYgKCBDQU5fV1JJVEVfRkFTVCggYWRkciApICkKKwkJeworCQkJV1JJVEVfRkFTVCggYWRkciwgYSApOworCQkJZ290byBsb29wOworCQl9CisJc3RhX3B0cjoKKwkJRkxVU0hfVElNRSgpOworCQlXUklURV9NRU0oIGFkZHIsIGEgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDk5OiAvLyBTVEEgYWJzLFkKKwkJYWRkciA9IHkgKyBHRVRfQUREUigpOworCQlwYyArPSAyOworCQlpZiAoIENBTl9XUklURV9GQVNUKCBhZGRyICkgKQorCQl7CisJCQlXUklURV9GQVNUKCBhZGRyLCBhICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJZ290byBzdGFfYWJzX3g7CisJCisJY2FzZSAweDlEOiAvLyBTVEEgYWJzLFggKHNsaWdodGx5IG1vcmUgY29tbW9uIHRoYW4gU1RBIGFicykKKwkJYWRkciA9IHggKyBHRVRfQUREUigpOworCQlwYyArPSAyOworCQlpZiAoIENBTl9XUklURV9GQVNUKCBhZGRyICkgKQorCQl7CisJCQlXUklURV9GQVNUKCBhZGRyLCBhICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJRFVNTVlfUkVBRCggYWRkciwgeCApOworCXN0YV9hYnNfeDoKKwkJRkxVU0hfVElNRSgpOworCQlXUklURV9NRU0oIGFkZHIsIGEgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDkxOiAvLyBTVEEgKGluZCksWQorCQkjZGVmaW5lIE5PX1BBR0VfUEVOQUxUWSggbHNiICkKKwkJSU5EX1koIE5PX1BBR0VfUEVOQUxUWSwgYWRkciApCisJCXBjKys7CisJCURVTU1ZX1JFQUQoIGFkZHIsIHkgKTsKKwkJZ290byBzdGFfcHRyOworCQorCWNhc2UgMHg4MTogLy8gU1RBIChpbmQsWCkKKwkJSU5EX1goIGFkZHIgKQorCQlwYysrOworCQlnb3RvIHN0YV9wdHI7CisJCisJfQorCQorCWNhc2UgMHhBOTogLy8gTERBICNpbW0KKwkJcGMrKzsKKwkJYSAgPSBkYXRhOworCQlueiA9IGRhdGE7CisJCWdvdG8gbG9vcDsKKworCS8vIGNvbW1vbiByZWFkIGluc3RydWN0aW9ucworCXsKKwkJaW50IGFkZHI7CisJCQorCWNhc2UgMHhBMTogLy8gTERBIChpbmQsWCkKKwkJSU5EX1goIGFkZHIgKQorCQlwYysrOworCQlnb3RvIGFfbnpfcmVhZF9hZGRyOworCQorCWNhc2UgMHhCMTovLyBMREEgKGluZCksWQorCQlhZGRyID0gUkVBRF9MT1coIGRhdGEgKSArIHk7CisJCVBBR0VfUEVOQUxUWSggYWRkciApOworCQlhZGRyICs9IDB4MTAwICogUkVBRF9MT1coIEJZVEUoIGRhdGEgKyAxICkgKTsKKwkJcGMrKzsKKwkJUkVBRF9GQVNUKCBhZGRyLCBhID0gbnogKTsKKwkJaWYgKCBDQU5fUkVBRF9GQVNUKCBhZGRyICkgKQorCQkJZ290byBsb29wOworCQlEVU1NWV9SRUFEKCBhZGRyLCB5ICk7CisJCWdvdG8gYV9uel9yZWFkX2FkZHI7CisJCisJY2FzZSAweEI5OiAvLyBMREEgYWJzLFkKKwkJUEFHRV9QRU5BTFRZKCBkYXRhICsgeSApOworCQlhZGRyID0gR0VUX0FERFIoKSArIHk7CisJCXBjICs9IDI7CisJCVJFQURfRkFTVCggYWRkciwgYSA9IG56ICk7CisJCWlmICggQ0FOX1JFQURfRkFTVCggYWRkciApICkKKwkJCWdvdG8gbG9vcDsKKwkJZ290byBhX256X3JlYWRfYWRkcjsKKwkKKwljYXNlIDB4QkQ6IC8vIExEQSBhYnMsWAorCQlQQUdFX1BFTkFMVFkoIGRhdGEgKyB4ICk7CisJCWFkZHIgPSBHRVRfQUREUigpICsgeDsKKwkJcGMgKz0gMjsKKwkJUkVBRF9GQVNUKCBhZGRyLCBhID0gbnogKTsKKwkJaWYgKCBDQU5fUkVBRF9GQVNUKCBhZGRyICkgKQorCQkJZ290byBsb29wOworCQlEVU1NWV9SRUFEKCBhZGRyLCB4ICk7CisJYV9uel9yZWFkX2FkZHI6CisJCUZMVVNIX1RJTUUoKTsKKwkJYSA9IG56ID0gUkVBRF9NRU0oIGFkZHIgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGxvb3A7CisJCisJfQorCisvLyBCcmFuY2gKKworCWNhc2UgMHg1MDogLy8gQlZDCisJCUJSQU5DSCggIShmbGFncyAmIHY0MCkgKQorCQorCWNhc2UgMHg3MDogLy8gQlZTCisJCUJSQU5DSCggZmxhZ3MgJiB2NDAgKQorCQorCWNhc2UgMHhCMDogLy8gQkNTCisJCUJSQU5DSCggYyAmIDB4MTAwICkKKwkKKwljYXNlIDB4OTA6IC8vIEJDQworCQlCUkFOQ0goICEoYyAmIDB4MTAwKSApCisJCisvLyBMb2FkL3N0b3JlCisJCisJY2FzZSAweDk0OiAvLyBTVFkgenAseAorCQlkYXRhID0gQllURSggZGF0YSArIHggKTsKKwljYXNlIDB4ODQ6IC8vIFNUWSB6cAorCQlwYysrOworCQlXUklURV9MT1coIGRhdGEsIHkgKTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHg5NjogLy8gU1RYIHpwLHkKKwkJZGF0YSA9IEJZVEUoIGRhdGEgKyB5ICk7CisJY2FzZSAweDg2OiAvLyBTVFggenAKKwkJcGMrKzsKKwkJV1JJVEVfTE9XKCBkYXRhLCB4ICk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4QjY6IC8vIExEWCB6cCx5CisJCWRhdGEgPSBCWVRFKCBkYXRhICsgeSApOworCWNhc2UgMHhBNjogLy8gTERYIHpwCisJCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOworCWNhc2UgMHhBMjogLy8gTERYICNpbW0KKwkJcGMrKzsKKwkJeCA9IGRhdGE7CisJCW56ID0gZGF0YTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHhCNDogLy8gTERZIHpwLHgKKwkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7CisJY2FzZSAweEE0OiAvLyBMRFkgenAKKwkJZGF0YSA9IFJFQURfTE9XKCBkYXRhICk7CisJY2FzZSAweEEwOiAvLyBMRFkgI2ltbQorCQlwYysrOworCQl5ID0gZGF0YTsKKwkJbnogPSBkYXRhOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEJDOiAvLyBMRFkgYWJzLFgKKwkJZGF0YSArPSB4OworCQlQQUdFX1BFTkFMVFkoIGRhdGEgKTsKKwljYXNlIDB4QUM6ey8vIExEWSBhYnMKKwkJaW50IGFkZHIgPSBkYXRhICsgMHgxMDAgKiBHRVRfTVNCKCk7CisJCXBjICs9IDI7CisJCUZMVVNIX1RJTUUoKTsKKwkJeSA9IG56ID0gUkVBRF9NRU0oIGFkZHIgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHhCRTogLy8gTERYIGFicyx5CisJCWRhdGEgKz0geTsKKwkJUEFHRV9QRU5BTFRZKCBkYXRhICk7CisJY2FzZSAweEFFOnsvLyBMRFggYWJzCisJCWludCBhZGRyID0gZGF0YSArIDB4MTAwICogR0VUX01TQigpOworCQlwYyArPSAyOworCQlGTFVTSF9USU1FKCk7CisJCXggPSBueiA9IFJFQURfTUVNKCBhZGRyICk7CisJCUNBQ0hFX1RJTUUoKTsKKwkJZ290byBsb29wOworCX0KKwkKKwl7CisJCWludCB0ZW1wOworCWNhc2UgMHg4QzogLy8gU1RZIGFicworCQl0ZW1wID0geTsKKwkJZ290byBzdG9yZV9hYnM7CisJCisJY2FzZSAweDhFOiAvLyBTVFggYWJzCisJCXRlbXAgPSB4OworCXN0b3JlX2FiczoKKwkJeworCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQkJcGMgKz0gMjsKKwkJCWlmICggQ0FOX1dSSVRFX0ZBU1QoIGFkZHIgKSApCisJCQl7CisJCQkJV1JJVEVfRkFTVCggYWRkciwgdGVtcCApOworCQkJCWdvdG8gbG9vcDsKKwkJCX0KKwkJCUZMVVNIX1RJTUUoKTsKKwkJCVdSSVRFX01FTSggYWRkciwgdGVtcCApOworCQkJQ0FDSEVfVElNRSgpOworCQkJZ290byBsb29wOworCQl9CisJfQorCisvLyBDb21wYXJlCisKKwljYXNlIDB4RUM6IHsvLyBDUFggYWJzCisJCWludCBhZGRyID0gR0VUX0FERFIoKTsKKwkJcGMrKzsKKwkJRkxVU0hfVElNRSgpOworCQlkYXRhID0gUkVBRF9NRU0oIGFkZHIgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGNweF9kYXRhOworCX0KKwkKKwljYXNlIDB4RTQ6IC8vIENQWCB6cAorCQlkYXRhID0gUkVBRF9MT1coIGRhdGEgKTsKKwljYXNlIDB4RTA6IC8vIENQWCAjaW1tCisJY3B4X2RhdGE6CisJCW56ID0geCAtIGRhdGE7CisJCXBjKys7CisJCWMgPSB+bno7CisJCW56ICY9IDB4RkY7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4Q0M6ey8vIENQWSBhYnMKKwkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQlwYysrOworCQlGTFVTSF9USU1FKCk7CisJCWRhdGEgPSBSRUFEX01FTSggYWRkciApOworCQlDQUNIRV9USU1FKCk7CisJCWdvdG8gY3B5X2RhdGE7CisJfQorCQorCWNhc2UgMHhDNDogLy8gQ1BZIHpwCisJCWRhdGEgPSBSRUFEX0xPVyggZGF0YSApOworCWNhc2UgMHhDMDogLy8gQ1BZICNpbW0KKwljcHlfZGF0YToKKwkJbnogPSB5IC0gZGF0YTsKKwkJcGMrKzsKKwkJYyA9IH5uejsKKwkJbnogJj0gMHhGRjsKKwkJZ290byBsb29wOworCQorLy8gTG9naWNhbAorCisJQVJJVEhfQUREUl9NT0RFUyggMHgyNSApIC8vIEFORAorCQlueiA9IChhICY9IGRhdGEpOworCQlwYysrOworCQlnb3RvIGxvb3A7CisJCisJQVJJVEhfQUREUl9NT0RFUyggMHg0NSApIC8vIEVPUgorCQlueiA9IChhIF49IGRhdGEpOworCQlwYysrOworCQlnb3RvIGxvb3A7CisJCisJQVJJVEhfQUREUl9NT0RFUyggMHgwNSApIC8vIE9SQQorCQlueiA9IChhIHw9IGRhdGEpOworCQlwYysrOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDJDOnsvLyBCSVQgYWJzCisJCWludCBhZGRyID0gR0VUX0FERFIoKTsKKwkJcGMgKz0gMjsKKwkJUkVBRF9QUFUoIGFkZHIsIG56ICk7CisJCWZsYWdzID0gKGZsYWdzICYgfnY0MCkgKyAobnogJiB2NDApOworCQlpZiAoIGEgJiBueiApCisJCQlnb3RvIGxvb3A7CisJCW56IDw8PSA4OyAvLyByZXN1bHQgbXVzdCBiZSB6ZXJvLCBldmVuIGlmIE4gYml0IGlzIHNldAorCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgyNDogLy8gQklUIHpwCisJCW56ID0gUkVBRF9MT1coIGRhdGEgKTsKKwkJcGMrKzsKKwkJZmxhZ3MgPSAoZmxhZ3MgJiB+djQwKSArIChueiAmIHY0MCk7CisJCWlmICggYSAmIG56ICkKKwkJCWdvdG8gbG9vcDsgLy8gWiBzaG91bGQgYmUgY2xlYXIsIGFuZCBueiBtdXN0IGJlIG5vbi16ZXJvIGlmIG56ICYgYSBpcworCQlueiA8PD0gODsgLy8gc2V0IFogZmxhZyB3aXRob3V0IGFmZmVjdGluZyBOIGZsYWcKKwkJZ290byBsb29wOworCQkKKy8vIEFkZC9zdWJ0cmFjdAorCisJQVJJVEhfQUREUl9NT0RFUyggMHhFNSApIC8vIFNCQworCWNhc2UgMHhFQjogLy8gdW5vZmZpY2lhbCBlcXVpdmFsZW50CisJCWRhdGEgXj0gMHhGRjsKKwkJZ290byBhZGNfaW1tOworCQorCUFSSVRIX0FERFJfTU9ERVMoIDB4NjUgKSAvLyBBREMKKwlhZGNfaW1tOiB7CisJCWludCBjYXJyeSA9IGMgPj4gOCAmIDE7CisJCWludCBvdiA9IChhIF4gMHg4MCkgKyBjYXJyeSArIFNCWVRFKCBkYXRhICk7CisJCWZsYWdzID0gKGZsYWdzICYgfnY0MCkgKyAob3YgPj4gMiAmIHY0MCk7CisJCWMgPSBueiA9IGEgKyBkYXRhICsgY2Fycnk7CisJCXBjKys7CisJCWEgPSBCWVRFKCBueiApOworCQlnb3RvIGxvb3A7CisJfQorCQorLy8gU2hpZnQvcm90YXRlCisKKwljYXNlIDB4NEE6IC8vIExTUiBBCisJCWMgPSAwOworCWNhc2UgMHg2QTogLy8gUk9SIEEKKwkJbnogPSBjID4+IDEgJiAweDgwOworCQljID0gYSA8PCA4OworCQlueiArPSBhID4+IDE7CisJCWEgPSBuejsKKwkJZ290byBsb29wOworCisJY2FzZSAweDBBOiAvLyBBU0wgQQorCQlueiA9IGEgPDwgMTsKKwkJYyA9IG56OworCQlhID0gQllURSggbnogKTsKKwkJZ290byBsb29wOworCisJY2FzZSAweDJBOiB7IC8vIFJPTCBBCisJCW56ID0gYSA8PCAxOworCQlpbnQgdGVtcCA9IGMgPj4gOCAmIDE7CisJCWMgPSBuejsKKwkJbnogKz0gdGVtcDsKKwkJYSA9IEJZVEUoIG56ICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweDVFOiAvLyBMU1IgYWJzLFgKKwkJZGF0YSArPSB4OworCWNhc2UgMHg0RTogLy8gTFNSIGFicworCQljID0gMDsKKwljYXNlIDB4NkU6IC8vIFJPUiBhYnMKKwlyb3JfYWJzOiB7CisJCUFERF9QQUdFKCBkYXRhICk7CisJCUZMVVNIX1RJTUUoKTsKKwkJaW50IHRlbXAgPSBSRUFEX01FTSggZGF0YSApOworCQlueiA9IChjID4+IDEgJiAweDgwKSArICh0ZW1wID4+IDEpOworCQljID0gdGVtcCA8PCA4OworCQlnb3RvIHJvdGF0ZV9jb21tb247CisJfQorCQorCWNhc2UgMHgzRTogLy8gUk9MIGFicyxYCisJCWRhdGEgKz0geDsKKwkJZ290byByb2xfYWJzOworCQorCWNhc2UgMHgxRTogLy8gQVNMIGFicyxYCisJCWRhdGEgKz0geDsKKwljYXNlIDB4MEU6IC8vIEFTTCBhYnMKKwkJYyA9IDA7CisJY2FzZSAweDJFOiAvLyBST0wgYWJzCisJcm9sX2FiczoKKwkJQUREX1BBR0UoIGRhdGEgKTsKKwkJbnogPSBjID4+IDggJiAxOworCQlGTFVTSF9USU1FKCk7CisJCW56ICs9IChjID0gUkVBRF9NRU0oIGRhdGEgKSA8PCAxKTsKKwlyb3RhdGVfY29tbW9uOgorCQlwYysrOworCQlXUklURV9NRU0oIGRhdGEsIEJZVEUoIG56ICkgKTsKKwkJQ0FDSEVfVElNRSgpOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDdFOiAvLyBST1IgYWJzLFgKKwkJZGF0YSArPSB4OworCQlnb3RvIHJvcl9hYnM7CisJCisJY2FzZSAweDc2OiAvLyBST1IgenAseAorCQlkYXRhID0gQllURSggZGF0YSArIHggKTsKKwkJZ290byByb3JfenA7CisJCisJY2FzZSAweDU2OiAvLyBMU1IgenAseAorCQlkYXRhID0gQllURSggZGF0YSArIHggKTsKKwljYXNlIDB4NDY6IC8vIExTUiB6cAorCQljID0gMDsKKwljYXNlIDB4NjY6IC8vIFJPUiB6cAorCXJvcl96cDogeworCQlpbnQgdGVtcCA9IFJFQURfTE9XKCBkYXRhICk7CisJCW56ID0gKGMgPj4gMSAmIDB4ODApICsgKHRlbXAgPj4gMSk7CisJCWMgPSB0ZW1wIDw8IDg7CisJCWdvdG8gd3JpdGVfbnpfenA7CisJfQorCQorCWNhc2UgMHgzNjogLy8gUk9MIHpwLHgKKwkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7CisJCWdvdG8gcm9sX3pwOworCQorCWNhc2UgMHgxNjogLy8gQVNMIHpwLHgKKwkJZGF0YSA9IEJZVEUoIGRhdGEgKyB4ICk7CisJY2FzZSAweDA2OiAvLyBBU0wgenAKKwkJYyA9IDA7CisJY2FzZSAweDI2OiAvLyBST0wgenAKKwlyb2xfenA6CisJCW56ID0gYyA+PiA4ICYgMTsKKwkJbnogKz0gKGMgPSBSRUFEX0xPVyggZGF0YSApIDw8IDEpOworCQlnb3RvIHdyaXRlX256X3pwOworCQorLy8gSW5jcmVtZW50L2RlY3JlbWVudAorCisJY2FzZSAweENBOiAvLyBERVgKKwkJSU5DX0RFQyggeCwgLTEgKQorCQorCWNhc2UgMHg4ODogLy8gREVZCisJCUlOQ19ERUMoIHksIC0xICkKKwkKKwljYXNlIDB4RjY6IC8vIElOQyB6cCx4CisJCWRhdGEgPSBCWVRFKCBkYXRhICsgeCApOworCWNhc2UgMHhFNjogLy8gSU5DIHpwCisJCW56ID0gMTsKKwkJZ290byBhZGRfbnpfenA7CisJCisJY2FzZSAweEQ2OiAvLyBERUMgenAseAorCQlkYXRhID0gQllURSggZGF0YSArIHggKTsKKwljYXNlIDB4QzY6IC8vIERFQyB6cAorCQlueiA9IC0xOworCWFkZF9uel96cDoKKwkJbnogKz0gUkVBRF9MT1coIGRhdGEgKTsKKwl3cml0ZV9uel96cDoKKwkJcGMrKzsKKwkJV1JJVEVfTE9XKCBkYXRhLCBueiApOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEZFOiAvLyBJTkMgYWJzLHgKKwkJZGF0YSA9IHggKyBHRVRfQUREUigpOworCQlnb3RvIGluY19wdHI7CisJCisJY2FzZSAweEVFOiAvLyBJTkMgYWJzCisJCWRhdGEgPSBHRVRfQUREUigpOworCWluY19wdHI6CisJCW56ID0gMTsKKwkJZ290byBpbmNfY29tbW9uOworCQorCWNhc2UgMHhERTogLy8gREVDIGFicyx4CisJCWRhdGEgPSB4ICsgR0VUX0FERFIoKTsKKwkJZ290byBkZWNfcHRyOworCQorCWNhc2UgMHhDRTogLy8gREVDIGFicworCQlkYXRhID0gR0VUX0FERFIoKTsKKwlkZWNfcHRyOgorCQlueiA9IC0xOworCWluY19jb21tb246CisJCUZMVVNIX1RJTUUoKTsKKwkJcGMgKz0gMjsKKwkJbnogKz0gUkVBRF9NRU0oIGRhdGEgKTsKKwkJV1JJVEVfTUVNKCBkYXRhLCBCWVRFKCBueiApICk7CisJCUNBQ0hFX1RJTUUoKTsKKwkJZ290byBsb29wOworCQkKKy8vIFRyYW5zZmVyCisKKwljYXNlIDB4QUE6IC8vIFRBWAorCQl4ID0gbnogPSBhOworCQlnb3RvIGxvb3A7CisJCQorCWNhc2UgMHg4QTogLy8gVFhBCisJCWEgPSBueiA9IHg7CisJCWdvdG8gbG9vcDsKKworCWNhc2UgMHg5QTogLy8gVFhTCisJCVNFVF9TUCggeCApOyAvLyB2ZXJpZmllZCAobm8gZmxhZyBjaGFuZ2UpCisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4QkE6IC8vIFRTWAorCQl4ID0gbnogPSBHRVRfU1AoKTsKKwkJZ290byBsb29wOworCQorLy8gU3RhY2sKKwkKKwljYXNlIDB4NDg6IC8vIFBIQQorCQlzcCA9IFNQKCAtMSApOworCQlXUklURV9TVEFDSyggc3AsIGEgKTsKKwkJZ290byBsb29wOworCQkKKwljYXNlIDB4Njg6IC8vIFBMQQorCQlhID0gbnogPSBSRUFEX1NUQUNLKCBzcCApOworCQlzcCA9IFNQKCAxICk7CisJCWdvdG8gbG9vcDsKKwkJCisJY2FzZSAweDQwOnsvLyBSVEkKKwkJcGMgID0gUkVBRF9TVEFDSyggU1AoIDEgKSApOworCQlwYyArPSBSRUFEX1NUQUNLKCBTUCggMiApICkgKiAweDEwMDsKKwkJaW50IHRlbXAgPSBSRUFEX1NUQUNLKCBzcCApOworCQlzcCA9IFNQKCAzICk7CisJCWRhdGEgPSBmbGFnczsKKwkJU0VUX0ZMQUdTKCB0ZW1wICk7CisJCWNwdS0+ci5mbGFncyA9IGZsYWdzOyAvLyB1cGRhdGUgZXh0ZXJuYWxseS12aXNpYmxlIEkgZmxhZworCQlpbnQgZGVsdGEgPSBzLmJhc2UgLSBjcHUtPmlycV90aW1lOworCQlpZiAoIGRlbHRhIDw9IDAgKSBnb3RvIGxvb3A7IC8vIGVuZF90aW1lIDwgaXJxX3RpbWUKKwkJaWYgKCBmbGFncyAmIGkwNCApIGdvdG8gbG9vcDsKKwkJc190aW1lICs9IGRlbHRhOworCQlzLmJhc2UgPSBjcHUtPmlycV90aW1lOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgyODp7Ly8gUExQCisJCWludCB0ZW1wID0gUkVBRF9TVEFDSyggc3AgKTsKKwkJc3AgPSBTUCggMSApOworCQlpbnQgY2hhbmdlZCA9IGZsYWdzIF4gdGVtcDsKKwkJU0VUX0ZMQUdTKCB0ZW1wICk7CisJCWlmICggIShjaGFuZ2VkICYgaTA0KSApCisJCQlnb3RvIGxvb3A7IC8vIEkgZmxhZyBkaWRuJ3QgY2hhbmdlCisJCWlmICggZmxhZ3MgJiBpMDQgKQorCQkJZ290byBoYW5kbGVfc2VpOworCQlnb3RvIGhhbmRsZV9jbGk7CisJfQorCQorCWNhc2UgMHgwODp7Ly8gUEhQCisJCWludCB0ZW1wOworCQlHRVRfRkxBR1MoIHRlbXAgKTsKKwkJc3AgPSBTUCggLTEgKTsKKwkJV1JJVEVfU1RBQ0soIHNwLCB0ZW1wIHwgKGIxMCB8IHIyMCkgKTsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4NkM6ey8vIEpNUCAoaW5kKQorCQlkYXRhID0gR0VUX0FERFIoKTsKKwkJYnl0ZSBjb25zdCogcGFnZSA9IENPREVfUEFHRSggZGF0YSApOworCQlwYyA9IHBhZ2UgW0NPREVfT0ZGU0VUKCBkYXRhICldOworCQlkYXRhID0gKGRhdGEgJiAweEZGMDApICsgKChkYXRhICsgMSkgJiAweEZGKTsKKwkJcGMgKz0gcGFnZSBbQ09ERV9PRkZTRVQoIGRhdGEgKV0gKiAweDEwMDsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4MDA6IC8vIEJSSworCQlnb3RvIGhhbmRsZV9icms7CisJCisvLyBGbGFncworCisJY2FzZSAweDM4OiAvLyBTRUMKKwkJYyA9IDB4MTAwOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDE4OiAvLyBDTEMKKwkJYyA9IDA7CisJCWdvdG8gbG9vcDsKKwkJCisJY2FzZSAweEI4OiAvLyBDTFYKKwkJZmxhZ3MgJj0gfnY0MDsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHhEODogLy8gQ0xECisJCWZsYWdzICY9IH5kMDg7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4Rjg6IC8vIFNFRAorCQlmbGFncyB8PSBkMDg7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4NTg6IC8vIENMSQorCQlpZiAoICEoZmxhZ3MgJiBpMDQpICkKKwkJCWdvdG8gbG9vcDsKKwkJZmxhZ3MgJj0gfmkwNDsKKwloYW5kbGVfY2xpOiB7CisJCS8vZHByaW50ZiggIkNMSSBhdCAlZFxuIiwgVElNRSApOworCQljcHUtPnIuZmxhZ3MgPSBmbGFnczsgLy8gdXBkYXRlIGV4dGVybmFsbHktdmlzaWJsZSBJIGZsYWcKKwkJaW50IGRlbHRhID0gcy5iYXNlIC0gY3B1LT5pcnFfdGltZTsKKwkJaWYgKCBkZWx0YSA8PSAwICkKKwkJeworCQkJaWYgKCBUSU1FKCkgPCBjcHUtPmlycV90aW1lICkKKwkJCQlnb3RvIGxvb3A7CisJCQlnb3RvIGRlbGF5ZWRfY2xpOworCQl9CisJCXMuYmFzZSA9IGNwdS0+aXJxX3RpbWU7CisJCXNfdGltZSArPSBkZWx0YTsKKwkJaWYgKCBzX3RpbWUgPCAwICkKKwkJCWdvdG8gbG9vcDsKKwkJCisJCWlmICggZGVsdGEgPj0gc190aW1lICsgMSApCisJCXsKKwkJCS8vIGRlbGF5ZWQgaXJxIHVudGlsIGFmdGVyIG5leHQgaW5zdHJ1Y3Rpb24KKwkJCXMuYmFzZSArPSBzX3RpbWUgKyAxOworCQkJc190aW1lID0gLTE7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCS8vIFRPRE86IGltcGxlbWVudAorCWRlbGF5ZWRfY2xpOgorCQlkcHJpbnRmKCAiRGVsYXllZCBDTEkgbm90IGVtdWxhdGVkXG4iICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweDc4OiAvLyBTRUkKKwkJaWYgKCBmbGFncyAmIGkwNCApCisJCQlnb3RvIGxvb3A7CisJCWZsYWdzIHw9IGkwNDsKKwloYW5kbGVfc2VpOiB7CisJCWNwdS0+ci5mbGFncyA9IGZsYWdzOyAvLyB1cGRhdGUgZXh0ZXJuYWxseS12aXNpYmxlIEkgZmxhZworCQlpbnQgZGVsdGEgPSBzLmJhc2UgLSBjcHUtPmVuZF90aW1lOworCQlzLmJhc2UgPSBjcHUtPmVuZF90aW1lOworCQlzX3RpbWUgKz0gZGVsdGE7CisJCWlmICggc190aW1lIDwgMCApCisJCQlnb3RvIGxvb3A7CisJCQorCQlkcHJpbnRmKCAiRGVsYXllZCBTRUkgbm90IGVtdWxhdGVkXG4iICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisvLyBVbm9mZmljaWFsCisJCisJLy8gU0tXIC0gc2tpcCB3b3JkCisJY2FzZSAweDFDOiBjYXNlIDB4M0M6IGNhc2UgMHg1QzogY2FzZSAweDdDOiBjYXNlIDB4REM6IGNhc2UgMHhGQzoKKwkJUEFHRV9QRU5BTFRZKCBkYXRhICsgeCApOworCWNhc2UgMHgwQzoKKwkJcGMrKzsKKwkvLyBTS0IgLSBza2lwIGJ5dGUKKwljYXNlIDB4NzQ6IGNhc2UgMHgwNDogY2FzZSAweDE0OiBjYXNlIDB4MzQ6IGNhc2UgMHg0NDogY2FzZSAweDU0OiBjYXNlIDB4NjQ6CisJY2FzZSAweDgwOiBjYXNlIDB4ODI6IGNhc2UgMHg4OTogY2FzZSAweEMyOiBjYXNlIDB4RDQ6IGNhc2UgMHhFMjogY2FzZSAweEY0OgorCQlwYysrOworCQlnb3RvIGxvb3A7CisJCisJLy8gTk9QCisJY2FzZSAweEVBOiBjYXNlIDB4MUE6IGNhc2UgMHgzQTogY2FzZSAweDVBOiBjYXNlIDB4N0E6IGNhc2UgMHhEQTogY2FzZSAweEZBOgorCQlnb3RvIGxvb3A7CisJCisJY2FzZSBoYWx0X29wY29kZTogLy8gSExUIC0gaGFsdCBwcm9jZXNzb3IKKwkJaWYgKCBwYy0tID4gMHgxMDAwMCApCisJCXsKKwkJCS8vIGhhbmRsZSB3cmFwLWFyb3VuZCAoYXNzdW1lcyBjYWxsZXIgaGFzIHB1dCBwYWdlIG9mIEhMVCBhdCAweDEwMDAwKQorCQkJcGMgPSBXT1JEKCBwYyApOworCQkJZ290byBsb29wOworCQl9CisJY2FzZSAweDAyOiBjYXNlIDB4MTI6ICAgICAgICAgICAgY2FzZSAweDMyOiBjYXNlIDB4NDI6IGNhc2UgMHg1MjoKKwljYXNlIDB4NjI6IGNhc2UgMHg3MjogY2FzZSAweDkyOiBjYXNlIDB4QjI6IGNhc2UgMHhEMjogY2FzZSAweEYyOgorCQlnb3RvIHN0b3A7CisJCisvLyBVbmltcGxlbWVudGVkCisJCisJY2FzZSAweEZGOiAgLy8gZm9yY2UgMjU2LWVudHJ5IGp1bXAgdGFibGUgZm9yIG9wdGltaXphdGlvbiBwdXJwb3NlcworCQljIHw9IDE7IC8vIGNvbXBpbGVyIGRvZXNuJ3Qga25vdyB0aGF0IHRoaXMgd29uJ3QgYWZmZWN0IGFueXRoaW5nCisJZGVmYXVsdDoKKwkJY2hlY2soICh1bnNpZ25lZCkgb3Bjb2RlIDwgMHgxMDAgKTsKKwkJCisJCSNpZmRlZiBVTklNUExfSU5TVFIKKwkJCVVOSU1QTF9JTlNUUigpOworCQkjZW5kaWYKKwkJCisJCS8vIEF0IGxlYXN0IHNraXAgb3ZlciBwcm9wZXIgbnVtYmVyIG9mIGJ5dGVzIGluc3RydWN0aW9uIHVzZXMKKwkJc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgaWxsb3BfbGVucyBbOF0gPSB7CisJCQkweDQwLCAweDQwLCAweDQwLCAweDgwLCAweDQwLCAweDQwLCAweDgwLCAweEEwCisJCX07CisJCWludCBvcGNvZGUgPSBpbnN0ciBbLTFdOworCQlpbnQgbGVuID0gaWxsb3BfbGVucyBbb3Bjb2RlID4+IDIgJiA3XSA+PiAob3Bjb2RlIDw8IDEgJiA2KSAmIDM7CisJCWlmICggb3Bjb2RlID09IDB4OUMgKQorCQkJbGVuID0gMjsKKwkJcGMgKz0gbGVuOworCQkKKwkJLy8gQWNjb3VudCBmb3IgZXh0cmEgY2xvY2sKKwkJaWYgKCAob3Bjb2RlID4+IDQpID09IDB4MEIgKQorCQl7CisJCQlpZiAoIG9wY29kZSA9PSAweEIzICkKKwkJCQlkYXRhID0gUkVBRF9MT1coIGRhdGEgKTsKKwkJCWlmICggb3Bjb2RlICE9IDB4QjcgKQorCQkJCVBBR0VfUEVOQUxUWSggZGF0YSArIHkgKTsKKwkJfQorCQlnb3RvIGxvb3A7CisJfQorCWFzc2VydCggZmFsc2UgKTsgLy8gY2F0Y2ggbWlzc2luZyAnZ290byBsb29wJyBvciBhY2NpZGVudGFsICdicmVhaycKKwkKKwlpbnQgcmVzdWx0XzsKK2hhbmRsZV9icms6CisJcGMrKzsKKwlyZXN1bHRfID0gYjEwIHwgNDsKKwkKKyNpZmRlZiBDUFVfRE9ORQoraW50ZXJydXB0OgorI2VuZGlmCisJeworCQlzX3RpbWUgKz0gNzsKKwkJCisJCS8vIFNhdmUgUEMgYW5kIHJlYWQgdmVjdG9yCisJCVdSSVRFX1NUQUNLKCBTUCggLTEgKSwgcGMgPj4gOCApOworCQlXUklURV9TVEFDSyggU1AoIC0yICksIHBjICk7CisJCXBjID0gR0VUX0xFMTYoICZSRUFEX0NPREUoIDB4RkZGQSApICsgKHJlc3VsdF8gJiA0KSApOworCQkKKwkJLy8gU2F2ZSBmbGFncworCQlpbnQgdGVtcDsKKwkJR0VUX0ZMQUdTKCB0ZW1wICk7CisJCXRlbXAgfD0gcjIwICsgKHJlc3VsdF8gJiBiMTApOyAvLyBCIGZsYWcgc2V0IGZvciBCUksKKwkJc3AgPSBTUCggLTMgKTsKKwkJV1JJVEVfU1RBQ0soIHNwLCB0ZW1wICk7CisJCQorCQkvLyBVcGRhdGUgSSBmbGFnIGluIGV4dGVybmFsbHktdmlzaWJsZSBmbGFncworCQljcHUtPnIuZmxhZ3MgPSAoZmxhZ3MgfD0gaTA0KTsKKwkJCisJCS8vIFVwZGF0ZSB0aW1lCisJCWludCBkZWx0YSA9IHMuYmFzZSAtIGNwdS0+ZW5kX3RpbWU7CisJCWlmICggZGVsdGEgPj0gMCApCisJCQlnb3RvIGxvb3A7CisJCXNfdGltZSArPSBkZWx0YTsKKwkJcy5iYXNlID0gY3B1LT5lbmRfdGltZTsKKwkJZ290byBsb29wOworCX0KKwkKK291dF9vZl90aW1lOgorCXBjLS07CisJCisJLy8gT3B0aW9uYWwgYWN0aW9uIHRoYXQgdHJpZ2dlcnMgaW50ZXJydXB0IG9yIGNoYW5nZXMgaXJxL2VuZCB0aW1lCisJI2lmZGVmIENQVV9ET05FCisJeworCQlDUFVfRE9ORSggcmVzdWx0XyApOworCQlpZiAoIHJlc3VsdF8gPj0gMCApCisJCQlnb3RvIGludGVycnVwdDsKKwkJaWYgKCBzX3RpbWUgPCAwICkKKwkJCWdvdG8gbG9vcDsKKwl9CisJI2VuZGlmCitzdG9wOgorCQorCS8vIEZsdXNoIGNhY2hlZCBzdGF0ZQorCWNwdS0+ci5wYyA9IHBjOworCWNwdS0+ci5zcCA9IEdFVF9TUCgpOworCWNwdS0+ci5hICA9IGE7CisJY3B1LT5yLnggID0geDsKKwljcHUtPnIueSAgPSB5OworCisJaW50IHRlbXA7CisJR0VUX0ZMQUdTKCB0ZW1wICk7CisJY3B1LT5yLmZsYWdzID0gdGVtcDsKKwkKKwljcHUtPmNwdV9zdGF0ZV8uYmFzZSA9IHMuYmFzZTsKKwljcHUtPmNwdV9zdGF0ZV8udGltZSA9IHNfdGltZTsKKwljcHUtPmNwdV9zdGF0ZSA9ICZjcHUtPmNwdV9zdGF0ZV87Cit9CmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvbmVzX3ZyYzdfYXB1LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvbmVzX3ZyYzdfYXB1LmMKaW5kZXggOTViYzY3Ni4uOGQzYzJlOCAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL25lc192cmM3X2FwdS5jCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9uZXNfdnJjN19hcHUuYwpAQCAtMSw4OCArMSw4OCBAQAotDQotI2luY2x1ZGUgIm5lc192cmM3X2FwdS5oIg0KLSNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiDQotDQotaW50IGNvbnN0IHBlcmlvZCA9IDM2OyAvLyBORVMgQ1BVIGNsb2NrcyBwZXIgRk0gY2xvY2sNCi0NCi12b2lkIFZyYzdfaW5pdCggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcyApDQotew0KLQlTeW50aF9pbml0KCAmdGhpcy0+c3ludGggKTsNCi0JDQotCU9QTExfbmV3ICggJnRoaXMtPm9wbGwsIDM1Nzk1NDUsIDM1Nzk1NDUgLyA3MiApOw0KLSAgICBPUExMX3Jlc2V0X3BhdGNoKCAmdGhpcy0+b3BsbCwgT1BMTF9WUkM3X1RPTkUgKTsNCi0JDQotCXRoaXMtPm9zYy5vdXRwdXQgPSAwOw0KLQl0aGlzLT5vc2MubGFzdF9hbXAgPSAwOw0KLQl0aGlzLT5tYXNrID0gMDsNCi0NCi0JVnJjN192b2x1bWUoIHRoaXMsIChpbnQpRlBfT05FX1ZPTFVNRSApOw0KLQlWcmM3X3Jlc2V0KCB0aGlzICk7DQotfQ0KLQ0KLXZvaWQgVnJjN19yZXNldCggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcyApDQotew0KLQl0aGlzLT5hZGRyICAgICAgPSAwOw0KLQl0aGlzLT5uZXh0X3RpbWUgPSAwOw0KLQl0aGlzLT5vc2MubGFzdF9hbXAgPSAwOw0KLQ0KLQlPUExMX3Jlc2V0ICgmdGhpcy0+b3BsbCk7CQ0KLQlPUExMX3NldE1hc2soJnRoaXMtPm9wbGwsIHRoaXMtPm1hc2spOw0KLX0NCi0NCi12b2lkIFZyYzdfc2V0X3JhdGUoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMsIGludCByICkNCi17DQotCU9QTExfc2V0X3F1YWxpdHkoICZ0aGlzLT5vcGxsLCByIDwgNDQxMDAgPyAwIDogMSApOw0KLX0NCi0NCi12b2lkIFZyYzdfd3JpdGVfcmVnKCBzdHJ1Y3QgTmVzX1ZyYzdfQXB1KiB0aGlzLCBpbnQgZGF0YSApDQotew0KLQl0aGlzLT5hZGRyID0gZGF0YTsNCi19DQotDQotdm9pZCBWcmM3X3J1bl91bnRpbCggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKTsNCi12b2lkIFZyYzdfd3JpdGVfZGF0YSggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSwgaW50IGRhdGEgKQ0KLXsJDQotCWlmICggdGltZSA+IHRoaXMtPm5leHRfdGltZSApDQotCQlWcmM3X3J1bl91bnRpbCggdGhpcywgdGltZSApOw0KLQ0KLQlPUExMX3dyaXRlSU8oICZ0aGlzLT5vcGxsLCAwLCB0aGlzLT5hZGRyICk7DQotCU9QTExfd3JpdGVJTyggJnRoaXMtPm9wbGwsIDEsIGRhdGEgKTsNCi19DQotDQotdm9pZCBWcmM3X2VuZF9mcmFtZSggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSApDQotew0KLQlpZiAoIHRpbWUgPiB0aGlzLT5uZXh0X3RpbWUgKQ0KLQkJVnJjN19ydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsNCi0JDQotCXRoaXMtPm5leHRfdGltZSAtPSB0aW1lOw0KLQlhc3NlcnQoIHRoaXMtPm5leHRfdGltZSA+PSAwICk7DQotCQ0KLQlpZiAoIHRoaXMtPm9zYy5vdXRwdXQgKQ0KLQkJQmxpcF9zZXRfbW9kaWZpZWQoIHRoaXMtPm9zYy5vdXRwdXQgKTsNCi19DQotDQotdm9pZCBWcmM3X3J1bl91bnRpbCggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKQ0KLXsNCi0JcmVxdWlyZSggZW5kX3RpbWUgPiB0aGlzLT5uZXh0X3RpbWUgKTsNCi0NCi0JYmxpcF90aW1lX3QgdGltZSA9IHRoaXMtPm5leHRfdGltZTsNCi0JT1BMTCogb3BsbCA9ICZ0aGlzLT5vcGxsOyAvLyBjYWNoZQ0KLQlzdHJ1Y3QgQmxpcF9CdWZmZXIqIGNvbnN0IG91dHB1dCA9IHRoaXMtPiBvc2Mub3V0cHV0Ow0KLQlpZiAoIG91dHB1dCApDQotCXsNCi0JCWRvDQotCQl7DQotCQkJaW50IGFtcCA9IE9QTExfY2FsYyggb3BsbCApIDw8IDE7DQotCQkJaW50IGRlbHRhID0gYW1wIC0gdGhpcy0+b3NjLmxhc3RfYW1wOw0KLQkJCWlmICggZGVsdGEgKQ0KLQkJCXsNCi0JCQkJdGhpcy0+b3NjLmxhc3RfYW1wID0gYW1wOw0KLQkJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsNCi0JCQl9DQotCQkJdGltZSArPSBwZXJpb2Q7DQotCQl9DQotCQl3aGlsZSAoIHRpbWUgPCBlbmRfdGltZSApOw0KLQl9DQotDQotCXRoaXMtPm5leHRfdGltZSA9IHRpbWU7DQotfQ0KKworI2luY2x1ZGUgIm5lc192cmM3X2FwdS5oIgorI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCIKKworaW50IGNvbnN0IHBlcmlvZCA9IDM2OyAvLyBORVMgQ1BVIGNsb2NrcyBwZXIgRk0gY2xvY2sKKwordm9pZCBWcmM3X2luaXQoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMgKQoreworCVN5bnRoX2luaXQoICZ0aGlzLT5zeW50aCApOworCQorCU9QTExfbmV3ICggJnRoaXMtPm9wbGwsIDM1Nzk1NDUsIDM1Nzk1NDUgLyA3MiApOworICAgIE9QTExfcmVzZXRfcGF0Y2goICZ0aGlzLT5vcGxsLCBPUExMX1ZSQzdfVE9ORSApOworCQorCXRoaXMtPm9zYy5vdXRwdXQgPSAwOworCXRoaXMtPm9zYy5sYXN0X2FtcCA9IDA7CisJdGhpcy0+bWFzayA9IDA7CisKKwlWcmM3X3ZvbHVtZSggdGhpcywgKGludClGUF9PTkVfVk9MVU1FICk7CisJVnJjN19yZXNldCggdGhpcyApOworfQorCit2b2lkIFZyYzdfcmVzZXQoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMgKQoreworCXRoaXMtPmFkZHIgICAgICA9IDA7CisJdGhpcy0+bmV4dF90aW1lID0gMDsKKwl0aGlzLT5vc2MubGFzdF9hbXAgPSAwOworCisJT1BMTF9yZXNldCAoJnRoaXMtPm9wbGwpOwkKKwlPUExMX3NldE1hc2soJnRoaXMtPm9wbGwsIHRoaXMtPm1hc2spOworfQorCit2b2lkIFZyYzdfc2V0X3JhdGUoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMsIGludCByICkKK3sKKwlPUExMX3NldF9xdWFsaXR5KCAmdGhpcy0+b3BsbCwgciA8IDQ0MTAwID8gMCA6IDEgKTsKK30KKwordm9pZCBWcmM3X3dyaXRlX3JlZyggc3RydWN0IE5lc19WcmM3X0FwdSogdGhpcywgaW50IGRhdGEgKQoreworCXRoaXMtPmFkZHIgPSBkYXRhOworfQorCit2b2lkIFZyYzdfcnVuX3VudGlsKCBzdHJ1Y3QgTmVzX1ZyYzdfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCBlbmRfdGltZSApOwordm9pZCBWcmM3X3dyaXRlX2RhdGEoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMsIGJsaXBfdGltZV90IHRpbWUsIGludCBkYXRhICkKK3sJCisJaWYgKCB0aW1lID4gdGhpcy0+bmV4dF90aW1lICkKKwkJVnJjN19ydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsKKworCU9QTExfd3JpdGVJTyggJnRoaXMtPm9wbGwsIDAsIHRoaXMtPmFkZHIgKTsKKwlPUExMX3dyaXRlSU8oICZ0aGlzLT5vcGxsLCAxLCBkYXRhICk7Cit9CisKK3ZvaWQgVnJjN19lbmRfZnJhbWUoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMsIGJsaXBfdGltZV90IHRpbWUgKQoreworCWlmICggdGltZSA+IHRoaXMtPm5leHRfdGltZSApCisJCVZyYzdfcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7CisJCisJdGhpcy0+bmV4dF90aW1lIC09IHRpbWU7CisJYXNzZXJ0KCB0aGlzLT5uZXh0X3RpbWUgPj0gMCApOworCQorCWlmICggdGhpcy0+b3NjLm91dHB1dCApCisJCUJsaXBfc2V0X21vZGlmaWVkKCB0aGlzLT5vc2Mub3V0cHV0ICk7Cit9CisKK3ZvaWQgVnJjN19ydW5fdW50aWwoIHN0cnVjdCBOZXNfVnJjN19BcHUqIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICkKK3sKKwlyZXF1aXJlKCBlbmRfdGltZSA+IHRoaXMtPm5leHRfdGltZSApOworCisJYmxpcF90aW1lX3QgdGltZSA9IHRoaXMtPm5leHRfdGltZTsKKwlPUExMKiBvcGxsID0gJnRoaXMtPm9wbGw7IC8vIGNhY2hlCisJc3RydWN0IEJsaXBfQnVmZmVyKiBjb25zdCBvdXRwdXQgPSB0aGlzLT4gb3NjLm91dHB1dDsKKwlpZiAoIG91dHB1dCApCisJeworCQlkbworCQl7CisJCQlpbnQgYW1wID0gT1BMTF9jYWxjKCBvcGxsICkgPDwgMTsKKwkJCWludCBkZWx0YSA9IGFtcCAtIHRoaXMtPm9zYy5sYXN0X2FtcDsKKwkJCWlmICggZGVsdGEgKQorCQkJeworCQkJCXRoaXMtPm9zYy5sYXN0X2FtcCA9IGFtcDsKKwkJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsKKwkJCX0KKwkJCXRpbWUgKz0gcGVyaW9kOworCQl9CisJCXdoaWxlICggdGltZSA8IGVuZF90aW1lICk7CisJfQorCisJdGhpcy0+bmV4dF90aW1lID0gdGltZTsKK30KZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9vcGxfYXB1LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvb3BsX2FwdS5jCmluZGV4IDY0YjI3MTQuLmI1NzNiYWUgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9vcGxfYXB1LmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL29wbF9hcHUuYwpAQCAtMSwxOTggKzEsMTk4IEBACi0jaW5jbHVkZSAib3BsX2FwdS5oIg0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiDQotDQotLyogTk9URTogUmVtb3ZlZCB1bnVzZWQgY2hpcHMgfiBnYW1hICovDQotDQotYmxhcmdnX2Vycl90IE9wbF9pbml0KCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgbG9uZyBjbG9jaywgbG9uZyByYXRlLCBibGlwX3RpbWVfdCBwZXJpb2QsIGVudW0gb3BsX3R5cGVfdCB0eXBlICkNCi17DQotCVN5bnRoX2luaXQoICZ0aGlzLT5zeW50aCApOw0KLQ0KLQl0aGlzLT50eXBlXyA9IHR5cGU7DQotCXRoaXMtPmNsb2NrXyA9IGNsb2NrOw0KLQl0aGlzLT5yYXRlXyA9IHJhdGU7DQotCXRoaXMtPnBlcmlvZF8gPSBwZXJpb2Q7DQotCU9wbF9zZXRfb3V0cHV0KCB0aGlzLCAwICk7DQotCU9wbF92b2x1bWUoIHRoaXMsIChpbnQpRlBfT05FX1ZPTFVNRSApOw0KLQ0KLQlzd2l0Y2ggKHR5cGUpDQotCXsNCi0JY2FzZSB0eXBlX29wbGw6DQotCWNhc2UgdHlwZV9tc3htdXNpYzoNCi0JY2FzZSB0eXBlX3Ntc2ZtdW5pdDoNCi0JCU9QTExfbmV3ICggJnRoaXMtPm9wbGwsIGNsb2NrLCByYXRlICk7DQotICAgIAlPUExMX3Jlc2V0X3BhdGNoKCAmdGhpcy0+b3BsbCwgT1BMTF8yNDEzX1RPTkUgKTsNCi0JCWJyZWFrOw0KLQljYXNlIHR5cGVfdnJjNzoNCi0JCU9QTExfbmV3ICggJnRoaXMtPm9wbGwsIGNsb2NrLCByYXRlICk7DQotCQlPUExMX3Jlc2V0X3BhdGNoKCAmdGhpcy0+b3BsbCwgT1BMTF9WUkM3X1RPTkUgKTsNCi0JCWJyZWFrOw0KLQljYXNlIHR5cGVfbXN4YXVkaW86DQotCQlPUExfaW5pdCggJnRoaXMtPm9wbCwgdGhpcy0+b3BsX21lbW9yeSwgc2l6ZW9mIHRoaXMtPm9wbF9tZW1vcnkgKTsNCi0JCU9QTF9zZXRTYW1wbGVSYXRlKCAmdGhpcy0+b3BsLCByYXRlLCBjbG9jayApOw0KLQkJT1BMX3NldEludGVybmFsVm9sdW1lKCZ0aGlzLT5vcGwsIDEgPDwgMTMpOw0KLQkJYnJlYWs7DQotCX0NCi0NCi0JT3BsX3Jlc2V0KCB0aGlzICk7DQotCXJldHVybiAwOw0KLX0NCi0NCi12b2lkIE9wbF9zaHV0ZG93biggc3RydWN0IE9wbF9BcHUqIHRoaXMgKQ0KLXsNCi0Jc3dpdGNoICh0aGlzLT50eXBlXykNCi0Jew0KLQljYXNlIHR5cGVfb3BsbDoNCi0JY2FzZSB0eXBlX21zeG11c2ljOg0KLQljYXNlIHR5cGVfc21zZm11bml0Og0KLQljYXNlIHR5cGVfdnJjNzoNCi0JCU9QTExfZGVsZXRlKCAmdGhpcy0+b3BsbCApOw0KLQkJYnJlYWs7DQotCWNhc2UgdHlwZV9tc3hhdWRpbzogYnJlYWs7DQotCX0NCi19DQotDQotdm9pZCBPcGxfcmVzZXQoIHN0cnVjdCBPcGxfQXB1KiB0aGlzICkNCi17DQotCXRoaXMtPmFkZHIgPSAwOw0KLQl0aGlzLT5uZXh0X3RpbWUgPSAwOw0KLQl0aGlzLT5sYXN0X2FtcCA9IDA7DQotDQotCXN3aXRjaCAodGhpcy0+dHlwZV8pDQotCXsNCi0JY2FzZSB0eXBlX29wbGw6DQotCWNhc2UgdHlwZV9tc3htdXNpYzoNCi0JY2FzZSB0eXBlX3Ntc2ZtdW5pdDoNCi0JY2FzZSB0eXBlX3ZyYzc6DQotCQlPUExMX3Jlc2V0KCAmdGhpcy0+b3BsbCApOw0KLQkJT1BMTF9zZXRNYXNrKCAmdGhpcy0+b3BsbCwgMCApOw0KLQkJYnJlYWs7DQotCWNhc2UgdHlwZV9tc3hhdWRpbzoNCi0JCU9QTF9yZXNldCggJnRoaXMtPm9wbCApOw0KLQkJYnJlYWs7DQotCX0NCi19DQotDQotc3RhdGljIHZvaWQgcnVuX3VudGlsKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKTsNCi12b2lkIE9wbF93cml0ZV9kYXRhKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSwgaW50IGRhdGEgKQ0KLXsNCi0JcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7DQotCXN3aXRjaCAodGhpcy0+dHlwZV8pDQotCXsNCi0JY2FzZSB0eXBlX29wbGw6DQotCWNhc2UgdHlwZV9tc3htdXNpYzoNCi0JY2FzZSB0eXBlX3Ntc2ZtdW5pdDoNCi0JY2FzZSB0eXBlX3ZyYzc6DQotCQlPUExMX3dyaXRlSU8oICZ0aGlzLT5vcGxsLCAwLCB0aGlzLT5hZGRyICk7DQotCQlPUExMX3dyaXRlSU8oICZ0aGlzLT5vcGxsLCAxLCBkYXRhICk7DQotCQlicmVhazsNCi0JY2FzZSB0eXBlX21zeGF1ZGlvOg0KLQkJT1BMX3dyaXRlUmVnKCAmdGhpcy0+b3BsLCB0aGlzLT5hZGRyLCBkYXRhICk7DQotCQlicmVhazsNCi0JfQ0KLX0NCi0NCi1pbnQgT3BsX3JlYWQoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lLCBpbnQgcG9ydCApDQotew0KLQlydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsNCi0Jc3dpdGNoICh0aGlzLT50eXBlXykNCi0Jew0KLQljYXNlIHR5cGVfb3BsbDoNCi0JY2FzZSB0eXBlX21zeG11c2ljOg0KLQljYXNlIHR5cGVfc21zZm11bml0Og0KLQljYXNlIHR5cGVfdnJjNzoNCi0JCXJldHVybiBPUExMX3JlYWQoICZ0aGlzLT5vcGxsLCBwb3J0ICk7DQotCWNhc2UgdHlwZV9tc3hhdWRpbzoNCi0JCXJldHVybiBPUExfcmVhZFN0YXR1cyggJnRoaXMtPm9wbCApOw0KLQl9DQotDQotCXJldHVybiAwOw0KLX0NCi0NCi12b2lkIE9wbF9lbmRfZnJhbWUoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lICkNCi17DQotCXJ1bl91bnRpbCggdGhpcywgdGltZSApOw0KLQl0aGlzLT5uZXh0X3RpbWUgLT0gdGltZTsNCi0NCi0JaWYgKCB0aGlzLT5vdXRwdXRfICkNCi0JCUJsaXBfc2V0X21vZGlmaWVkKCB0aGlzLT5vdXRwdXRfICk7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkIHJ1bl91bnRpbCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICkNCi17DQotCWlmICggZW5kX3RpbWUgPiB0aGlzLT5uZXh0X3RpbWUgKQ0KLQl7DQotCQlibGlwX3RpbWVfdCB0aW1lX2RlbHRhID0gZW5kX3RpbWUgLSB0aGlzLT5uZXh0X3RpbWU7DQotCQlibGlwX3RpbWVfdCB0aW1lID0gdGhpcy0+bmV4dF90aW1lOw0KLQkJdW5zaWduZWQgY291bnQgPSB0aW1lX2RlbHRhIC8gdGhpcy0+cGVyaW9kXyArIDE7DQotCQlzd2l0Y2ggKHRoaXMtPnR5cGVfKQ0KLQkJew0KLQkJY2FzZSB0eXBlX29wbGw6DQotCQljYXNlIHR5cGVfbXN4bXVzaWM6DQotCQljYXNlIHR5cGVfc21zZm11bml0Og0KLQkJY2FzZSB0eXBlX3ZyYzc6DQotCQkJew0KLQkJCQlPUExMKiBvcGxsID0gJnRoaXMtPm9wbGw7IC8vIGNhY2hlDQotCQkJCXN0cnVjdCBCbGlwX0J1ZmZlciogY29uc3Qgb3V0cHV0ID0gdGhpcy0+b3V0cHV0XzsNCi0JCQkJd2hpbGUgKCBjb3VudCA+IDAgKQ0KLQkJCQl7DQotCQkJCQl1bnNpZ25lZCB0b2RvID0gY291bnQ7DQotCQkJCQlpZiAoIHRvZG8gPiAxMDI0ICkgdG9kbyA9IDEwMjQ7DQotCQkJCQlzaG9ydCAqYnVmZmVyID0gT1BMTF91cGRhdGVfYnVmZmVyKG9wbGwsIHRvZG8pOw0KLQkJCQkJDQotCQkJCQlpZiAoIG91dHB1dCAmJiBidWZmZXIgKQ0KLQkJCQkJew0KLQkJCQkJCWludCBsYXN0X2FtcCA9IHRoaXMtPmxhc3RfYW1wOw0KLQkJCQkJCXVuc2lnbmVkIGk7DQotCQkJCQkJZm9yICggaSA9IDA7IGkgPCB0b2RvOyBpKysgKQ0KLQkJCQkJCXsNCi0JCQkJCQkJaW50IGFtcCA9IGJ1ZmZlciBbaV07DQotCQkJCQkJCWludCBkZWx0YSA9IGFtcCAtIGxhc3RfYW1wOw0KLQkJCQkJCQlpZiAoIGRlbHRhICkNCi0JCQkJCQkJew0KLQkJCQkJCQkJbGFzdF9hbXAgPSBhbXA7DQotCQkJCQkJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsNCi0JCQkJCQkJfQ0KLQkJCQkJCQl0aW1lICs9IHRoaXMtPnBlcmlvZF87DQotCQkJCQkJfQ0KLQkJCQkJCXRoaXMtPmxhc3RfYW1wID0gbGFzdF9hbXA7DQotCQkJCQl9DQotCQkJCQljb3VudCAtPSB0b2RvOw0KLQkJCQl9DQotCQkJfQ0KLQkJCWJyZWFrOw0KLQkJY2FzZSB0eXBlX21zeGF1ZGlvOg0KLQkJCXsNCi0JCQkJc3RydWN0IFk4OTUwKiBvcGwgPSAmdGhpcy0+b3BsOw0KLQkJCQlzdHJ1Y3QgQmxpcF9CdWZmZXIqIGNvbnN0IG91dHB1dCA9IHRoaXMtPm91dHB1dF87DQotCQkJCXdoaWxlICggY291bnQgPiAwICkNCi0JCQkJew0KLQkJCQkJdW5zaWduZWQgdG9kbyA9IGNvdW50Ow0KLQkJCQkJaWYgKCB0b2RvID4gMTAyNCApIHRvZG8gPSAxMDI0Ow0KLQkJCQkJaW50ICpidWZmZXIgPSBPUExfdXBkYXRlQnVmZmVyKG9wbCwgdG9kbyk7DQotDQotCQkJCQlpZiAoIG91dHB1dCAmJiBidWZmZXIgKQ0KLQkJCQkJew0KLQkJCQkJCWludCBsYXN0X2FtcCA9IHRoaXMtPmxhc3RfYW1wOw0KLQkJCQkJCXVuc2lnbmVkIGk7DQotCQkJCQkJZm9yICggaSA9IDA7IGkgPCB0b2RvOyBpKysgKQ0KLQkJCQkJCXsNCi0JCQkJCQkJaW50IGFtcCA9IGJ1ZmZlciBbaV07DQotCQkJCQkJCWludCBkZWx0YSA9IGFtcCAtIGxhc3RfYW1wOw0KLQkJCQkJCQlpZiAoIGRlbHRhICkNCi0JCQkJCQkJew0KLQkJCQkJCQkJbGFzdF9hbXAgPSBhbXA7DQotCQkJCQkJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsNCi0JCQkJCQkJfQ0KLQkJCQkJCQl0aW1lICs9IHRoaXMtPnBlcmlvZF87DQotCQkJCQkJfQ0KLQkJCQkJCXRoaXMtPmxhc3RfYW1wID0gbGFzdF9hbXA7DQotCQkJCQl9DQotCQkJCQljb3VudCAtPSB0b2RvOw0KLQkJCQl9DQotCQkJfQ0KLQkJCWJyZWFrOw0KLQkJfQ0KLQkJdGhpcy0+bmV4dF90aW1lID0gdGltZTsNCi0JfQ0KLX0NCisjaW5jbHVkZSAib3BsX2FwdS5oIgorCisjaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIgorCisvKiBOT1RFOiBSZW1vdmVkIHVudXNlZCBjaGlwcyB+IGdhbWEgKi8KKworYmxhcmdnX2Vycl90IE9wbF9pbml0KCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgbG9uZyBjbG9jaywgbG9uZyByYXRlLCBibGlwX3RpbWVfdCBwZXJpb2QsIGVudW0gb3BsX3R5cGVfdCB0eXBlICkKK3sKKwlTeW50aF9pbml0KCAmdGhpcy0+c3ludGggKTsKKworCXRoaXMtPnR5cGVfID0gdHlwZTsKKwl0aGlzLT5jbG9ja18gPSBjbG9jazsKKwl0aGlzLT5yYXRlXyA9IHJhdGU7CisJdGhpcy0+cGVyaW9kXyA9IHBlcmlvZDsKKwlPcGxfc2V0X291dHB1dCggdGhpcywgMCApOworCU9wbF92b2x1bWUoIHRoaXMsIChpbnQpRlBfT05FX1ZPTFVNRSApOworCisJc3dpdGNoICh0eXBlKQorCXsKKwljYXNlIHR5cGVfb3BsbDoKKwljYXNlIHR5cGVfbXN4bXVzaWM6CisJY2FzZSB0eXBlX3Ntc2ZtdW5pdDoKKwkJT1BMTF9uZXcgKCAmdGhpcy0+b3BsbCwgY2xvY2ssIHJhdGUgKTsKKyAgICAJT1BMTF9yZXNldF9wYXRjaCggJnRoaXMtPm9wbGwsIE9QTExfMjQxM19UT05FICk7CisJCWJyZWFrOworCWNhc2UgdHlwZV92cmM3OgorCQlPUExMX25ldyAoICZ0aGlzLT5vcGxsLCBjbG9jaywgcmF0ZSApOworCQlPUExMX3Jlc2V0X3BhdGNoKCAmdGhpcy0+b3BsbCwgT1BMTF9WUkM3X1RPTkUgKTsKKwkJYnJlYWs7CisJY2FzZSB0eXBlX21zeGF1ZGlvOgorCQlPUExfaW5pdCggJnRoaXMtPm9wbCwgdGhpcy0+b3BsX21lbW9yeSwgc2l6ZW9mIHRoaXMtPm9wbF9tZW1vcnkgKTsKKwkJT1BMX3NldFNhbXBsZVJhdGUoICZ0aGlzLT5vcGwsIHJhdGUsIGNsb2NrICk7CisJCU9QTF9zZXRJbnRlcm5hbFZvbHVtZSgmdGhpcy0+b3BsLCAxIDw8IDEzKTsKKwkJYnJlYWs7CisJfQorCisJT3BsX3Jlc2V0KCB0aGlzICk7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgT3BsX3NodXRkb3duKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcyApCit7CisJc3dpdGNoICh0aGlzLT50eXBlXykKKwl7CisJY2FzZSB0eXBlX29wbGw6CisJY2FzZSB0eXBlX21zeG11c2ljOgorCWNhc2UgdHlwZV9zbXNmbXVuaXQ6CisJY2FzZSB0eXBlX3ZyYzc6CisJCU9QTExfZGVsZXRlKCAmdGhpcy0+b3BsbCApOworCQlicmVhazsKKwljYXNlIHR5cGVfbXN4YXVkaW86IGJyZWFrOworCX0KK30KKwordm9pZCBPcGxfcmVzZXQoIHN0cnVjdCBPcGxfQXB1KiB0aGlzICkKK3sKKwl0aGlzLT5hZGRyID0gMDsKKwl0aGlzLT5uZXh0X3RpbWUgPSAwOworCXRoaXMtPmxhc3RfYW1wID0gMDsKKworCXN3aXRjaCAodGhpcy0+dHlwZV8pCisJeworCWNhc2UgdHlwZV9vcGxsOgorCWNhc2UgdHlwZV9tc3htdXNpYzoKKwljYXNlIHR5cGVfc21zZm11bml0OgorCWNhc2UgdHlwZV92cmM3OgorCQlPUExMX3Jlc2V0KCAmdGhpcy0+b3BsbCApOworCQlPUExMX3NldE1hc2soICZ0aGlzLT5vcGxsLCAwICk7CisJCWJyZWFrOworCWNhc2UgdHlwZV9tc3hhdWRpbzoKKwkJT1BMX3Jlc2V0KCAmdGhpcy0+b3BsICk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgcnVuX3VudGlsKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKTsKK3ZvaWQgT3BsX3dyaXRlX2RhdGEoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lLCBpbnQgZGF0YSApCit7CisJcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7CisJc3dpdGNoICh0aGlzLT50eXBlXykKKwl7CisJY2FzZSB0eXBlX29wbGw6CisJY2FzZSB0eXBlX21zeG11c2ljOgorCWNhc2UgdHlwZV9zbXNmbXVuaXQ6CisJY2FzZSB0eXBlX3ZyYzc6CisJCU9QTExfd3JpdGVJTyggJnRoaXMtPm9wbGwsIDAsIHRoaXMtPmFkZHIgKTsKKwkJT1BMTF93cml0ZUlPKCAmdGhpcy0+b3BsbCwgMSwgZGF0YSApOworCQlicmVhazsKKwljYXNlIHR5cGVfbXN4YXVkaW86CisJCU9QTF93cml0ZVJlZyggJnRoaXMtPm9wbCwgdGhpcy0+YWRkciwgZGF0YSApOworCQlicmVhazsKKwl9Cit9CisKK2ludCBPcGxfcmVhZCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90IHRpbWUsIGludCBwb3J0ICkKK3sKKwlydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsKKwlzd2l0Y2ggKHRoaXMtPnR5cGVfKQorCXsKKwljYXNlIHR5cGVfb3BsbDoKKwljYXNlIHR5cGVfbXN4bXVzaWM6CisJY2FzZSB0eXBlX3Ntc2ZtdW5pdDoKKwljYXNlIHR5cGVfdnJjNzoKKwkJcmV0dXJuIE9QTExfcmVhZCggJnRoaXMtPm9wbGwsIHBvcnQgKTsKKwljYXNlIHR5cGVfbXN4YXVkaW86CisJCXJldHVybiBPUExfcmVhZFN0YXR1cyggJnRoaXMtPm9wbCApOworCX0KKworCXJldHVybiAwOworfQorCit2b2lkIE9wbF9lbmRfZnJhbWUoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCB0aW1lICkKK3sKKwlydW5fdW50aWwoIHRoaXMsIHRpbWUgKTsKKwl0aGlzLT5uZXh0X3RpbWUgLT0gdGltZTsKKworCWlmICggdGhpcy0+b3V0cHV0XyApCisJCUJsaXBfc2V0X21vZGlmaWVkKCB0aGlzLT5vdXRwdXRfICk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bl91bnRpbCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICkKK3sKKwlpZiAoIGVuZF90aW1lID4gdGhpcy0+bmV4dF90aW1lICkKKwl7CisJCWJsaXBfdGltZV90IHRpbWVfZGVsdGEgPSBlbmRfdGltZSAtIHRoaXMtPm5leHRfdGltZTsKKwkJYmxpcF90aW1lX3QgdGltZSA9IHRoaXMtPm5leHRfdGltZTsKKwkJdW5zaWduZWQgY291bnQgPSB0aW1lX2RlbHRhIC8gdGhpcy0+cGVyaW9kXyArIDE7CisJCXN3aXRjaCAodGhpcy0+dHlwZV8pCisJCXsKKwkJY2FzZSB0eXBlX29wbGw6CisJCWNhc2UgdHlwZV9tc3htdXNpYzoKKwkJY2FzZSB0eXBlX3Ntc2ZtdW5pdDoKKwkJY2FzZSB0eXBlX3ZyYzc6CisJCQl7CisJCQkJT1BMTCogb3BsbCA9ICZ0aGlzLT5vcGxsOyAvLyBjYWNoZQorCQkJCXN0cnVjdCBCbGlwX0J1ZmZlciogY29uc3Qgb3V0cHV0ID0gdGhpcy0+b3V0cHV0XzsKKwkJCQl3aGlsZSAoIGNvdW50ID4gMCApCisJCQkJeworCQkJCQl1bnNpZ25lZCB0b2RvID0gY291bnQ7CisJCQkJCWlmICggdG9kbyA+IDEwMjQgKSB0b2RvID0gMTAyNDsKKwkJCQkJc2hvcnQgKmJ1ZmZlciA9IE9QTExfdXBkYXRlX2J1ZmZlcihvcGxsLCB0b2RvKTsKKwkJCQkJCisJCQkJCWlmICggb3V0cHV0ICYmIGJ1ZmZlciApCisJCQkJCXsKKwkJCQkJCWludCBsYXN0X2FtcCA9IHRoaXMtPmxhc3RfYW1wOworCQkJCQkJdW5zaWduZWQgaTsKKwkJCQkJCWZvciAoIGkgPSAwOyBpIDwgdG9kbzsgaSsrICkKKwkJCQkJCXsKKwkJCQkJCQlpbnQgYW1wID0gYnVmZmVyIFtpXTsKKwkJCQkJCQlpbnQgZGVsdGEgPSBhbXAgLSBsYXN0X2FtcDsKKwkJCQkJCQlpZiAoIGRlbHRhICkKKwkJCQkJCQl7CisJCQkJCQkJCWxhc3RfYW1wID0gYW1wOworCQkJCQkJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsKKwkJCQkJCQl9CisJCQkJCQkJdGltZSArPSB0aGlzLT5wZXJpb2RfOworCQkJCQkJfQorCQkJCQkJdGhpcy0+bGFzdF9hbXAgPSBsYXN0X2FtcDsKKwkJCQkJfQorCQkJCQljb3VudCAtPSB0b2RvOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIHR5cGVfbXN4YXVkaW86CisJCQl7CisJCQkJc3RydWN0IFk4OTUwKiBvcGwgPSAmdGhpcy0+b3BsOworCQkJCXN0cnVjdCBCbGlwX0J1ZmZlciogY29uc3Qgb3V0cHV0ID0gdGhpcy0+b3V0cHV0XzsKKwkJCQl3aGlsZSAoIGNvdW50ID4gMCApCisJCQkJeworCQkJCQl1bnNpZ25lZCB0b2RvID0gY291bnQ7CisJCQkJCWlmICggdG9kbyA+IDEwMjQgKSB0b2RvID0gMTAyNDsKKwkJCQkJaW50ICpidWZmZXIgPSBPUExfdXBkYXRlQnVmZmVyKG9wbCwgdG9kbyk7CisKKwkJCQkJaWYgKCBvdXRwdXQgJiYgYnVmZmVyICkKKwkJCQkJeworCQkJCQkJaW50IGxhc3RfYW1wID0gdGhpcy0+bGFzdF9hbXA7CisJCQkJCQl1bnNpZ25lZCBpOworCQkJCQkJZm9yICggaSA9IDA7IGkgPCB0b2RvOyBpKysgKQorCQkJCQkJeworCQkJCQkJCWludCBhbXAgPSBidWZmZXIgW2ldOworCQkJCQkJCWludCBkZWx0YSA9IGFtcCAtIGxhc3RfYW1wOworCQkJCQkJCWlmICggZGVsdGEgKQorCQkJCQkJCXsKKwkJCQkJCQkJbGFzdF9hbXAgPSBhbXA7CisJCQkJCQkJCVN5bnRoX29mZnNldF9pbmxpbmUoICZ0aGlzLT5zeW50aCwgdGltZSwgZGVsdGEsIG91dHB1dCApOworCQkJCQkJCX0KKwkJCQkJCQl0aW1lICs9IHRoaXMtPnBlcmlvZF87CisJCQkJCQl9CisJCQkJCQl0aGlzLT5sYXN0X2FtcCA9IGxhc3RfYW1wOworCQkJCQl9CisJCQkJCWNvdW50IC09IHRvZG87CisJCQkJfQorCQkJfQorCQkJYnJlYWs7CisJCX0KKwkJdGhpcy0+bmV4dF90aW1lID0gdGltZTsKKwl9Cit9CmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvb3BsX2FwdS5oIGIvYXBwcy9jb2RlY3MvbGliZ21lL29wbF9hcHUuaAppbmRleCBmMjRhOGQ2Li43NmZhNzY2IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvb3BsX2FwdS5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9vcGxfYXB1LmgKQEAgLTEsNjMgKzEsNjMgQEAKLSNpZm5kZWYgT1BMX0FQVV9IDQotI2RlZmluZSBPUExfQVBVX0gNCi0NCi0jaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIg0KLSNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiDQotI2luY2x1ZGUgImJsaXBfYnVmZmVyLmgiDQotDQotI2luY2x1ZGUgImVtdTg5NTAuaCINCi0jaW5jbHVkZSAiZW11MjQxMy5oIg0KLQ0KLWVudW0gb3BsX3R5cGVfdCB7IHR5cGVfb3BsbCA9IDB4MTAsIHR5cGVfbXN4bXVzaWMgPSAweDExLCB0eXBlX3Ntc2ZtdW5pdCA9IDB4MTIsDQotCQkJdHlwZV92cmM3ID0gMHgxMywgdHlwZV9tc3hhdWRpbyA9IDB4MjEgfTsNCi0NCi1lbnVtIHsgb3BsX29zY19jb3VudCA9IDEgfTsNCi0NCi1zdHJ1Y3QgT3BsX0FwdSB7DQotCXN0cnVjdCBCbGlwX0J1ZmZlciogb3V0cHV0XzsNCi0JZW51bSBvcGxfdHlwZV90IHR5cGVfOw0KLQ0KLQlibGlwX3RpbWVfdCBuZXh0X3RpbWU7DQotCWludCBsYXN0X2FtcDsNCi0JaW50IGFkZHI7DQotCQ0KLQlsb25nIGNsb2NrXzsNCi0JbG9uZyByYXRlXzsNCi0JYmxpcF90aW1lX3QgcGVyaW9kXzsNCi0JDQotCXN0cnVjdCBCbGlwX1N5bnRoIHN5bnRoOw0KLQ0KLQkvLyBPUEwgY2hpcHMNCi0Jc3RydWN0IFk4OTUwIG9wbDsNCi0JT1BMTCBvcGxsOw0KLQkNCi0JdW5zaWduZWQgY2hhciByZWdzWyAweDEwMCBdOw0KLQl1bnNpZ25lZCBjaGFyIG9wbF9tZW1vcnlbIDMyNzY4IF07DQotfTsNCi0NCi1ibGFyZ2dfZXJyX3QgT3BsX2luaXQoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBsb25nIGNsb2NrLCBsb25nIHJhdGUsIGJsaXBfdGltZV90IHBlcmlvZCwgZW51bSBvcGxfdHlwZV90IHR5cGUgKTsNCi12b2lkIE9wbF9zaHV0ZG93biggc3RydWN0IE9wbF9BcHUqIHRoaXMgKTsNCi0NCi12b2lkIE9wbF9yZXNldCggc3RydWN0IE9wbF9BcHUqIHRoaXMgKTsNCi1zdGF0aWMgaW5saW5lIHZvaWQgT3BsX3ZvbHVtZSggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGludCB2ICkgeyBTeW50aF92b2x1bWUoICZ0aGlzLT5zeW50aCwgdiAvICg0MDk2ICogNikgKTsgfQ0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBPcGxfb3NjX291dHB1dCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGludCBpLCBzdHJ1Y3QgQmxpcF9CdWZmZXIqIGJ1ZiApDQotew0KLSNpZiBkZWZpbmVkKFJPQ0tCT1gpDQotCSh2b2lkKSBpOw0KLSNlbmRpZg0KLQlhc3NlcnQoICh1bnNpZ25lZCkgaSA8IG9wbF9vc2NfY291bnQgKTsNCi0JdGhpcy0+b3V0cHV0XyA9IGJ1ZjsNCi19DQotDQotc3RhdGljIGlubGluZSB2b2lkIE9wbF9zZXRfb3V0cHV0KCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgc3RydWN0IEJsaXBfQnVmZmVyKiBidWYgKSB7IE9wbF9vc2Nfb3V0cHV0KCB0aGlzLCAwLCBidWYgKTsgfQ0KLXZvaWQgT3BsX2VuZF9mcmFtZSggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90ICk7DQotDQotc3RhdGljIGlubGluZSB2b2lkIE9wbF93cml0ZV9hZGRyKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgaW50IGRhdGEgKSB7IHRoaXMtPmFkZHIgPSBkYXRhOyB9DQotdm9pZCBPcGxfd3JpdGVfZGF0YSggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90LCBpbnQgZGF0YSApOw0KLQ0KLWludCBPcGxfcmVhZCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGJsaXBfdGltZV90LCBpbnQgcG9ydCApOw0KLQ0KLXN0YXRpYyBpbmxpbmUgYm9vbCBPcGxfc3VwcG9ydGVkKCB2b2lkICkgeyByZXR1cm4gdHJ1ZTsgfQ0KLQ0KLSNlbmRpZg0KKyNpZm5kZWYgT1BMX0FQVV9ICisjZGVmaW5lIE9QTF9BUFVfSAorCisjaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIgorI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCIKKyNpbmNsdWRlICJibGlwX2J1ZmZlci5oIgorCisjaW5jbHVkZSAiZW11ODk1MC5oIgorI2luY2x1ZGUgImVtdTI0MTMuaCIKKworZW51bSBvcGxfdHlwZV90IHsgdHlwZV9vcGxsID0gMHgxMCwgdHlwZV9tc3htdXNpYyA9IDB4MTEsIHR5cGVfc21zZm11bml0ID0gMHgxMiwKKwkJCXR5cGVfdnJjNyA9IDB4MTMsIHR5cGVfbXN4YXVkaW8gPSAweDIxIH07CisKK2VudW0geyBvcGxfb3NjX2NvdW50ID0gMSB9OworCitzdHJ1Y3QgT3BsX0FwdSB7CisJc3RydWN0IEJsaXBfQnVmZmVyKiBvdXRwdXRfOworCWVudW0gb3BsX3R5cGVfdCB0eXBlXzsKKworCWJsaXBfdGltZV90IG5leHRfdGltZTsKKwlpbnQgbGFzdF9hbXA7CisJaW50IGFkZHI7CisJCisJbG9uZyBjbG9ja187CisJbG9uZyByYXRlXzsKKwlibGlwX3RpbWVfdCBwZXJpb2RfOworCQorCXN0cnVjdCBCbGlwX1N5bnRoIHN5bnRoOworCisJLy8gT1BMIGNoaXBzCisJc3RydWN0IFk4OTUwIG9wbDsKKwlPUExMIG9wbGw7CisJCisJdW5zaWduZWQgY2hhciByZWdzWyAweDEwMCBdOworCXVuc2lnbmVkIGNoYXIgb3BsX21lbW9yeVsgMzI3NjggXTsKK307CisKK2JsYXJnZ19lcnJfdCBPcGxfaW5pdCggc3RydWN0IE9wbF9BcHUqIHRoaXMsIGxvbmcgY2xvY2ssIGxvbmcgcmF0ZSwgYmxpcF90aW1lX3QgcGVyaW9kLCBlbnVtIG9wbF90eXBlX3QgdHlwZSApOwordm9pZCBPcGxfc2h1dGRvd24oIHN0cnVjdCBPcGxfQXB1KiB0aGlzICk7CisKK3ZvaWQgT3BsX3Jlc2V0KCBzdHJ1Y3QgT3BsX0FwdSogdGhpcyApOworc3RhdGljIGlubGluZSB2b2lkIE9wbF92b2x1bWUoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBpbnQgdiApIHsgU3ludGhfdm9sdW1lKCAmdGhpcy0+c3ludGgsIHYgLyAoNDA5NiAqIDYpICk7IH0KKworc3RhdGljIGlubGluZSB2b2lkIE9wbF9vc2Nfb3V0cHV0KCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgaW50IGksIHN0cnVjdCBCbGlwX0J1ZmZlciogYnVmICkKK3sKKyNpZiBkZWZpbmVkKFJPQ0tCT1gpCisJKHZvaWQpIGk7CisjZW5kaWYKKwlhc3NlcnQoICh1bnNpZ25lZCkgaSA8IG9wbF9vc2NfY291bnQgKTsKKwl0aGlzLT5vdXRwdXRfID0gYnVmOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgT3BsX3NldF9vdXRwdXQoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBzdHJ1Y3QgQmxpcF9CdWZmZXIqIGJ1ZiApIHsgT3BsX29zY19vdXRwdXQoIHRoaXMsIDAsIGJ1ZiApOyB9Cit2b2lkIE9wbF9lbmRfZnJhbWUoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCApOworCitzdGF0aWMgaW5saW5lIHZvaWQgT3BsX3dyaXRlX2FkZHIoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBpbnQgZGF0YSApIHsgdGhpcy0+YWRkciA9IGRhdGE7IH0KK3ZvaWQgT3BsX3dyaXRlX2RhdGEoIHN0cnVjdCBPcGxfQXB1KiB0aGlzLCBibGlwX3RpbWVfdCwgaW50IGRhdGEgKTsKKworaW50IE9wbF9yZWFkKCBzdHJ1Y3QgT3BsX0FwdSogdGhpcywgYmxpcF90aW1lX3QsIGludCBwb3J0ICk7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBPcGxfc3VwcG9ydGVkKCB2b2lkICkgeyByZXR1cm4gdHJ1ZTsgfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9vcGx0YWJsZXMuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS9vcGx0YWJsZXMuaAppbmRleCA2ZWMxMGVhLi41MGZjMGE4IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvb3BsdGFibGVzLmgKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL29wbHRhYmxlcy5oCkBAIC0xLDI0MiArMSwyNDIgQEAKLSNpZm5kZWYgX09QTFRBQkxFU19IXw0KLSNkZWZpbmUgX09QTFRBQkxFU19IXw0KLQ0KLS8qIFByZWNhbGN1bGF0ZWQgZW11ODk1MCB0YWJsZXMgZm9yIHVzZSBpbiBSb2NrYm94LCANCi0gICBDYWxjdWxhdGVkIGZvciA0NEtoeiBzYW1wbGluZyByYXRlICovDQotDQotc3RhdGljIGNvbnN0IHNob3J0IGFyX2FkanVzdF9jb2VmZltdID0gew0KLSAJIDI1NSwgIDIyNywgIDIxMCwgIDE5OCwgIDE4OSwgIDE4MSwgIDE3NSwgIDE3MCwgIDE2NSwgIDE2MSwgIDE1NywgDQotCSAxNTMsICAxNTAsICAxNDcsICAxNDQsICAxNDEsICAxMzksICAxMzYsICAxMzQsICAxMzIsICAxMzAsICAxMjgsIA0KLQkgMTI2LCAgMTI1LCAgMTIzLCAgMTIxLCAgMTIwLCAgMTE4LCAgMTE3LCAgMTE1LCAgMTE0LCAgMTEzLCAgMTEyLCANCi0JIDExMCwgIDEwOSwgIDEwOCwgIDEwNywgIDEwNiwgIDEwNSwgIDEwNCwgIDEwMywgIDEwMiwgIDEwMSwgIDEwMCwgDQotCSAgOTksICAgOTgsICAgOTcsICAgOTYsICAgOTUsICAgOTQsICAgOTQsICAgOTMsICAgOTIsICAgOTEsICAgOTEsIA0KLQkgIDkwLCAgIDg5LCAgIDg4LCAgIDg4LCAgIDg3LCAgIDg2LCAgIDg2LCAgIDg1LCAgIDg0LCAgIDg0LCAgIDgzLCANCi0JICA4MiwgICA4MiwgICA4MSwgICA4MSwgICA4MCwgICA3OSwgICA3OSwgICA3OCwgICA3OCwgICA3NywgICA3NywgDQotCSAgNzYsICAgNzYsICAgNzUsICAgNzUsICAgNzQsICAgNzQsICAgNzMsICAgNzMsICAgNzIsICAgNzIsICAgNzEsIA0KLQkgIDcxLCAgIDcwLCAgIDcwLCAgIDY5LCAgIDY5LCAgIDY5LCAgIDY4LCAgIDY4LCAgIDY3LCAgIDY3LCAgIDY2LCANCi0JICA2NiwgICA2NiwgICA2NSwgICA2NSwgICA2NCwgICA2NCwgICA2NCwgICA2MywgICA2MywgICA2MiwgICA2MiwgDQotCSAgNjIsICAgNjEsICAgNjEsICAgNjEsICAgNjAsICAgNjAsICAgNjAsICAgNTksICAgNTksICAgNTksICAgNTgsIA0KLQkgIDU4LCAgIDU4LCAgIDU3LCAgIDU3LCAgIDU3LCAgIDU2LCAgIDU2LCAgIDU2LCAgIDU1LCAgIDU1LCAgIDU1LCANCi0JICA1NCwgICA1NCwgICA1NCwgICA1MywgICA1MywgICA1MywgICA1MywgICA1MiwgICA1MiwgICA1MiwgICA1MSwgDQotCSAgNTEsICAgNTEsICAgNTAsICAgNTAsICAgNTAsICAgNTAsICAgNDksICAgNDksICAgNDksICAgNDksICAgNDgsIA0KLQkgIDQ4LCAgIDQ4LCAgIDQ4LCAgIDQ3LCAgIDQ3LCAgIDQ3LCAgIDQ2LCAgIDQ2LCAgIDQ2LCAgIDQ2LCAgIDQ1LCANCi0JICA0NSwgICA0NSwgICA0NSwgICA0NCwgICA0NCwgICA0NCwgICA0NCwgICA0NCwgICA0MywgICA0MywgICA0MywgDQotCSAgNDMsICAgNDIsICAgNDIsICAgNDIsICAgNDIsICAgNDEsICAgNDEsICAgNDEsICAgNDEsICAgNDEsICAgNDAsIA0KLQkgIDQwLCAgIDQwLCAgIDQwLCAgIDM5LCAgIDM5LCAgIDM5LCAgIDM5LCAgIDM5LCAgIDM4LCAgIDM4LCAgIDM4LCANCi0JICAzOCwgICAzOCwgICAzNywgICAzNywgICAzNywgICAzNywgICAzNywgICAzNiwgICAzNiwgICAzNiwgICAzNiwgDQotCSAgMzYsICAgMzUsICAgMzUsICAgMzUsICAgMzUsICAgMzUsICAgMzQsICAgMzQsICAgMzQsICAgMzQsICAgMzQsIA0KLQkgIDMzLCAgIDMzLCAgIDMzLCAgIDMzLCAgIDMzLCAgIDMzLCAgIDMyLCAgIDMyLCAgIDMyLCAgIDMyLCAgIDMyLCANCi0JICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMCwgICAzMCwgICAzMCwgICAzMCwgICAzMCwgDQotCSAgMzAsICAgMjksICAgMjksICAgMjksICAgMjksICAgMjksICAgMjksICAgMjgsICAgMjgsICAgMjgsICAgMjgsIA0KLQkgIDI4LCAgIDI4LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI2LCAgIDI2LCAgIDI2LCANCi0JICAyNiwgICAyNiwgICAyNiwgICAyNiwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgDQotCSAgMjQsICAgMjQsICAgMjQsICAgMjQsICAgMjQsICAgMjQsICAgMjMsICAgMjMsICAgMjMsICAgMjMsICAgMjMsIA0KLQkgIDIzLCAgIDIzLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIxLCAgIDIxLCANCi0JICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgDQotCSAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTgsIA0KLQkgIDE4LCAgIDE4LCAgIDE4LCAgIDE4LCAgIDE4LCAgIDE4LCAgIDE4LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCANCi0JICAxNywgICAxNywgICAxNywgICAxNywgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgDQotCSAgMTYsICAgMTUsICAgMTUsICAgMTUsICAgMTUsICAgMTUsICAgMTUsICAgMTUsICAgMTUsICAgMTQsICAgMTQsIA0KLQkgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCANCi0JICAxMywgICAxMywgICAxMywgICAxMywgICAxMywgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgDQotCSAgMTIsICAgMTIsICAgMTIsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTEsIA0KLQkgIDExLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCANCi0JICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOCwgDQotCSAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDcsICAgIDcsIA0KLQkgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA2LCAgICA2LCAgICA2LCANCi0JICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgDQotCSAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDQsICAgIDQsICAgIDQsICAgIDQsIA0KLQkgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICAzLCAgICAzLCAgICAzLCAgICAzLCANCi0JICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMiwgICAgMiwgICAgMiwgDQotCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsIA0KLQkgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDANCi19Ow0KLSAgIA0KLXN0YXRpYyBjb25zdCBzaG9ydCBkYjJsaW5fY29lZmZbXSA9IHsNCi0JMjA0NywgMjAwMywgMTk2MCwgMTkxOCwgMTg3NywgMTgzNywgMTc5OCwgMTc1OSwgMTcyMiwgMTY4NSwgMTY0OSwgDQotCTE2MTQsIDE1NzksIDE1NDYsIDE1MTMsIDE0ODAsIDE0NDksIDE0MTgsIDEzODcsIDEzNTgsIDEzMjksIDEzMDAsIA0KLQkxMjczLCAxMjQ1LCAxMjE5LCAxMTkzLCAxMTY3LCAxMTQyLCAxMTE4LCAxMDk0LCAxMDcxLCAxMDQ4LCAxMDI1LCANCi0JMTAwNCwgIDk4MiwgIDk2MSwgIDk0MSwgIDkyMCwgIDkwMSwgIDg4MiwgIDg2MywgIDg0NCwgIDgyNiwgIDgwOSwgDQotCSA3OTEsICA3NzQsICA3NTgsICA3NDIsICA3MjYsICA3MTAsICA2OTUsICA2ODAsICA2NjYsICA2NTEsICA2MzgsIA0KLQkgNjI0LCAgNjExLCAgNTk4LCAgNTg1LCAgNTcyLCAgNTYwLCAgNTQ4LCAgNTM2LCAgNTI1LCAgNTE0LCAgNTAzLCANCi0JIDQ5MiwgIDQ4MSwgIDQ3MSwgIDQ2MSwgIDQ1MSwgIDQ0MiwgIDQzMiwgIDQyMywgIDQxNCwgIDQwNSwgIDM5NiwgDQotCSAzODgsICAzODAsICAzNzEsICAzNjQsICAzNTYsICAzNDgsICAzNDEsICAzMzMsICAzMjYsICAzMTksICAzMTIsIA0KLQkgMzA2LCAgMjk5LCAgMjkzLCAgMjg3LCAgMjgwLCAgMjc0LCAgMjY5LCAgMjYzLCAgMjU3LCAgMjUyLCAgMjQ2LCANCi0JIDI0MSwgIDIzNiwgIDIzMSwgIDIyNiwgIDIyMSwgIDIxNiwgIDIxMiwgIDIwNywgIDIwMywgIDE5OCwgIDE5NCwgDQotCSAxOTAsICAxODYsICAxODIsICAxNzgsICAxNzQsICAxNzAsICAxNjcsICAxNjMsICAxNjAsICAxNTYsICAxNTMsIA0KLQkgMTUwLCAgMTQ3LCAgMTQzLCAgMTQwLCAgMTM3LCAgMTM0LCAgMTMxLCAgMTI5LCAgMTI2LCAgMTIzLCAgMTIxLCANCi0JIDExOCwgIDExNSwgIDExMywgIDExMSwgIDEwOCwgIDEwNiwgIDEwNCwgIDEwMSwgICA5OSwgICA5NywgICA5NSwgDQotCSAgOTMsICAgOTEsICAgODksICAgODcsICAgODUsICAgODMsICAgODIsICAgODAsICAgNzgsICAgNzYsICAgNzUsIA0KLQkgIDczLCAgIDcyLCAgIDcwLCAgIDY5LCAgIDY3LCAgIDY2LCAgIDY0LCAgIDYzLCAgIDYxLCAgIDYwLCAgIDU5LCANCi0JICA1OCwgICA1NiwgICA1NSwgICA1NCwgICA1MywgICA1MiwgICA1MSwgICA0OSwgICA0OCwgICA0NywgICA0NiwgDQotCSAgNDUsICAgNDQsICAgNDMsICAgNDIsICAgNDIsICAgNDEsICAgNDAsICAgMzksICAgMzgsICAgMzcsICAgMzYsIA0KLQkgIDM2LCAgIDM1LCAgIDM0LCAgIDMzLCAgIDMzLCAgIDMyLCAgIDMxLCAgIDMxLCAgIDMwLCAgIDI5LCAgIDI5LCANCi0JICAyOCwgICAyNywgICAyNywgICAyNiwgICAyNiwgICAyNSwgICAyNSwgICAyNCwgICAyMywgICAyMywgICAyMiwgDQotCSAgMjIsICAgMjEsICAgMjEsICAgMjEsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTgsICAgMTgsICAgMTgsIA0KLQkgIDE3LCAgIDE3LCAgIDE2LCAgIDE2LCAgIDE2LCAgIDE1LCAgIDE1LCAgIDE1LCAgIDE0LCAgIDE0LCAgIDE0LCANCi0JICAxMywgICAxMywgICAxMywgICAxMywgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMSwgICAxMSwgICAxMSwgDQotCSAgMTEsICAgMTAsICAgMTAsICAgMTAsICAgMTAsICAgIDksICAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsIA0KLQkgICA4LCAgICA4LCAgICA4LCAgICA4LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCANCi0JICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgDQotCSAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsIA0KLQkgICA0LCAgICA0LCAgICA0LCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCANCi0JICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgDQotCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIA0KLQkgICAyLCAgICAyLCAgICAyLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCANCi0JICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgDQotCSAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLQkgICAxLCAgICAxLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0gICAJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLSAgIAkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0gICAJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwNCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLSAgIAkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0gIAkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwDQotfTsNCi0NCi1zdGF0aWMgY29uc3Qgc2hvcnQgc2luX2NvZWZmW10gPSB7DQotCSA1MTEsICAyMzUsICAyMDMsICAxODUsICAxNzEsICAxNjEsICAxNTIsICAxNDUsICAxMzksICAxMzQsICAxMjksIA0KLSAJIDEyNCwgIDEyMCwgIDExNywgIDExMywgIDExMCwgIDEwNywgIDEwNCwgIDEwMiwgICA5OSwgICA5NywgICA5NSwgDQotCSAgOTIsICAgOTAsICAgODgsICAgODcsICAgODUsICAgODMsICAgODEsICAgODAsICAgNzgsICAgNzcsICAgNzUsIA0KLQkgIDc0LCAgIDcyLCAgIDcxLCAgIDcwLCAgIDY5LCAgIDY3LCAgIDY2LCAgIDY1LCAgIDY0LCAgIDYzLCAgIDYyLCANCi0JICA2MSwgICA2MCwgICA1OSwgICA1OCwgICA1NywgICA1NiwgICA1NSwgICA1NCwgICA1MywgICA1MiwgICA1MiwgDQotCSAgNTEsICAgNTAsICAgNDksICAgNDgsICAgNDgsICAgNDcsICAgNDYsICAgNDUsICAgNDUsICAgNDQsICAgNDMsIA0KLQkgIDQzLCAgIDQyLCAgIDQxLCAgIDQxLCAgIDQwLCAgIDM5LCAgIDM5LCAgIDM4LCAgIDM4LCAgIDM3LCAgIDM3LCANCi0JICAzNiwgICAzNSwgICAzNSwgICAzNCwgICAzNCwgICAzMywgICAzMywgICAzMiwgICAzMiwgICAzMSwgICAzMSwgDQotCSAgMzAsICAgMzAsICAgMjksICAgMjksICAgMjgsICAgMjgsICAgMjgsICAgMjcsICAgMjcsICAgMjYsICAgMjYsIA0KLQkgIDI1LCAgIDI1LCAgIDI1LCAgIDI0LCAgIDI0LCAgIDIzLCAgIDIzLCAgIDIzLCAgIDIyLCAgIDIyLCAgIDIyLCANCi0JICAyMSwgICAyMSwgICAyMSwgICAyMCwgICAyMCwgICAyMCwgICAxOSwgICAxOSwgICAxOSwgICAxOCwgICAxOCwgDQotCSAgMTgsICAgMTcsICAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTYsICAgMTYsICAgMTUsICAgMTUsICAgMTUsIA0KLQkgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEyLCAgIDEyLCAgIDEyLCANCi0JICAxMiwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAgOSwgDQotCSAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDcsICAgIDcsIA0KLQkgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA1LCANCi0JICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgDQotCSAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsIA0KLQkgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCANCi0JICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgDQotCSAgIDEsICAgIDEsICAgIDEsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsIA0KLX07DQotDQotc3RhdGljIGNvbnN0IHNob3J0IHBtMF9jb2VmZltdID0gew0KLQkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCANCi0gCSAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsIA0KLQkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCANCi0JIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgDQotCSAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsIA0KLQkgMjU2LCAgMjU2LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCANCi0JIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgDQotCSAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsIA0KLQkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCANCi0JIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgDQotCSAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsIA0KLQkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU1LCAgMjU1LCAgMjU1LCANCi0JIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgDQotCSAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsIA0KLQkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCANCi0JIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgDQotCSAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTQsIA0KLQkgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCANCi0JIDI1NCwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgDQotCSAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsIA0KLQkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCANCi0JIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgDQotCSAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsIA0KLQkgMjU1LCAgMjU1LCAgMjU1LCANCi19Ow0KLQ0KLXN0YXRpYyBjb25zdCBzaG9ydCBwbTFfY29lZmZbXSA9IHsNCi0JIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgDQotIAkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU3LCANCi0JIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgDQotCSAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsIA0KLQkgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCANCi0JIDI1NywgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgDQotCSAyNTgsICAyNTgsICAyNTgsICAyNTgsICAyNTgsICAyNTgsICAyNTgsICAyNTcsICAyNTcsICAyNTcsICAyNTcsIA0KLQkgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCANCi0JIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgDQotCSAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTcsICAyNTYsICAyNTYsIA0KLQkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCANCi0JIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NSwgIDI1NSwgIDI1NSwgDQotCSAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsIA0KLQkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCANCi0JIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgDQotCSAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsIA0KLQkgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjUzLCANCi0JIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgDQotCSAyNTMsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsIA0KLQkgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCANCi0JIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgDQotCSAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTQsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsICAyNTUsIA0KLQkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCANCi0JIDI1NSwgIDI1NSwgIDI1NSwgDQotfTsNCi0NCi1zdGF0aWMgY29uc3Qgc2hvcnQgYW0wX2NvZWZmW10gPSB7DQotCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsIA0KLQkgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCANCi0JICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgDQotCSAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsIA0KLQkgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCANCi0JICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgDQotCSAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsIA0KLQkgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA0LCAgICA0LCAgICA0LCANCi0JICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgDQotCSAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsIA0KLQkgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCANCi0JICAgMywgICAgMywgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgDQotCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLQkgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCANCi0JICAgMSwgICAgMSwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMSwgICAgMSwgDQotCSAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLQkgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCANCi0JICAgMiwgICAgMiwgICAgMiwgDQotfTsNCi0NCi1zdGF0aWMgY29uc3Qgc2hvcnQgYW0xX2NvZWZmW10gPSB7DQotCSAgMTIsICAgMTMsICAgMTMsICAgMTMsICAgMTQsICAgMTQsICAgMTQsICAgMTQsICAgMTUsICAgMTUsICAgMTUsIA0KLQkgIDE2LCAgIDE2LCAgIDE2LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE4LCAgIDE4LCAgIDE4LCAgIDE5LCANCi0JICAxOSwgICAxOSwgICAxOSwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgDQotCSAgMjIsICAgMjIsICAgMjIsICAgMjIsICAgMjIsICAgMjMsICAgMjMsICAgMjMsICAgMjMsICAgMjMsICAgMjMsIA0KLQkgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI1LCAgIDI1LCAgIDI1LCANCi0JICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgDQotCSAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsICAgMjUsIA0KLQkgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDIzLCAgIDIzLCAgIDIzLCANCi0JICAyMywgICAyMywgICAyMywgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMSwgICAyMSwgICAyMSwgDQotCSAgMjEsICAgMjAsICAgMjAsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTksICAgMTksICAgMTgsICAgMTgsIA0KLQkgIDE4LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE2LCAgIDE2LCAgIDE2LCAgIDE1LCAgIDE1LCAgIDE1LCANCi0JICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxMywgICAxMywgICAxMywgICAxMiwgICAxMiwgICAxMiwgICAxMSwgDQotCSAgMTEsICAgMTEsICAgMTAsICAgMTAsICAgMTAsICAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsICAgIDgsIA0KLQkgICA4LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA2LCAgICA2LCAgICA2LCAgICA1LCAgICA1LCAgICA1LCANCi0JICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMiwgDQotCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLQkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0JICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLQkgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCANCi0JICAgMiwgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNSwgDQotCSAgIDUsICAgIDUsICAgIDUsICAgIDYsICAgIDYsICAgIDYsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDgsIA0KLQkgICA4LCAgICA4LCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgIDEwLCAgIDEwLCAgIDEwLCAgIDExLCAgIDExLCANCi0JICAxMSwgICAxMiwgICAxMiwgDQotfTsNCi0NCi0jZW5kaWYNCisjaWZuZGVmIF9PUExUQUJMRVNfSF8KKyNkZWZpbmUgX09QTFRBQkxFU19IXworCisvKiBQcmVjYWxjdWxhdGVkIGVtdTg5NTAgdGFibGVzIGZvciB1c2UgaW4gUm9ja2JveCwgCisgICBDYWxjdWxhdGVkIGZvciA0NEtoeiBzYW1wbGluZyByYXRlICovCisKK3N0YXRpYyBjb25zdCBzaG9ydCBhcl9hZGp1c3RfY29lZmZbXSA9IHsKKyAJIDI1NSwgIDIyNywgIDIxMCwgIDE5OCwgIDE4OSwgIDE4MSwgIDE3NSwgIDE3MCwgIDE2NSwgIDE2MSwgIDE1NywgCisJIDE1MywgIDE1MCwgIDE0NywgIDE0NCwgIDE0MSwgIDEzOSwgIDEzNiwgIDEzNCwgIDEzMiwgIDEzMCwgIDEyOCwgCisJIDEyNiwgIDEyNSwgIDEyMywgIDEyMSwgIDEyMCwgIDExOCwgIDExNywgIDExNSwgIDExNCwgIDExMywgIDExMiwgCisJIDExMCwgIDEwOSwgIDEwOCwgIDEwNywgIDEwNiwgIDEwNSwgIDEwNCwgIDEwMywgIDEwMiwgIDEwMSwgIDEwMCwgCisJICA5OSwgICA5OCwgICA5NywgICA5NiwgICA5NSwgICA5NCwgICA5NCwgICA5MywgICA5MiwgICA5MSwgICA5MSwgCisJICA5MCwgICA4OSwgICA4OCwgICA4OCwgICA4NywgICA4NiwgICA4NiwgICA4NSwgICA4NCwgICA4NCwgICA4MywgCisJICA4MiwgICA4MiwgICA4MSwgICA4MSwgICA4MCwgICA3OSwgICA3OSwgICA3OCwgICA3OCwgICA3NywgICA3NywgCisJICA3NiwgICA3NiwgICA3NSwgICA3NSwgICA3NCwgICA3NCwgICA3MywgICA3MywgICA3MiwgICA3MiwgICA3MSwgCisJICA3MSwgICA3MCwgICA3MCwgICA2OSwgICA2OSwgICA2OSwgICA2OCwgICA2OCwgICA2NywgICA2NywgICA2NiwgCisJICA2NiwgICA2NiwgICA2NSwgICA2NSwgICA2NCwgICA2NCwgICA2NCwgICA2MywgICA2MywgICA2MiwgICA2MiwgCisJICA2MiwgICA2MSwgICA2MSwgICA2MSwgICA2MCwgICA2MCwgICA2MCwgICA1OSwgICA1OSwgICA1OSwgICA1OCwgCisJICA1OCwgICA1OCwgICA1NywgICA1NywgICA1NywgICA1NiwgICA1NiwgICA1NiwgICA1NSwgICA1NSwgICA1NSwgCisJICA1NCwgICA1NCwgICA1NCwgICA1MywgICA1MywgICA1MywgICA1MywgICA1MiwgICA1MiwgICA1MiwgICA1MSwgCisJICA1MSwgICA1MSwgICA1MCwgICA1MCwgICA1MCwgICA1MCwgICA0OSwgICA0OSwgICA0OSwgICA0OSwgICA0OCwgCisJICA0OCwgICA0OCwgICA0OCwgICA0NywgICA0NywgICA0NywgICA0NiwgICA0NiwgICA0NiwgICA0NiwgICA0NSwgCisJICA0NSwgICA0NSwgICA0NSwgICA0NCwgICA0NCwgICA0NCwgICA0NCwgICA0NCwgICA0MywgICA0MywgICA0MywgCisJICA0MywgICA0MiwgICA0MiwgICA0MiwgICA0MiwgICA0MSwgICA0MSwgICA0MSwgICA0MSwgICA0MSwgICA0MCwgCisJICA0MCwgICA0MCwgICA0MCwgICAzOSwgICAzOSwgICAzOSwgICAzOSwgICAzOSwgICAzOCwgICAzOCwgICAzOCwgCisJICAzOCwgICAzOCwgICAzNywgICAzNywgICAzNywgICAzNywgICAzNywgICAzNiwgICAzNiwgICAzNiwgICAzNiwgCisJICAzNiwgICAzNSwgICAzNSwgICAzNSwgICAzNSwgICAzNSwgICAzNCwgICAzNCwgICAzNCwgICAzNCwgICAzNCwgCisJICAzMywgICAzMywgICAzMywgICAzMywgICAzMywgICAzMywgICAzMiwgICAzMiwgICAzMiwgICAzMiwgICAzMiwgCisJICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMCwgICAzMCwgICAzMCwgICAzMCwgICAzMCwgCisJICAzMCwgICAyOSwgICAyOSwgICAyOSwgICAyOSwgICAyOSwgICAyOSwgICAyOCwgICAyOCwgICAyOCwgICAyOCwgCisJICAyOCwgICAyOCwgICAyNywgICAyNywgICAyNywgICAyNywgICAyNywgICAyNywgICAyNiwgICAyNiwgICAyNiwgCisJICAyNiwgICAyNiwgICAyNiwgICAyNiwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgCisJICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyMywgICAyMywgICAyMywgICAyMywgICAyMywgCisJICAyMywgICAyMywgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMSwgICAyMSwgCisJICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgCisJICAyMCwgICAyMCwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOCwgCisJICAxOCwgICAxOCwgICAxOCwgICAxOCwgICAxOCwgICAxOCwgICAxOCwgICAxNywgICAxNywgICAxNywgICAxNywgCisJICAxNywgICAxNywgICAxNywgICAxNywgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgCisJICAxNiwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNCwgICAxNCwgCisJICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxMywgICAxMywgICAxMywgICAxMywgCisJICAxMywgICAxMywgICAxMywgICAxMywgICAxMywgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgCisJICAxMiwgICAxMiwgICAxMiwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgICAxMSwgCisJICAxMSwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgICAxMCwgCisJICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOCwgCisJICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgICAgNywgICAgNywgCisJICAgNywgICAgNywgICAgNywgICAgNywgICAgNywgICAgNywgICAgNywgICAgNywgICAgNiwgICAgNiwgICAgNiwgCisJICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgCisJICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgMywgICAgMywgICAgMywgICAgMywgCisJICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMiwgICAgMiwgICAgMiwgCisJICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMSwgICAgMSwgICAgMSwgCisJICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMAorfTsKKyAgIAorc3RhdGljIGNvbnN0IHNob3J0IGRiMmxpbl9jb2VmZltdID0geworCTIwNDcsIDIwMDMsIDE5NjAsIDE5MTgsIDE4NzcsIDE4MzcsIDE3OTgsIDE3NTksIDE3MjIsIDE2ODUsIDE2NDksIAorCTE2MTQsIDE1NzksIDE1NDYsIDE1MTMsIDE0ODAsIDE0NDksIDE0MTgsIDEzODcsIDEzNTgsIDEzMjksIDEzMDAsIAorCTEyNzMsIDEyNDUsIDEyMTksIDExOTMsIDExNjcsIDExNDIsIDExMTgsIDEwOTQsIDEwNzEsIDEwNDgsIDEwMjUsIAorCTEwMDQsICA5ODIsICA5NjEsICA5NDEsICA5MjAsICA5MDEsICA4ODIsICA4NjMsICA4NDQsICA4MjYsICA4MDksIAorCSA3OTEsICA3NzQsICA3NTgsICA3NDIsICA3MjYsICA3MTAsICA2OTUsICA2ODAsICA2NjYsICA2NTEsICA2MzgsIAorCSA2MjQsICA2MTEsICA1OTgsICA1ODUsICA1NzIsICA1NjAsICA1NDgsICA1MzYsICA1MjUsICA1MTQsICA1MDMsIAorCSA0OTIsICA0ODEsICA0NzEsICA0NjEsICA0NTEsICA0NDIsICA0MzIsICA0MjMsICA0MTQsICA0MDUsICAzOTYsIAorCSAzODgsICAzODAsICAzNzEsICAzNjQsICAzNTYsICAzNDgsICAzNDEsICAzMzMsICAzMjYsICAzMTksICAzMTIsIAorCSAzMDYsICAyOTksICAyOTMsICAyODcsICAyODAsICAyNzQsICAyNjksICAyNjMsICAyNTcsICAyNTIsICAyNDYsIAorCSAyNDEsICAyMzYsICAyMzEsICAyMjYsICAyMjEsICAyMTYsICAyMTIsICAyMDcsICAyMDMsICAxOTgsICAxOTQsIAorCSAxOTAsICAxODYsICAxODIsICAxNzgsICAxNzQsICAxNzAsICAxNjcsICAxNjMsICAxNjAsICAxNTYsICAxNTMsIAorCSAxNTAsICAxNDcsICAxNDMsICAxNDAsICAxMzcsICAxMzQsICAxMzEsICAxMjksICAxMjYsICAxMjMsICAxMjEsIAorCSAxMTgsICAxMTUsICAxMTMsICAxMTEsICAxMDgsICAxMDYsICAxMDQsICAxMDEsICAgOTksICAgOTcsICAgOTUsIAorCSAgOTMsICAgOTEsICAgODksICAgODcsICAgODUsICAgODMsICAgODIsICAgODAsICAgNzgsICAgNzYsICAgNzUsIAorCSAgNzMsICAgNzIsICAgNzAsICAgNjksICAgNjcsICAgNjYsICAgNjQsICAgNjMsICAgNjEsICAgNjAsICAgNTksIAorCSAgNTgsICAgNTYsICAgNTUsICAgNTQsICAgNTMsICAgNTIsICAgNTEsICAgNDksICAgNDgsICAgNDcsICAgNDYsIAorCSAgNDUsICAgNDQsICAgNDMsICAgNDIsICAgNDIsICAgNDEsICAgNDAsICAgMzksICAgMzgsICAgMzcsICAgMzYsIAorCSAgMzYsICAgMzUsICAgMzQsICAgMzMsICAgMzMsICAgMzIsICAgMzEsICAgMzEsICAgMzAsICAgMjksICAgMjksIAorCSAgMjgsICAgMjcsICAgMjcsICAgMjYsICAgMjYsICAgMjUsICAgMjUsICAgMjQsICAgMjMsICAgMjMsICAgMjIsIAorCSAgMjIsICAgMjEsICAgMjEsICAgMjEsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTgsICAgMTgsICAgMTgsIAorCSAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTYsICAgMTUsICAgMTUsICAgMTUsICAgMTQsICAgMTQsICAgMTQsIAorCSAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTEsICAgMTEsICAgMTEsIAorCSAgMTEsICAgMTAsICAgMTAsICAgMTAsICAgMTAsICAgIDksICAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsIAorCSAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsIAorCSAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDUsICAgIDUsICAgIDUsICAgIDUsIAorCSAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsIAorCSAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsIAorCSAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIAorCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIAorCSAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIAorCSAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIAorCSAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIAorCSAgIDEsICAgIDEsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisgICAJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisgICAJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisgIAkgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwCit9OworCitzdGF0aWMgY29uc3Qgc2hvcnQgc2luX2NvZWZmW10gPSB7CisJIDUxMSwgIDIzNSwgIDIwMywgIDE4NSwgIDE3MSwgIDE2MSwgIDE1MiwgIDE0NSwgIDEzOSwgIDEzNCwgIDEyOSwgCisgCSAxMjQsICAxMjAsICAxMTcsICAxMTMsICAxMTAsICAxMDcsICAxMDQsICAxMDIsICAgOTksICAgOTcsICAgOTUsIAorCSAgOTIsICAgOTAsICAgODgsICAgODcsICAgODUsICAgODMsICAgODEsICAgODAsICAgNzgsICAgNzcsICAgNzUsIAorCSAgNzQsICAgNzIsICAgNzEsICAgNzAsICAgNjksICAgNjcsICAgNjYsICAgNjUsICAgNjQsICAgNjMsICAgNjIsIAorCSAgNjEsICAgNjAsICAgNTksICAgNTgsICAgNTcsICAgNTYsICAgNTUsICAgNTQsICAgNTMsICAgNTIsICAgNTIsIAorCSAgNTEsICAgNTAsICAgNDksICAgNDgsICAgNDgsICAgNDcsICAgNDYsICAgNDUsICAgNDUsICAgNDQsICAgNDMsIAorCSAgNDMsICAgNDIsICAgNDEsICAgNDEsICAgNDAsICAgMzksICAgMzksICAgMzgsICAgMzgsICAgMzcsICAgMzcsIAorCSAgMzYsICAgMzUsICAgMzUsICAgMzQsICAgMzQsICAgMzMsICAgMzMsICAgMzIsICAgMzIsICAgMzEsICAgMzEsIAorCSAgMzAsICAgMzAsICAgMjksICAgMjksICAgMjgsICAgMjgsICAgMjgsICAgMjcsICAgMjcsICAgMjYsICAgMjYsIAorCSAgMjUsICAgMjUsICAgMjUsICAgMjQsICAgMjQsICAgMjMsICAgMjMsICAgMjMsICAgMjIsICAgMjIsICAgMjIsIAorCSAgMjEsICAgMjEsICAgMjEsICAgMjAsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTksICAgMTgsICAgMTgsIAorCSAgMTgsICAgMTcsICAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTYsICAgMTYsICAgMTUsICAgMTUsICAgMTUsIAorCSAgMTQsICAgMTQsICAgMTQsICAgMTQsICAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTIsICAgMTIsICAgMTIsIAorCSAgMTIsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTEsICAgMTAsICAgMTAsICAgMTAsICAgMTAsICAgIDksIAorCSAgIDksICAgIDksICAgIDksICAgIDksICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDcsICAgIDcsIAorCSAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDYsICAgIDUsIAorCSAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDUsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsIAorCSAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsIAorCSAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIAorCSAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIAorCSAgIDEsICAgIDEsICAgIDEsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorCSAgIDAsICAgIDAsICAgIDAsIAorfTsKKworc3RhdGljIGNvbnN0IHNob3J0IHBtMF9jb2VmZltdID0geworCSAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsICAyNTYsIAorIAkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAKKwkgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU3LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU0LCAKKwkgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAgMjU0LCAKKwkgMjU0LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAgMjU1LCAKKwkgMjU1LCAgMjU1LCAgMjU1LCAKK307CisKK3N0YXRpYyBjb25zdCBzaG9ydCBwbTFfY29lZmZbXSA9IHsKKwkgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAKKyAJIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgCisJIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1OCwgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgCisJIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NywgIDI1NiwgIDI1NiwgCisJIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgCisJIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NiwgIDI1NSwgIDI1NSwgIDI1NSwgCisJIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgCisJIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1MywgCisJIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgIDI1MywgCisJIDI1MywgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgCisJIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NCwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgCisJIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgIDI1NSwgCisJIDI1NSwgIDI1NSwgIDI1NSwgCit9OworCitzdGF0aWMgY29uc3Qgc2hvcnQgYW0wX2NvZWZmW10gPSB7CisJICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgCisJICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgCisJICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgCisJICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgICAgNCwgICAgNCwgCisJICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgCisJICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgMywgICAgMywgICAgMywgCisJICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgCisJICAgMywgICAgMywgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgCisJICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgCisJICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgCisJICAgMSwgICAgMSwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMSwgICAgMSwgCisJICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgCisJICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgCisJICAgMiwgICAgMiwgICAgMiwgCit9OworCitzdGF0aWMgY29uc3Qgc2hvcnQgYW0xX2NvZWZmW10gPSB7CisJICAxMiwgICAxMywgICAxMywgICAxMywgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNSwgICAxNSwgICAxNSwgCisJICAxNiwgICAxNiwgICAxNiwgICAxNywgICAxNywgICAxNywgICAxNywgICAxOCwgICAxOCwgICAxOCwgICAxOSwgCisJICAxOSwgICAxOSwgICAxOSwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgCisJICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMywgICAyMywgICAyMywgICAyMywgICAyMywgICAyMywgCisJICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNSwgICAyNSwgICAyNSwgCisJICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgCisJICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgICAyNSwgCisJICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyNCwgICAyMywgICAyMywgICAyMywgCisJICAyMywgICAyMywgICAyMywgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMSwgICAyMSwgICAyMSwgCisJICAyMSwgICAyMCwgICAyMCwgICAyMCwgICAyMCwgICAxOSwgICAxOSwgICAxOSwgICAxOSwgICAxOCwgICAxOCwgCisJICAxOCwgICAxNywgICAxNywgICAxNywgICAxNywgICAxNiwgICAxNiwgICAxNiwgICAxNSwgICAxNSwgICAxNSwgCisJICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxMywgICAxMywgICAxMywgICAxMiwgICAxMiwgICAxMiwgICAxMSwgCisJICAxMSwgICAxMSwgICAxMCwgICAxMCwgICAxMCwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOCwgICAgOCwgCisJICAgOCwgICAgNywgICAgNywgICAgNywgICAgNywgICAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgCisJICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgMiwgCisJICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgCisJICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgCisJICAgMiwgICAgMywgICAgMywgICAgMywgICAgMywgICAgMywgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNSwgCisJICAgNSwgICAgNSwgICAgNSwgICAgNiwgICAgNiwgICAgNiwgICAgNywgICAgNywgICAgNywgICAgNywgICAgOCwgCisJICAgOCwgICAgOCwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAxMCwgICAxMCwgICAxMCwgICAxMSwgICAxMSwgCisJICAxMSwgICAxMiwgICAxMiwgCit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9zZ2NfY3B1LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvc2djX2NwdS5jCmluZGV4IDNiZDJkMTUuLmQyM2MwMTQgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9zZ2NfY3B1LmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL3NnY19jcHUuYwpAQCAtMSwzNiArMSwzNiBAQAotLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8NCi0NCi0jaW5jbHVkZSAic2djX2VtdS5oIg0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfZW5kaWFuLmgiDQotLy8jaW5jbHVkZSAiejgwX2NwdV9sb2cuaCINCi0NCi0vKiBDb3B5cmlnaHQgKEMpIDIwMDkgU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91DQotY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nlcg0KLUdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcg0KLXZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzDQotbW9kdWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQ0KLVdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MNCi1GT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlDQotZGV0YWlscy4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KLUxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIG1vZHVsZTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLA0KLUluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8NCi0NCi0jaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIg0KLQ0KLSNkZWZpbmUgT1VUX1BPUlQoIGFkZHIsIGRhdGEgKSBjcHVfb3V0KCB0aGlzLCBUSU1FKCksIGFkZHIsIGRhdGEgKQ0KLSNkZWZpbmUgSU5fUE9SVCggYWRkciApIDAgLy8gY3B1IGluDQotI2RlZmluZSBXUklURV9NRU0oIGFkZHIsIGRhdGEgKSBjcHVfd3JpdGUoIHRoaXMsIGFkZHIsIGRhdGEgKQ0KLSNkZWZpbmUgSURMRV9BRERSICAgICAgICAgICAgICAgdGhpcy0+aWRsZV9hZGRyDQotI2RlZmluZSBSU1RfQkFTRSAgICAgICAgICAgICAgICB0aGlzLT52ZWN0b3JzX2FkZHINCi0NCi0jZGVmaW5lIENQVV9CRUdJTiBcDQotYm9vbCBydW5fY3B1KCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgY3B1X3RpbWVfdCBlbmRfdGltZSApXA0KLXtcDQotCVNnY19DcHUqIGNwdSA9ICZ0aGlzLT5jcHU7IFwNCi0JWjgwX3NldF9lbmRfdGltZSggY3B1LCBlbmRfdGltZSApOw0KLQ0KLQkjaW5jbHVkZSAiejgwX2NwdV9ydW4uaCINCi0JDQotCXJldHVybiB3YXJuaW5nOw0KLX0NCisvLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlLiBodHRwOi8vd3d3LnNsYWNrLm5ldC9+YW50LworCisjaW5jbHVkZSAic2djX2VtdS5oIgorCisjaW5jbHVkZSAiYmxhcmdnX2VuZGlhbi5oIgorLy8jaW5jbHVkZSAiejgwX2NwdV9sb2cuaCIKKworLyogQ29weXJpZ2h0IChDKSAyMDA5IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQorY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlcgorR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCit2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcworbW9kdWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQorZGV0YWlscy4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbW9kdWxlOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCitJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovCisKKyNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiCisKKyNkZWZpbmUgT1VUX1BPUlQoIGFkZHIsIGRhdGEgKSBjcHVfb3V0KCB0aGlzLCBUSU1FKCksIGFkZHIsIGRhdGEgKQorI2RlZmluZSBJTl9QT1JUKCBhZGRyICkgMCAvLyBjcHUgaW4KKyNkZWZpbmUgV1JJVEVfTUVNKCBhZGRyLCBkYXRhICkgY3B1X3dyaXRlKCB0aGlzLCBhZGRyLCBkYXRhICkKKyNkZWZpbmUgSURMRV9BRERSICAgICAgICAgICAgICAgdGhpcy0+aWRsZV9hZGRyCisjZGVmaW5lIFJTVF9CQVNFICAgICAgICAgICAgICAgIHRoaXMtPnZlY3RvcnNfYWRkcgorCisjZGVmaW5lIENQVV9CRUdJTiBcCitib29sIHJ1bl9jcHUoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBjcHVfdGltZV90IGVuZF90aW1lIClcCit7XAorCVNnY19DcHUqIGNwdSA9ICZ0aGlzLT5jcHU7IFwKKwlaODBfc2V0X2VuZF90aW1lKCBjcHUsIGVuZF90aW1lICk7CisKKwkjaW5jbHVkZSAiejgwX2NwdV9ydW4uaCIKKwkKKwlyZXR1cm4gd2FybmluZzsKK30KZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS9zZ2NfZW11LmMgYi9hcHBzL2NvZGVjcy9saWJnbWUvc2djX2VtdS5jCmluZGV4IGU3MjUzYTguLjI2N2YyYzkgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS9zZ2NfZW11LmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL3NnY19lbXUuYwpAQCAtMSw0ODAgKzEsNDgwIEBACi0vLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlLiBodHRwOi8vd3d3LnNsYWNrLm5ldC9+YW50Lw0KLQ0KLSNpbmNsdWRlICJzZ2NfZW11LmgiDQotDQotLyogQ29weXJpZ2h0IChDKSAyMDA5IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFpbnQgd2l0aCB0aGlzIG1vZHVsZTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLA0KLUluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8NCi0NCi0jaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIg0KLQ0KLWludCBjb25zdCBvc2NfY291bnQgPSBzbXNfb3NjX2NvdW50ICsgZm1fYXB1X29zY19jb3VudDsNCi0NCi1jb25zdCBjaGFyIGdtZV93cm9uZ19maWxlX3R5cGUgW10gPSAiV3JvbmcgZmlsZSB0eXBlIGZvciB0aGlzIGVtdWxhdG9yIjsNCi0NCi1zdGF0aWMgdm9pZCBjbGVhcl90cmFja192YXJzKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApDQotew0KLQl0aGlzLT5jdXJyZW50X3RyYWNrICAgID0gLTE7DQotCXRyYWNrX3N0b3AoICZ0aGlzLT50cmFja19maWx0ZXIgKTsNCi19DQotDQotdm9pZCBTZ2NfaW5pdCggc3RydWN0IFNnY19FbXUqIHRoaXMgKQ0KLXsNCi0JYXNzZXJ0KCBvZmZzZXRvZiAoc3RydWN0IGhlYWRlcl90LGNvcHlyaWdodCBbMzJdKSA9PSBoZWFkZXJfc2l6ZSApOw0KLQkNCi0JdGhpcy0+c2FtcGxlX3JhdGUgPSAwOw0KLQl0aGlzLT5tdXRlX21hc2tfICA9IDA7DQotCXRoaXMtPnRlbXBvICAgICAgID0gKGludClGUF9PTkVfVEVNUE87DQotCXRoaXMtPmdhaW4gICAgICAgID0gKGludClGUF9PTkVfR0FJTjsNCi0JDQotCS8vIGRlZmF1bHRzDQotCXRoaXMtPnRmaWx0ZXIgPSAqdHJhY2tfZ2V0X3NldHVwKCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7DQotCXRoaXMtPnRmaWx0ZXIubWF4X2luaXRpYWwgPSAyOw0KLQl0aGlzLT50ZmlsdGVyLmxvb2thaGVhZCAgID0gNjsNCi0JdGhpcy0+dHJhY2tfZmlsdGVyLnNpbGVuY2VfaWdub3JlZF8gPSBmYWxzZTsNCi0NCi0JU21zX2FwdV9pbml0KCAmdGhpcy0+YXB1ICk7DQotCUZtX2FwdV9jcmVhdGUoICZ0aGlzLT5mbV9hcHUgKTsNCi0NCi0JUm9tX2luaXQoICZ0aGlzLT5yb20sIDB4NDAwMCApOw0KLQlaODBfaW5pdCggJnRoaXMtPmNwdSApOw0KLQ0KLQlTb3VuZF9zZXRfZ2FpbiggdGhpcywgKGludCkoRlBfT05FX0dBSU4qMS4yKSApOw0KLQkNCi0JLy8gVW5sb2FkDQotCXRoaXMtPnZvaWNlX2NvdW50ID0gMDsNCi0JdGhpcy0+dm9pY2VfdHlwZXMgPSAwOw0KLQljbGVhcl90cmFja192YXJzKCB0aGlzICk7DQotfQ0KLQ0KLS8vIFNldHVwDQotDQotYmxhcmdnX2Vycl90IFNnY19sb2FkX21lbSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGNvbnN0IHZvaWQqIGRhdGEsIGxvbmcgc2l6ZSApDQotew0KLQlSRVRVUk5fRVJSKCBSb21fbG9hZCggJnRoaXMtPnJvbSwgZGF0YSwgc2l6ZSwgaGVhZGVyX3NpemUsICZ0aGlzLT5oZWFkZXIsIDAgKSApOw0KLQkNCi0JaWYgKCAhdmFsaWRfdGFnKCAmdGhpcy0+aGVhZGVyICkgKQ0KLQkJcmV0dXJuIGdtZV93cm9uZ19maWxlX3R5cGU7DQotCQ0KLQkvKiBpZiAoIGhlYWRlci52ZXJzICE9IDEgKQ0KLQkJd2FybmluZyggIlVua25vd24gZmlsZSB2ZXJzaW9uIiApOyAqLw0KLQkNCi0JLyogaWYgKCBoZWFkZXIuc3lzdGVtID4gMiApDQotCQl3YXJuaW5nKCAiVW5rbm93biBzeXN0ZW0iICk7ICovDQotCQ0KLQlhZGRyX3QgbG9hZF9hZGRyID0gZ2V0X2xlMTYoIHRoaXMtPmhlYWRlci5sb2FkX2FkZHIgKTsNCi0JLyogaWYgKCBsb2FkX2FkZHIgPCAweDQwMCApDQotCQlzZXRfd2FybmluZyggIkludmFsaWQgbG9hZCBhZGRyZXNzIiApOyAqLw0KLQkNCi0JUm9tX3NldF9hZGRyKCAmdGhpcy0+cm9tLCBsb2FkX2FkZHIgKTsNCi0JdGhpcy0+cGxheV9wZXJpb2QgPSBjbG9ja19yYXRlKCB0aGlzICkgLyA2MDsNCi0JDQotCWlmICggc2VnYV9tYXBwaW5nKCB0aGlzICkgJiYgRm1fYXB1X3N1cHBvcnRlZCgpICkNCi0JCVJFVFVSTl9FUlIoIEZtX2FwdV9pbml0KCAmdGhpcy0+Zm1fYXB1LCBjbG9ja19yYXRlKCB0aGlzICksIGNsb2NrX3JhdGUoIHRoaXMgKSAvIDcyICkgKTsNCi0JDQotCXRoaXMtPm0zdS5zaXplID0gMDsNCi0JdGhpcy0+dHJhY2tfY291bnQgPSB0aGlzLT5oZWFkZXIuc29uZ19jb3VudDsNCi0JdGhpcy0+dm9pY2VfY291bnQgPSAgc2VnYV9tYXBwaW5nKCB0aGlzICkgPyBvc2NfY291bnQgOiBzbXNfb3NjX2NvdW50Ow0KLQlzdGF0aWMgaW50IGNvbnN0IHR5cGVzIFtzbXNfb3NjX2NvdW50ICsgZm1fYXB1X29zY19jb3VudF0gPSB7DQotCQl3YXZlX3R5cGUrMSwgd2F2ZV90eXBlKzIsIHdhdmVfdHlwZSszLCBtaXhlZF90eXBlKzEsIG1peGVkX3R5cGUrMg0KLQl9Ow0KLQl0aGlzLT52b2ljZV90eXBlcyA9IHR5cGVzOw0KLQkNCi0JU21zX2FwdV92b2x1bWUoICZ0aGlzLT5hcHUsIHRoaXMtPmdhaW4gKTsNCi0JRm1fYXB1X3ZvbHVtZSggJnRoaXMtPmZtX2FwdSwgdGhpcy0+Z2FpbiApOw0KLQ0KLQkvLyBTZXR1cCBidWZmZXINCi0JdGhpcy0+Y2xvY2tfcmF0ZV8gPSBjbG9ja19yYXRlKCB0aGlzICk7DQotCUJ1ZmZlcl9jbG9ja19yYXRlKCAmdGhpcy0+c3RlcmVvX2J1ZiwgY2xvY2tfcmF0ZSggdGhpcyApICk7DQotCVJFVFVSTl9FUlIoIEJ1ZmZlcl9zZXRfY2hhbm5lbF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYsIHRoaXMtPnZvaWNlX2NvdW50LCB0aGlzLT52b2ljZV90eXBlcyApICk7DQotCXRoaXMtPmJ1Zl9jaGFuZ2VkX2NvdW50ID0gQnVmZmVyX2NoYW5uZWxzX2NoYW5nZWRfY291bnQoICZ0aGlzLT5zdGVyZW9fYnVmICk7DQotDQotCVNvdW5kX3NldF90ZW1wbyggdGhpcywgdGhpcy0+dGVtcG8gKTsNCi0JU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsNCi0JcmV0dXJuIDA7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkIFNvdW5kX3NldF92b2ljZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBpLCBzdHJ1Y3QgQmxpcF9CdWZmZXIqIGMsIHN0cnVjdCBCbGlwX0J1ZmZlciogbCwgc3RydWN0IEJsaXBfQnVmZmVyKiByICkNCi17DQotCWlmICggaSA8IHNtc19vc2NfY291bnQgKQ0KLQkJU21zX2FwdV9zZXRfb3V0cHV0KCAmdGhpcy0+YXB1LCBpLCBjLCBsLCByICk7DQotCWVsc2UNCi0JCUZtX2FwdV9zZXRfb3V0cHV0KCAmdGhpcy0+Zm1fYXB1LCBjICk7DQotfQ0KLQ0KLXN0YXRpYyBibGFyZ2dfZXJyX3QgcnVuX2Nsb2Nrcyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGJsaXBfdGltZV90KiBkdXJhdGlvbiwgaW50IG1zZWMgKQ0KLXsNCi0jaWYgZGVmaW5lZChST0NLQk9YKQ0KLQkodm9pZCkgbXNlYzsNCi0jZW5kaWYNCi0NCi0JY3B1X3RpbWVfdCB0ID0gKmR1cmF0aW9uOw0KLQl3aGlsZSAoIFo4MF90aW1lKCAmdGhpcy0+Y3B1ICkgPCB0ICkNCi0Jew0KLQkJY3B1X3RpbWVfdCBuZXh0ID0gbWluKCB0LCB0aGlzLT5uZXh0X3BsYXkgKTsNCi0JCWlmICggcnVuX2NwdSggdGhpcywgbmV4dCApICkNCi0JCXsNCi0JCQkvKiB3YXJuaW5nKCAiVW5zdXBwb3J0ZWQgQ1BVIGluc3RydWN0aW9uIiApOyAqLw0KLQkJCVo4MF9zZXRfdGltZSggJnRoaXMtPmNwdSwgbmV4dCApOw0KLQkJfQ0KLQkJDQotCQlpZiAoIHRoaXMtPmNwdS5yLnBjID09IHRoaXMtPmlkbGVfYWRkciApDQotCQkJWjgwX3NldF90aW1lKCAmdGhpcy0+Y3B1LCBuZXh0ICk7DQotCQkNCi0JCWlmICggWjgwX3RpbWUoICZ0aGlzLT5jcHUgKSA+PSB0aGlzLT5uZXh0X3BsYXkgKQ0KLQkJew0KLQkJCXRoaXMtPm5leHRfcGxheSArPSB0aGlzLT5wbGF5X3BlcmlvZDsNCi0JCQlpZiAoIHRoaXMtPmNwdS5yLnBjID09IHRoaXMtPmlkbGVfYWRkciApDQotCQkJCWpzciggdGhpcywgdGhpcy0+aGVhZGVyLnBsYXlfYWRkciApOw0KLQkJfQ0KLQl9DQotCQ0KLQl0aGlzLT5uZXh0X3BsYXkgLT0gdDsNCi0JY2hlY2soIHRoaXMtPm5leHRfcGxheSA+PSAwICk7DQotCVo4MF9hZGp1c3RfdGltZSggJnRoaXMtPmNwdSwgLXQgKTsNCi0JDQotCVNtc19hcHVfZW5kX2ZyYW1lKCAmdGhpcy0+YXB1LCB0ICk7DQotCWlmICggc2VnYV9tYXBwaW5nKCB0aGlzICkgJiYgdGhpcy0+Zm1fYWNjZXNzZWQgKQ0KLQl7DQotCQlpZiAoIEZtX2FwdV9zdXBwb3J0ZWQoKSApDQotCQkJRm1fYXB1X2VuZF9mcmFtZSggJnRoaXMtPmZtX2FwdSwgdCApOw0KLQkJLyogZWxzZQ0KLQkJCXdhcm5pbmcoICJGTSBzb3VuZCBub3Qgc3VwcG9ydGVkIiApOyAqLw0KLQl9DQotDQotCXJldHVybiAwOw0KLX0NCi0NCi0vLyBFbXVsYXRpb24NCi0NCi12b2lkIGNwdV9vdXQoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBjcHVfdGltZV90IHRpbWUsIGFkZHJfdCBhZGRyLCBpbnQgZGF0YSApDQotew0KLQlpbnQgcG9ydCA9IGFkZHIgJiAweEZGOw0KLQkNCi0JaWYgKCBzZWdhX21hcHBpbmcoIHRoaXMgKSApDQotCXsNCi0JCXN3aXRjaCAoIHBvcnQgKQ0KLQkJew0KLQkJY2FzZSAweDA2Og0KLQkJCVNtc19hcHVfd3JpdGVfZ2dzdGVyZW8oICZ0aGlzLT5hcHUsIHRpbWUsIGRhdGEgKTsNCi0JCQlyZXR1cm47DQotCQkNCi0JCWNhc2UgMHg3RToNCi0JCWNhc2UgMHg3RjoNCi0JCQlTbXNfYXB1X3dyaXRlX2RhdGEoICZ0aGlzLT5hcHUsIHRpbWUsIGRhdGEgKTsgLyogZHByaW50ZiggIiQ3RTwtJTAyWFxuIiwgZGF0YSApOyAqLw0KLQkJCXJldHVybjsNCi0JCQ0KLQkJY2FzZSAweEYwOg0KLQkJCXRoaXMtPmZtX2FjY2Vzc2VkID0gdHJ1ZTsNCi0JCQlpZiAoIEZtX2FwdV9zdXBwb3J0ZWQoKSApDQotCQkJCUZtX2FwdV93cml0ZV9hZGRyKCAmdGhpcy0+Zm1fYXB1LCBkYXRhICk7Ly8sIGRwcmludGYoICIkRjA8LSUwMlhcbiIsIGRhdGEgKTsNCi0JCQlyZXR1cm47DQotCQkNCi0JCWNhc2UgMHhGMToNCi0JCQl0aGlzLT5mbV9hY2Nlc3NlZCA9IHRydWU7DQotCQkJaWYgKCBGbV9hcHVfc3VwcG9ydGVkKCkgKQ0KLQkJCQlGbV9hcHVfd3JpdGVfZGF0YSggJnRoaXMtPmZtX2FwdSwgdGltZSwgZGF0YSApOy8vLCBkcHJpbnRmKCAiJEYxPC0lMDJYXG4iLCBkYXRhICk7DQotCQkJcmV0dXJuOw0KLQkJfQ0KLQl9DQotCWVsc2UgaWYgKCBwb3J0ID49IDB4RTAgKQ0KLQl7DQotCQlTbXNfYXB1X3dyaXRlX2RhdGEoICZ0aGlzLT5hcHUsIHRpbWUsIGRhdGEgKTsNCi0JCXJldHVybjsNCi0JfQ0KLX0NCi0NCi12b2lkIGpzciggc3RydWN0IFNnY19FbXUqIHRoaXMsIGJ5dGUgYWRkciBbMl0gKQ0KLXsNCi0JKlo4MF93cml0ZSggJnRoaXMtPmNwdSwgLS10aGlzLT5jcHUuci5zcCApID0gdGhpcy0+aWRsZV9hZGRyID4+IDg7DQotCSpaODBfd3JpdGUoICZ0aGlzLT5jcHUsIC0tdGhpcy0+Y3B1LnIuc3AgKSA9IHRoaXMtPmlkbGVfYWRkciAmIDB4RkY7DQotCXRoaXMtPmNwdS5yLnBjID0gZ2V0X2xlMTYoIGFkZHIgKTsNCi19DQotDQotc3RhdGljIHZvaWQgc2V0X2JhbmsoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgYmFuaywgdm9pZCBjb25zdCogZGF0YSApDQotew0KLQkvL2RwcmludGYoICJtYXAgYmFuayAlZCB0byAlcFxuIiwgYmFuaywgKGJ5dGUqKSBkYXRhIC0gcm9tLmF0X2FkZHIoIDAgKSApOw0KLQlaODBfbWFwX21lbSggJnRoaXMtPmNwdSwgYmFuayAqIHRoaXMtPnJvbS5iYW5rX3NpemUsIHRoaXMtPnJvbS5iYW5rX3NpemUsIHRoaXMtPnVubWFwcGVkX3dyaXRlLCBkYXRhICk7DQotfQ0KLQ0KLXZvaWQgY3B1X3dyaXRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgYWRkcl90IGFkZHIsIGludCBkYXRhICkNCi17DQotCWlmICggKGFkZHIgXiAweEZGRkMpID4gMyB8fCAhc2VnYV9tYXBwaW5nKCB0aGlzICkgKQ0KLQl7DQotCQkqWjgwX3dyaXRlKCAmdGhpcy0+Y3B1LCBhZGRyICkgPSBkYXRhOw0KLQkJcmV0dXJuOw0KLQl9DQotCQ0KLQlzd2l0Y2ggKCBhZGRyICkNCi0Jew0KLQljYXNlIDB4RkZGQzoNCi0JCVo4MF9tYXBfbWVtX3J3KCAmdGhpcy0+Y3B1LCAyICogdGhpcy0+cm9tLmJhbmtfc2l6ZSwgdGhpcy0+cm9tLmJhbmtfc2l6ZSwgdGhpcy0+cmFtMiApOw0KLQkJaWYgKCBkYXRhICYgMHgwOCApDQotCQkJYnJlYWs7DQotCQkNCi0JCXRoaXMtPmJhbmsyID0gdGhpcy0+cmFtMjsNCi0JCS8vIEZBTEwgVEhST1VHSA0KLQkNCi0JY2FzZSAweEZGRkY6IHsNCi0JCWJvb2wgcm9tX21hcHBlZCA9IChaODBfcmVhZCggJnRoaXMtPmNwdSwgMiAqIHRoaXMtPnJvbS5iYW5rX3NpemUgKSA9PSB0aGlzLT5iYW5rMik7DQotCQl0aGlzLT5iYW5rMiA9IFJvbV9hdF9hZGRyKCAmdGhpcy0+cm9tLCBkYXRhICogdGhpcy0+cm9tLmJhbmtfc2l6ZSApOw0KLQkJaWYgKCByb21fbWFwcGVkICkNCi0JCQlzZXRfYmFuayggdGhpcywgMiwgdGhpcy0+YmFuazIgKTsNCi0JCWJyZWFrOw0KLQl9DQotCQkNCi0JY2FzZSAweEZGRkQ6DQotCQlzZXRfYmFuayggdGhpcywgMCwgUm9tX2F0X2FkZHIoICZ0aGlzLT5yb20sIGRhdGEgKiB0aGlzLT5yb20uYmFua19zaXplICkgKTsNCi0JCWJyZWFrOw0KLQkNCi0JY2FzZSAweEZGRkU6DQotCQlzZXRfYmFuayggdGhpcywgMSwgUm9tX2F0X2FkZHIoICZ0aGlzLT5yb20sIGRhdGEgKiB0aGlzLT5yb20uYmFua19zaXplICkgKTsNCi0JCWJyZWFrOw0KLQl9DQotfQ0KLQ0KLWJsYXJnZ19lcnJfdCBTZ2Nfc2V0X3NhbXBsZV9yYXRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IHJhdGUgKQ0KLXsNCi0JcmVxdWlyZSggIXRoaXMtPnNhbXBsZV9yYXRlICk7IC8vIHNhbXBsZSByYXRlIGNhbid0IGJlIGNoYW5nZWQgb25jZSBzZXQNCi0JQnVmZmVyX2luaXQoICZ0aGlzLT5zdGVyZW9fYnVmICk7DQotCUJ1ZmZlcl9zZXRfc2FtcGxlX3JhdGUoICZ0aGlzLT5zdGVyZW9fYnVmLCByYXRlLCAxMDAwIC8gMjAgKTsNCi0NCi0JLy8gU2V0IGJ1ZmZlciBiYXNzDQotCUJ1ZmZlcl9iYXNzX2ZyZXEoICZ0aGlzLT5zdGVyZW9fYnVmLCA4MCApOw0KLQ0KLQl0aGlzLT5zYW1wbGVfcmF0ZSA9IHJhdGU7DQotCVJFVFVSTl9FUlIoIHRyYWNrX2luaXQoICZ0aGlzLT50cmFja19maWx0ZXIsIHRoaXMgKSApOw0KLQl0aGlzLT50ZmlsdGVyLm1heF9zaWxlbmNlID0gNiAqIHN0ZXJlbyAqIHRoaXMtPnNhbXBsZV9yYXRlOw0KLQlyZXR1cm4gMDsNCi19DQotDQotdm9pZCBTb3VuZF9tdXRlX3ZvaWNlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IGluZGV4LCBib29sIG11dGUgKQ0KLXsNCi0JcmVxdWlyZSggKHVuc2lnbmVkKSBpbmRleCA8ICh1bnNpZ25lZCkgdGhpcy0+dm9pY2VfY291bnQgKTsNCi0JaW50IGJpdCA9IDEgPDwgaW5kZXg7DQotCWludCBtYXNrID0gdGhpcy0+bXV0ZV9tYXNrXyB8IGJpdDsNCi0JaWYgKCAhbXV0ZSApDQotCQltYXNrIF49IGJpdDsNCi0JU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIG1hc2sgKTsNCi19DQotDQotdm9pZCBTb3VuZF9tdXRlX3ZvaWNlcyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtYXNrICkNCi17DQotCXJlcXVpcmUoIHRoaXMtPnNhbXBsZV9yYXRlICk7IC8vIHNhbXBsZSByYXRlIG11c3QgYmUgc2V0IGZpcnN0DQotCXRoaXMtPm11dGVfbWFza18gPSBtYXNrOw0KLQkNCi0JaW50IGk7DQotCWZvciAoIGkgPSB0aGlzLT52b2ljZV9jb3VudDsgaS0tOyApDQotCXsNCi0JCWlmICggbWFzayAmICgxIDw8IGkpICkNCi0JCXsNCi0JCQlTb3VuZF9zZXRfdm9pY2UoIHRoaXMsIGksIDAsIDAsIDAgKTsNCi0JCX0NCi0JCWVsc2UNCi0JCXsNCi0JCQlzdHJ1Y3QgY2hhbm5lbF90IGNoID0gQnVmZmVyX2NoYW5uZWwoICZ0aGlzLT5zdGVyZW9fYnVmLCBpICk7DQotCQkJYXNzZXJ0KCAoY2guY2VudGVyICYmIGNoLmxlZnQgJiYgY2gucmlnaHQpIHx8DQotCQkJCQkoIWNoLmNlbnRlciAmJiAhY2gubGVmdCAmJiAhY2gucmlnaHQpICk7IC8vIGFsbCBvciBub3RoaW5nDQotCQkJU291bmRfc2V0X3ZvaWNlKCB0aGlzLCBpLCBjaC5jZW50ZXIsIGNoLmxlZnQsIGNoLnJpZ2h0ICk7DQotCQl9DQotCX0NCi19DQotDQotdm9pZCBTb3VuZF9zZXRfdGVtcG8oIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgdCApDQotew0KLQlyZXF1aXJlKCB0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyBzYW1wbGUgcmF0ZSBtdXN0IGJlIHNldCBmaXJzdA0KLQlpbnQgY29uc3QgbWluID0gKGludCkoRlBfT05FX1RFTVBPKjAuMDIpOw0KLQlpbnQgY29uc3QgbWF4ID0gKGludCkoRlBfT05FX1RFTVBPKjQuMDApOw0KLQlpZiAoIHQgPCBtaW4gKSB0ID0gbWluOw0KLQlpZiAoIHQgPiBtYXggKSB0ID0gbWF4Ow0KLQl0aGlzLT50ZW1wbyA9IHQ7DQotDQotCXRoaXMtPnBsYXlfcGVyaW9kID0gKGludCkgKChjbG9ja19yYXRlKCB0aGlzICkgKiBGUF9PTkVfVEVNUE8pIC8gKHRoaXMtPmhlYWRlci5yYXRlID8gNTAgOiA2MCkgLyB0KTsNCi19DQotDQotYmxhcmdnX2Vycl90IFNnY19zdGFydF90cmFjayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCB0cmFjayApDQotew0KLQljbGVhcl90cmFja192YXJzKCB0aGlzICk7DQotCQ0KLQkvLyBSZW1hcCB0cmFjayBpZiBwbGF5bGlzdCBhdmFpbGFibGUNCi0JaWYgKCB0aGlzLT5tM3Uuc2l6ZSA+IDAgKSB7DQotCQlzdHJ1Y3QgZW50cnlfdCogZSA9ICZ0aGlzLT5tM3UuZW50cmllc1t0cmFja107DQotCQl0cmFjayA9IGUtPnRyYWNrOw0KLQl9DQotCQ0KLQl0aGlzLT5jdXJyZW50X3RyYWNrID0gdHJhY2s7DQotCQ0KLQlpZiAoIHNlZ2FfbWFwcGluZyggdGhpcyApICkNCi0Jew0KLQkJU21zX2FwdV9yZXNldCggJnRoaXMtPmFwdSwgMCwgMCApOw0KLQkJRm1fYXB1X3Jlc2V0KCAmdGhpcy0+Zm1fYXB1ICk7DQotCQl0aGlzLT5mbV9hY2Nlc3NlZCA9IGZhbHNlOw0KLQl9DQotCWVsc2UNCi0Jew0KLQkJU21zX2FwdV9yZXNldCggJnRoaXMtPmFwdSwgMHgwMDAzLCAxNSApOw0KLQl9DQotCQ0KLQltZW1zZXQoIHRoaXMtPnJhbSAsIDAsIHNpemVvZiB0aGlzLT5yYW0gKTsNCi0JbWVtc2V0KCB0aGlzLT5yYW0yLCAwLCBzaXplb2YgdGhpcy0+cmFtMiApOw0KLQltZW1zZXQoIHRoaXMtPnZlY3RvcnMsIDB4RkYsIHNpemVvZiB0aGlzLT52ZWN0b3JzICk7DQotCVo4MF9yZXNldCggJnRoaXMtPmNwdSwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPnJvbS51bm1hcHBlZCApOw0KLQkNCi0JaWYgKCBzZWdhX21hcHBpbmcoIHRoaXMgKSApDQotCXsNCi0JCXRoaXMtPnZlY3RvcnNfYWRkciA9IDB4MTAwMDAgLSBwYWdlX3NpemU7DQotCQl0aGlzLT5pZGxlX2FkZHIgPSB0aGlzLT52ZWN0b3JzX2FkZHI7DQotCQlpbnQgaTsNCi0JCWZvciAoIGkgPSAxOyBpIDwgODsgKytpICkNCi0JCXsNCi0JCQl0aGlzLT52ZWN0b3JzIFtpKjggKyAwXSA9IDB4QzM7IC8vIEpQIGFkZHINCi0JCQl0aGlzLT52ZWN0b3JzIFtpKjggKyAxXSA9IHRoaXMtPmhlYWRlci5yc3RfYWRkcnMgW2kgLSAxXSAmIDB4ZmY7DQotCQkJdGhpcy0+dmVjdG9ycyBbaSo4ICsgMl0gPSB0aGlzLT5oZWFkZXIucnN0X2FkZHJzIFtpIC0gMV0gPj4gODsNCi0JCX0NCi0JCQ0KLQkJWjgwX21hcF9tZW1fcncoICZ0aGlzLT5jcHUsIDB4QzAwMCwgMHgyMDAwLCB0aGlzLT5yYW0gKTsNCi0JCVo4MF9tYXBfbWVtKCAmdGhpcy0+Y3B1LCB0aGlzLT52ZWN0b3JzX2FkZHIsIHBhZ2Vfc2l6ZSwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPnZlY3RvcnMgKTsNCi0JCQ0KLQkJdGhpcy0+YmFuazIgPSBOVUxMOw0KLQkJZm9yICggaSA9IDA7IGkgPCA0OyArK2kgKQ0KLQkJCWNwdV93cml0ZSggdGhpcywgMHhGRkZDICsgaSwgdGhpcy0+aGVhZGVyLm1hcHBpbmcgW2ldICk7DQotCX0NCi0JZWxzZQ0KLQl7DQotCQlpZiAoICF0aGlzLT5jb2xlY29fYmlvcyApDQotCQkJcmV0dXJuICJDb2xlY28gQklPUyBub3Qgc2V0IjsgLyogQkxBUkdHX0VSUiggQkxBUkdHX0VSUl9DQUxMRVIsICJDb2xlY28gQklPUyBub3Qgc2V0IiApOyAqLw0KLQkJDQotCQl0aGlzLT52ZWN0b3JzX2FkZHIgPSAwOw0KLQkJWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIDAsIDB4MjAwMCwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPmNvbGVjb19iaW9zICk7DQotCQlpbnQgaTsNCi0JCWZvciAoIGkgPSAwOyBpIDwgODsgKytpICkNCi0JCQlaODBfbWFwX21lbV9ydyggJnRoaXMtPmNwdSwgMHg2MDAwICsgaSoweDQwMCwgMHg0MDAsIHRoaXMtPnJhbSApOw0KLQkJDQotCQl0aGlzLT5pZGxlX2FkZHIgPSAweDIwMDA7DQotCQlaODBfbWFwX21lbSggJnRoaXMtPmNwdSwgMHgyMDAwLCBwYWdlX3NpemUsIHRoaXMtPnVubWFwcGVkX3dyaXRlLCB0aGlzLT52ZWN0b3JzICk7DQotCQkNCi0JCWZvciAoIGkgPSAwOyBpIDwgMHg4MDAwIC8gdGhpcy0+cm9tLmJhbmtfc2l6ZTsgKytpICkNCi0JCXsNCi0JCQlpbnQgYWRkciA9IDB4ODAwMCArIGkqdGhpcy0+cm9tLmJhbmtfc2l6ZTsNCi0JCQlaODBfbWFwX21lbSggJnRoaXMtPmNwdSwgYWRkciwgdGhpcy0+cm9tLmJhbmtfc2l6ZSwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIFJvbV9hdF9hZGRyKCAmdGhpcy0+cm9tLCBhZGRyICkgKTsNCi0JCX0NCi0JfQ0KLQkNCi0JdGhpcy0+Y3B1LnIuc3AgID0gZ2V0X2xlMTYoIHRoaXMtPmhlYWRlci5zdGFja19wdHIgKTsNCi0JdGhpcy0+Y3B1LnIuYi5hID0gdHJhY2s7DQotCXRoaXMtPm5leHRfcGxheSA9IHRoaXMtPnBsYXlfcGVyaW9kOw0KLQ0KLQlqc3IoIHRoaXMsIHRoaXMtPmhlYWRlci5pbml0X2FkZHIgKTsNCi0NCi0JQnVmZmVyX2NsZWFyKCAmdGhpcy0+c3RlcmVvX2J1ZiApOw0KLQ0KLQkvLyBjb252ZXJ0IGZpbHRlciB0aW1lcyB0byBzYW1wbGVzDQotCXN0cnVjdCBzZXR1cF90IHMgPSB0aGlzLT50ZmlsdGVyOw0KLQlzLm1heF9pbml0aWFsICo9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOw0KLQkjaWZkZWYgR01FX0RJU0FCTEVfU0lMRU5DRV9MT09LQUhFQUQNCi0JCXMubG9va2FoZWFkID0gMTsNCi0JI2VuZGlmDQotCXRyYWNrX3NldHVwKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCAmcyApOw0KLQkNCi0JcmV0dXJuIHRyYWNrX3N0YXJ0KCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7DQotfQ0KLQ0KLS8vIFRlbGwvU2Vlaw0KLQ0KLXN0YXRpYyBpbnQgbXNlY190b19zYW1wbGVzKCBpbnQgbXNlYywgaW50IHNhbXBsZV9yYXRlICkNCi17DQotCWludCBzZWMgPSBtc2VjIC8gMTAwMDsNCi0JbXNlYyAtPSBzZWMgKiAxMDAwOw0KLQlyZXR1cm4gKHNlYyAqIHNhbXBsZV9yYXRlICsgbXNlYyAqIHNhbXBsZV9yYXRlIC8gMTAwMCkgKiBzdGVyZW87DQotfQ0KLQ0KLWludCBUcmFja190ZWxsKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApDQotew0KLQlpbnQgcmF0ZSA9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOw0KLQlpbnQgc2VjID0gdHJhY2tfc2FtcGxlX2NvdW50KCAmdGhpcy0+dHJhY2tfZmlsdGVyICkgLyByYXRlOw0KLQlyZXR1cm4gc2VjICogMTAwMCArICh0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSAtIHNlYyAqIHJhdGUpICogMTAwMCAvIHJhdGU7DQotfQ0KLQ0KLWJsYXJnZ19lcnJfdCBUcmFja19zZWVrKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IG1zZWMgKQ0KLXsNCi0JaW50IHRpbWUgPSBtc2VjX3RvX3NhbXBsZXMoIG1zZWMsIHRoaXMtPnNhbXBsZV9yYXRlICk7DQotCWlmICggdGltZSA8IHRyYWNrX3NhbXBsZV9jb3VudCggJnRoaXMtPnRyYWNrX2ZpbHRlciApICkNCi0JUkVUVVJOX0VSUiggU2djX3N0YXJ0X3RyYWNrKCB0aGlzLCB0aGlzLT5jdXJyZW50X3RyYWNrICkgKTsNCi0JcmV0dXJuIFRyYWNrX3NraXAoIHRoaXMsIHRpbWUgLSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSApOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3QgVHJhY2tfc2tpcCggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBjb3VudCApDQotew0KLQlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsgLy8gc3RhcnRfdHJhY2soKSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeQ0KLQlyZXR1cm4gdHJhY2tfc2tpcCggJnRoaXMtPnRyYWNrX2ZpbHRlciwgY291bnQgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IHNraXBfKCB2b2lkKiBlbXUsIGludCBjb3VudCApDQotew0KLQlzdHJ1Y3QgU2djX0VtdSogdGhpcyA9IChzdHJ1Y3QgU2djX0VtdSopIGVtdTsNCi0JDQotCS8vIGZvciBsb25nIHNraXAsIG11dGUgc291bmQNCi0JY29uc3QgaW50IHRocmVzaG9sZCA9IDMyNzY4Ow0KLQlpZiAoIGNvdW50ID4gdGhyZXNob2xkICkNCi0Jew0KLQkJaW50IHNhdmVkX211dGUgPSB0aGlzLT5tdXRlX21hc2tfOw0KLQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIH4wICk7DQotDQotCQlpbnQgbiA9IGNvdW50IC0gdGhyZXNob2xkLzI7DQotCQluICY9IH4oMjA0OC0xKTsgLy8gcm91bmQgdG8gbXVsdGlwbGUgb2YgMjA0OA0KLQkJY291bnQgLT0gbjsNCi0JCVJFVFVSTl9FUlIoIHNraXBweV8oICZ0aGlzLT50cmFja19maWx0ZXIsIG4gKSApOw0KLQ0KLQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHNhdmVkX211dGUgKTsNCi0JfQ0KLQ0KLQlyZXR1cm4gc2tpcHB5XyggJnRoaXMtPnRyYWNrX2ZpbHRlciwgY291bnQgKTsNCi19DQotDQotdm9pZCBUcmFja19zZXRfZmFkZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBzdGFydF9tc2VjLCBpbnQgbGVuZ3RoX21zZWMgKQ0KLXsNCi0JdHJhY2tfc2V0X2ZhZGUoICZ0aGlzLT50cmFja19maWx0ZXIsIG1zZWNfdG9fc2FtcGxlcyggc3RhcnRfbXNlYywgdGhpcy0+c2FtcGxlX3JhdGUgKSwNCi0JCWxlbmd0aF9tc2VjICogdGhpcy0+c2FtcGxlX3JhdGUgLyAoMTAwMCAvIHN0ZXJlbykgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IFNnY19wbGF5KCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IG91dF9jb3VudCwgc2FtcGxlX3QqIG91dCApDQotew0KLQlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsNCi0JcmVxdWlyZSggb3V0X2NvdW50ICUgc3RlcmVvID09IDAgKTsNCi0JcmV0dXJuIHRyYWNrX3BsYXkoICZ0aGlzLT50cmFja19maWx0ZXIsIG91dF9jb3VudCwgb3V0ICk7DQotfQ0KLQ0KLWJsYXJnZ19lcnJfdCBwbGF5Xyggdm9pZCogZW11LCBpbnQgY291bnQsIHNhbXBsZV90IG91dCBbXSApDQotew0KLQlzdHJ1Y3QgU2djX0VtdSogdGhpcyA9IChzdHJ1Y3QgU2djX0VtdSopIGVtdTsNCi0JDQotCWludCByZW1haW4gPSBjb3VudDsNCi0Jd2hpbGUgKCByZW1haW4gKQ0KLQl7DQotCQlCdWZmZXJfZGlzYWJsZV9pbW1lZGlhdGVfcmVtb3ZhbCggJnRoaXMtPnN0ZXJlb19idWYgKTsNCi0JCXJlbWFpbiAtPSBCdWZmZXJfcmVhZF9zYW1wbGVzKCAmdGhpcy0+c3RlcmVvX2J1ZiwgJm91dCBbY291bnQgLSByZW1haW5dLCByZW1haW4gKTsNCi0JCWlmICggcmVtYWluICkNCi0JCXsNCi0JCQlpZiAoIHRoaXMtPmJ1Zl9jaGFuZ2VkX2NvdW50ICE9IEJ1ZmZlcl9jaGFubmVsc19jaGFuZ2VkX2NvdW50KCAmdGhpcy0+c3RlcmVvX2J1ZiApICkNCi0JCQl7DQotCQkJCXRoaXMtPmJ1Zl9jaGFuZ2VkX2NvdW50ID0gQnVmZmVyX2NoYW5uZWxzX2NoYW5nZWRfY291bnQoICZ0aGlzLT5zdGVyZW9fYnVmICk7DQotCQkJCQ0KLQkJCQkvLyBSZW11dGUgdm9pY2VzDQotCQkJCVNvdW5kX211dGVfdm9pY2VzKCB0aGlzLCB0aGlzLT5tdXRlX21hc2tfICk7DQotCQkJfQ0KLQkJCWludCBtc2VjID0gQnVmZmVyX2xlbmd0aCggJnRoaXMtPnN0ZXJlb19idWYgKTsNCi0JCQlibGlwX3RpbWVfdCBjbG9ja3NfZW11bGF0ZWQgPSBtc2VjICogdGhpcy0+Y2xvY2tfcmF0ZV8gLyAxMDAwIC0gMTAwOw0KLQkJCVJFVFVSTl9FUlIoIHJ1bl9jbG9ja3MoIHRoaXMsICZjbG9ja3NfZW11bGF0ZWQsIG1zZWMgKSApOw0KLQkJCWFzc2VydCggY2xvY2tzX2VtdWxhdGVkICk7DQotCQkJQnVmZmVyX2VuZF9mcmFtZSggJnRoaXMtPnN0ZXJlb19idWYsIGNsb2Nrc19lbXVsYXRlZCApOw0KLQkJfQ0KLQl9DQotCXJldHVybiAwOw0KLX0NCisvLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlLiBodHRwOi8vd3d3LnNsYWNrLm5ldC9+YW50LworCisjaW5jbHVkZSAic2djX2VtdS5oIgorCisvKiBDb3B5cmlnaHQgKEMpIDIwMDkgU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91CitjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKK3ZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzCittb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCitkZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGFpbnQgd2l0aCB0aGlzIG1vZHVsZTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQSAqLworCisjaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIgorCitpbnQgY29uc3Qgb3NjX2NvdW50ID0gc21zX29zY19jb3VudCArIGZtX2FwdV9vc2NfY291bnQ7CisKK2NvbnN0IGNoYXIgZ21lX3dyb25nX2ZpbGVfdHlwZSBbXSA9ICJXcm9uZyBmaWxlIHR5cGUgZm9yIHRoaXMgZW11bGF0b3IiOworCitzdGF0aWMgdm9pZCBjbGVhcl90cmFja192YXJzKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApCit7CisJdGhpcy0+Y3VycmVudF90cmFjayAgICA9IC0xOworCXRyYWNrX3N0b3AoICZ0aGlzLT50cmFja19maWx0ZXIgKTsKK30KKwordm9pZCBTZ2NfaW5pdCggc3RydWN0IFNnY19FbXUqIHRoaXMgKQoreworCWFzc2VydCggb2Zmc2V0b2YgKHN0cnVjdCBoZWFkZXJfdCxjb3B5cmlnaHQgWzMyXSkgPT0gaGVhZGVyX3NpemUgKTsKKwkKKwl0aGlzLT5zYW1wbGVfcmF0ZSA9IDA7CisJdGhpcy0+bXV0ZV9tYXNrXyAgPSAwOworCXRoaXMtPnRlbXBvICAgICAgID0gKGludClGUF9PTkVfVEVNUE87CisJdGhpcy0+Z2FpbiAgICAgICAgPSAoaW50KUZQX09ORV9HQUlOOworCQorCS8vIGRlZmF1bHRzCisJdGhpcy0+dGZpbHRlciA9ICp0cmFja19nZXRfc2V0dXAoICZ0aGlzLT50cmFja19maWx0ZXIgKTsKKwl0aGlzLT50ZmlsdGVyLm1heF9pbml0aWFsID0gMjsKKwl0aGlzLT50ZmlsdGVyLmxvb2thaGVhZCAgID0gNjsKKwl0aGlzLT50cmFja19maWx0ZXIuc2lsZW5jZV9pZ25vcmVkXyA9IGZhbHNlOworCisJU21zX2FwdV9pbml0KCAmdGhpcy0+YXB1ICk7CisJRm1fYXB1X2NyZWF0ZSggJnRoaXMtPmZtX2FwdSApOworCisJUm9tX2luaXQoICZ0aGlzLT5yb20sIDB4NDAwMCApOworCVo4MF9pbml0KCAmdGhpcy0+Y3B1ICk7CisKKwlTb3VuZF9zZXRfZ2FpbiggdGhpcywgKGludCkoRlBfT05FX0dBSU4qMS4yKSApOworCQorCS8vIFVubG9hZAorCXRoaXMtPnZvaWNlX2NvdW50ID0gMDsKKwl0aGlzLT52b2ljZV90eXBlcyA9IDA7CisJY2xlYXJfdHJhY2tfdmFycyggdGhpcyApOworfQorCisvLyBTZXR1cAorCitibGFyZ2dfZXJyX3QgU2djX2xvYWRfbWVtKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgY29uc3Qgdm9pZCogZGF0YSwgbG9uZyBzaXplICkKK3sKKwlSRVRVUk5fRVJSKCBSb21fbG9hZCggJnRoaXMtPnJvbSwgZGF0YSwgc2l6ZSwgaGVhZGVyX3NpemUsICZ0aGlzLT5oZWFkZXIsIDAgKSApOworCQorCWlmICggIXZhbGlkX3RhZyggJnRoaXMtPmhlYWRlciApICkKKwkJcmV0dXJuIGdtZV93cm9uZ19maWxlX3R5cGU7CisJCisJLyogaWYgKCBoZWFkZXIudmVycyAhPSAxICkKKwkJd2FybmluZyggIlVua25vd24gZmlsZSB2ZXJzaW9uIiApOyAqLworCQorCS8qIGlmICggaGVhZGVyLnN5c3RlbSA+IDIgKQorCQl3YXJuaW5nKCAiVW5rbm93biBzeXN0ZW0iICk7ICovCisJCisJYWRkcl90IGxvYWRfYWRkciA9IGdldF9sZTE2KCB0aGlzLT5oZWFkZXIubG9hZF9hZGRyICk7CisJLyogaWYgKCBsb2FkX2FkZHIgPCAweDQwMCApCisJCXNldF93YXJuaW5nKCAiSW52YWxpZCBsb2FkIGFkZHJlc3MiICk7ICovCisJCisJUm9tX3NldF9hZGRyKCAmdGhpcy0+cm9tLCBsb2FkX2FkZHIgKTsKKwl0aGlzLT5wbGF5X3BlcmlvZCA9IGNsb2NrX3JhdGUoIHRoaXMgKSAvIDYwOworCQorCWlmICggc2VnYV9tYXBwaW5nKCB0aGlzICkgJiYgRm1fYXB1X3N1cHBvcnRlZCgpICkKKwkJUkVUVVJOX0VSUiggRm1fYXB1X2luaXQoICZ0aGlzLT5mbV9hcHUsIGNsb2NrX3JhdGUoIHRoaXMgKSwgY2xvY2tfcmF0ZSggdGhpcyApIC8gNzIgKSApOworCQorCXRoaXMtPm0zdS5zaXplID0gMDsKKwl0aGlzLT50cmFja19jb3VudCA9IHRoaXMtPmhlYWRlci5zb25nX2NvdW50OworCXRoaXMtPnZvaWNlX2NvdW50ID0gIHNlZ2FfbWFwcGluZyggdGhpcyApID8gb3NjX2NvdW50IDogc21zX29zY19jb3VudDsKKwlzdGF0aWMgaW50IGNvbnN0IHR5cGVzIFtzbXNfb3NjX2NvdW50ICsgZm1fYXB1X29zY19jb3VudF0gPSB7CisJCXdhdmVfdHlwZSsxLCB3YXZlX3R5cGUrMiwgd2F2ZV90eXBlKzMsIG1peGVkX3R5cGUrMSwgbWl4ZWRfdHlwZSsyCisJfTsKKwl0aGlzLT52b2ljZV90eXBlcyA9IHR5cGVzOworCQorCVNtc19hcHVfdm9sdW1lKCAmdGhpcy0+YXB1LCB0aGlzLT5nYWluICk7CisJRm1fYXB1X3ZvbHVtZSggJnRoaXMtPmZtX2FwdSwgdGhpcy0+Z2FpbiApOworCisJLy8gU2V0dXAgYnVmZmVyCisJdGhpcy0+Y2xvY2tfcmF0ZV8gPSBjbG9ja19yYXRlKCB0aGlzICk7CisJQnVmZmVyX2Nsb2NrX3JhdGUoICZ0aGlzLT5zdGVyZW9fYnVmLCBjbG9ja19yYXRlKCB0aGlzICkgKTsKKwlSRVRVUk5fRVJSKCBCdWZmZXJfc2V0X2NoYW5uZWxfY291bnQoICZ0aGlzLT5zdGVyZW9fYnVmLCB0aGlzLT52b2ljZV9jb3VudCwgdGhpcy0+dm9pY2VfdHlwZXMgKSApOworCXRoaXMtPmJ1Zl9jaGFuZ2VkX2NvdW50ID0gQnVmZmVyX2NoYW5uZWxzX2NoYW5nZWRfY291bnQoICZ0aGlzLT5zdGVyZW9fYnVmICk7CisKKwlTb3VuZF9zZXRfdGVtcG8oIHRoaXMsIHRoaXMtPnRlbXBvICk7CisJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgU291bmRfc2V0X3ZvaWNlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IGksIHN0cnVjdCBCbGlwX0J1ZmZlciogYywgc3RydWN0IEJsaXBfQnVmZmVyKiBsLCBzdHJ1Y3QgQmxpcF9CdWZmZXIqIHIgKQoreworCWlmICggaSA8IHNtc19vc2NfY291bnQgKQorCQlTbXNfYXB1X3NldF9vdXRwdXQoICZ0aGlzLT5hcHUsIGksIGMsIGwsIHIgKTsKKwllbHNlCisJCUZtX2FwdV9zZXRfb3V0cHV0KCAmdGhpcy0+Zm1fYXB1LCBjICk7Cit9CisKK3N0YXRpYyBibGFyZ2dfZXJyX3QgcnVuX2Nsb2Nrcyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGJsaXBfdGltZV90KiBkdXJhdGlvbiwgaW50IG1zZWMgKQoreworI2lmIGRlZmluZWQoUk9DS0JPWCkKKwkodm9pZCkgbXNlYzsKKyNlbmRpZgorCisJY3B1X3RpbWVfdCB0ID0gKmR1cmF0aW9uOworCXdoaWxlICggWjgwX3RpbWUoICZ0aGlzLT5jcHUgKSA8IHQgKQorCXsKKwkJY3B1X3RpbWVfdCBuZXh0ID0gbWluKCB0LCB0aGlzLT5uZXh0X3BsYXkgKTsKKwkJaWYgKCBydW5fY3B1KCB0aGlzLCBuZXh0ICkgKQorCQl7CisJCQkvKiB3YXJuaW5nKCAiVW5zdXBwb3J0ZWQgQ1BVIGluc3RydWN0aW9uIiApOyAqLworCQkJWjgwX3NldF90aW1lKCAmdGhpcy0+Y3B1LCBuZXh0ICk7CisJCX0KKwkJCisJCWlmICggdGhpcy0+Y3B1LnIucGMgPT0gdGhpcy0+aWRsZV9hZGRyICkKKwkJCVo4MF9zZXRfdGltZSggJnRoaXMtPmNwdSwgbmV4dCApOworCQkKKwkJaWYgKCBaODBfdGltZSggJnRoaXMtPmNwdSApID49IHRoaXMtPm5leHRfcGxheSApCisJCXsKKwkJCXRoaXMtPm5leHRfcGxheSArPSB0aGlzLT5wbGF5X3BlcmlvZDsKKwkJCWlmICggdGhpcy0+Y3B1LnIucGMgPT0gdGhpcy0+aWRsZV9hZGRyICkKKwkJCQlqc3IoIHRoaXMsIHRoaXMtPmhlYWRlci5wbGF5X2FkZHIgKTsKKwkJfQorCX0KKwkKKwl0aGlzLT5uZXh0X3BsYXkgLT0gdDsKKwljaGVjayggdGhpcy0+bmV4dF9wbGF5ID49IDAgKTsKKwlaODBfYWRqdXN0X3RpbWUoICZ0aGlzLT5jcHUsIC10ICk7CisJCisJU21zX2FwdV9lbmRfZnJhbWUoICZ0aGlzLT5hcHUsIHQgKTsKKwlpZiAoIHNlZ2FfbWFwcGluZyggdGhpcyApICYmIHRoaXMtPmZtX2FjY2Vzc2VkICkKKwl7CisJCWlmICggRm1fYXB1X3N1cHBvcnRlZCgpICkKKwkJCUZtX2FwdV9lbmRfZnJhbWUoICZ0aGlzLT5mbV9hcHUsIHQgKTsKKwkJLyogZWxzZQorCQkJd2FybmluZyggIkZNIHNvdW5kIG5vdCBzdXBwb3J0ZWQiICk7ICovCisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8vIEVtdWxhdGlvbgorCit2b2lkIGNwdV9vdXQoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBjcHVfdGltZV90IHRpbWUsIGFkZHJfdCBhZGRyLCBpbnQgZGF0YSApCit7CisJaW50IHBvcnQgPSBhZGRyICYgMHhGRjsKKwkKKwlpZiAoIHNlZ2FfbWFwcGluZyggdGhpcyApICkKKwl7CisJCXN3aXRjaCAoIHBvcnQgKQorCQl7CisJCWNhc2UgMHgwNjoKKwkJCVNtc19hcHVfd3JpdGVfZ2dzdGVyZW8oICZ0aGlzLT5hcHUsIHRpbWUsIGRhdGEgKTsKKwkJCXJldHVybjsKKwkJCisJCWNhc2UgMHg3RToKKwkJY2FzZSAweDdGOgorCQkJU21zX2FwdV93cml0ZV9kYXRhKCAmdGhpcy0+YXB1LCB0aW1lLCBkYXRhICk7IC8qIGRwcmludGYoICIkN0U8LSUwMlhcbiIsIGRhdGEgKTsgKi8KKwkJCXJldHVybjsKKwkJCisJCWNhc2UgMHhGMDoKKwkJCXRoaXMtPmZtX2FjY2Vzc2VkID0gdHJ1ZTsKKwkJCWlmICggRm1fYXB1X3N1cHBvcnRlZCgpICkKKwkJCQlGbV9hcHVfd3JpdGVfYWRkciggJnRoaXMtPmZtX2FwdSwgZGF0YSApOy8vLCBkcHJpbnRmKCAiJEYwPC0lMDJYXG4iLCBkYXRhICk7CisJCQlyZXR1cm47CisJCQorCQljYXNlIDB4RjE6CisJCQl0aGlzLT5mbV9hY2Nlc3NlZCA9IHRydWU7CisJCQlpZiAoIEZtX2FwdV9zdXBwb3J0ZWQoKSApCisJCQkJRm1fYXB1X3dyaXRlX2RhdGEoICZ0aGlzLT5mbV9hcHUsIHRpbWUsIGRhdGEgKTsvLywgZHByaW50ZiggIiRGMTwtJTAyWFxuIiwgZGF0YSApOworCQkJcmV0dXJuOworCQl9CisJfQorCWVsc2UgaWYgKCBwb3J0ID49IDB4RTAgKQorCXsKKwkJU21zX2FwdV93cml0ZV9kYXRhKCAmdGhpcy0+YXB1LCB0aW1lLCBkYXRhICk7CisJCXJldHVybjsKKwl9Cit9CisKK3ZvaWQganNyKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgYnl0ZSBhZGRyIFsyXSApCit7CisJKlo4MF93cml0ZSggJnRoaXMtPmNwdSwgLS10aGlzLT5jcHUuci5zcCApID0gdGhpcy0+aWRsZV9hZGRyID4+IDg7CisJKlo4MF93cml0ZSggJnRoaXMtPmNwdSwgLS10aGlzLT5jcHUuci5zcCApID0gdGhpcy0+aWRsZV9hZGRyICYgMHhGRjsKKwl0aGlzLT5jcHUuci5wYyA9IGdldF9sZTE2KCBhZGRyICk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9iYW5rKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IGJhbmssIHZvaWQgY29uc3QqIGRhdGEgKQoreworCS8vZHByaW50ZiggIm1hcCBiYW5rICVkIHRvICVwXG4iLCBiYW5rLCAoYnl0ZSopIGRhdGEgLSByb20uYXRfYWRkciggMCApICk7CisJWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIGJhbmsgKiB0aGlzLT5yb20uYmFua19zaXplLCB0aGlzLT5yb20uYmFua19zaXplLCB0aGlzLT51bm1hcHBlZF93cml0ZSwgZGF0YSApOworfQorCit2b2lkIGNwdV93cml0ZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGFkZHJfdCBhZGRyLCBpbnQgZGF0YSApCit7CisJaWYgKCAoYWRkciBeIDB4RkZGQykgPiAzIHx8ICFzZWdhX21hcHBpbmcoIHRoaXMgKSApCisJeworCQkqWjgwX3dyaXRlKCAmdGhpcy0+Y3B1LCBhZGRyICkgPSBkYXRhOworCQlyZXR1cm47CisJfQorCQorCXN3aXRjaCAoIGFkZHIgKQorCXsKKwljYXNlIDB4RkZGQzoKKwkJWjgwX21hcF9tZW1fcncoICZ0aGlzLT5jcHUsIDIgKiB0aGlzLT5yb20uYmFua19zaXplLCB0aGlzLT5yb20uYmFua19zaXplLCB0aGlzLT5yYW0yICk7CisJCWlmICggZGF0YSAmIDB4MDggKQorCQkJYnJlYWs7CisJCQorCQl0aGlzLT5iYW5rMiA9IHRoaXMtPnJhbTI7CisJCS8vIEZBTEwgVEhST1VHSAorCQorCWNhc2UgMHhGRkZGOiB7CisJCWJvb2wgcm9tX21hcHBlZCA9IChaODBfcmVhZCggJnRoaXMtPmNwdSwgMiAqIHRoaXMtPnJvbS5iYW5rX3NpemUgKSA9PSB0aGlzLT5iYW5rMik7CisJCXRoaXMtPmJhbmsyID0gUm9tX2F0X2FkZHIoICZ0aGlzLT5yb20sIGRhdGEgKiB0aGlzLT5yb20uYmFua19zaXplICk7CisJCWlmICggcm9tX21hcHBlZCApCisJCQlzZXRfYmFuayggdGhpcywgMiwgdGhpcy0+YmFuazIgKTsKKwkJYnJlYWs7CisJfQorCQkKKwljYXNlIDB4RkZGRDoKKwkJc2V0X2JhbmsoIHRoaXMsIDAsIFJvbV9hdF9hZGRyKCAmdGhpcy0+cm9tLCBkYXRhICogdGhpcy0+cm9tLmJhbmtfc2l6ZSApICk7CisJCWJyZWFrOworCQorCWNhc2UgMHhGRkZFOgorCQlzZXRfYmFuayggdGhpcywgMSwgUm9tX2F0X2FkZHIoICZ0aGlzLT5yb20sIGRhdGEgKiB0aGlzLT5yb20uYmFua19zaXplICkgKTsKKwkJYnJlYWs7CisJfQorfQorCitibGFyZ2dfZXJyX3QgU2djX3NldF9zYW1wbGVfcmF0ZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCByYXRlICkKK3sKKwlyZXF1aXJlKCAhdGhpcy0+c2FtcGxlX3JhdGUgKTsgLy8gc2FtcGxlIHJhdGUgY2FuJ3QgYmUgY2hhbmdlZCBvbmNlIHNldAorCUJ1ZmZlcl9pbml0KCAmdGhpcy0+c3RlcmVvX2J1ZiApOworCUJ1ZmZlcl9zZXRfc2FtcGxlX3JhdGUoICZ0aGlzLT5zdGVyZW9fYnVmLCByYXRlLCAxMDAwIC8gMjAgKTsKKworCS8vIFNldCBidWZmZXIgYmFzcworCUJ1ZmZlcl9iYXNzX2ZyZXEoICZ0aGlzLT5zdGVyZW9fYnVmLCA4MCApOworCisJdGhpcy0+c2FtcGxlX3JhdGUgPSByYXRlOworCVJFVFVSTl9FUlIoIHRyYWNrX2luaXQoICZ0aGlzLT50cmFja19maWx0ZXIsIHRoaXMgKSApOworCXRoaXMtPnRmaWx0ZXIubWF4X3NpbGVuY2UgPSA2ICogc3RlcmVvICogdGhpcy0+c2FtcGxlX3JhdGU7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgU291bmRfbXV0ZV92b2ljZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBpbmRleCwgYm9vbCBtdXRlICkKK3sKKwlyZXF1aXJlKCAodW5zaWduZWQpIGluZGV4IDwgKHVuc2lnbmVkKSB0aGlzLT52b2ljZV9jb3VudCApOworCWludCBiaXQgPSAxIDw8IGluZGV4OworCWludCBtYXNrID0gdGhpcy0+bXV0ZV9tYXNrXyB8IGJpdDsKKwlpZiAoICFtdXRlICkKKwkJbWFzayBePSBiaXQ7CisJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIG1hc2sgKTsKK30KKwordm9pZCBTb3VuZF9tdXRlX3ZvaWNlcyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtYXNrICkKK3sKKwlyZXF1aXJlKCB0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyBzYW1wbGUgcmF0ZSBtdXN0IGJlIHNldCBmaXJzdAorCXRoaXMtPm11dGVfbWFza18gPSBtYXNrOworCQorCWludCBpOworCWZvciAoIGkgPSB0aGlzLT52b2ljZV9jb3VudDsgaS0tOyApCisJeworCQlpZiAoIG1hc2sgJiAoMSA8PCBpKSApCisJCXsKKwkJCVNvdW5kX3NldF92b2ljZSggdGhpcywgaSwgMCwgMCwgMCApOworCQl9CisJCWVsc2UKKwkJeworCQkJc3RydWN0IGNoYW5uZWxfdCBjaCA9IEJ1ZmZlcl9jaGFubmVsKCAmdGhpcy0+c3RlcmVvX2J1ZiwgaSApOworCQkJYXNzZXJ0KCAoY2guY2VudGVyICYmIGNoLmxlZnQgJiYgY2gucmlnaHQpIHx8CisJCQkJCSghY2guY2VudGVyICYmICFjaC5sZWZ0ICYmICFjaC5yaWdodCkgKTsgLy8gYWxsIG9yIG5vdGhpbmcKKwkJCVNvdW5kX3NldF92b2ljZSggdGhpcywgaSwgY2guY2VudGVyLCBjaC5sZWZ0LCBjaC5yaWdodCApOworCQl9CisJfQorfQorCit2b2lkIFNvdW5kX3NldF90ZW1wbyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCB0ICkKK3sKKwlyZXF1aXJlKCB0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyBzYW1wbGUgcmF0ZSBtdXN0IGJlIHNldCBmaXJzdAorCWludCBjb25zdCBtaW4gPSAoaW50KShGUF9PTkVfVEVNUE8qMC4wMik7CisJaW50IGNvbnN0IG1heCA9IChpbnQpKEZQX09ORV9URU1QTyo0LjAwKTsKKwlpZiAoIHQgPCBtaW4gKSB0ID0gbWluOworCWlmICggdCA+IG1heCApIHQgPSBtYXg7CisJdGhpcy0+dGVtcG8gPSB0OworCisJdGhpcy0+cGxheV9wZXJpb2QgPSAoaW50KSAoKGNsb2NrX3JhdGUoIHRoaXMgKSAqIEZQX09ORV9URU1QTykgLyAodGhpcy0+aGVhZGVyLnJhdGUgPyA1MCA6IDYwKSAvIHQpOworfQorCitibGFyZ2dfZXJyX3QgU2djX3N0YXJ0X3RyYWNrKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IHRyYWNrICkKK3sKKwljbGVhcl90cmFja192YXJzKCB0aGlzICk7CisJCisJLy8gUmVtYXAgdHJhY2sgaWYgcGxheWxpc3QgYXZhaWxhYmxlCisJaWYgKCB0aGlzLT5tM3Uuc2l6ZSA+IDAgKSB7CisJCXN0cnVjdCBlbnRyeV90KiBlID0gJnRoaXMtPm0zdS5lbnRyaWVzW3RyYWNrXTsKKwkJdHJhY2sgPSBlLT50cmFjazsKKwl9CisJCisJdGhpcy0+Y3VycmVudF90cmFjayA9IHRyYWNrOworCQorCWlmICggc2VnYV9tYXBwaW5nKCB0aGlzICkgKQorCXsKKwkJU21zX2FwdV9yZXNldCggJnRoaXMtPmFwdSwgMCwgMCApOworCQlGbV9hcHVfcmVzZXQoICZ0aGlzLT5mbV9hcHUgKTsKKwkJdGhpcy0+Zm1fYWNjZXNzZWQgPSBmYWxzZTsKKwl9CisJZWxzZQorCXsKKwkJU21zX2FwdV9yZXNldCggJnRoaXMtPmFwdSwgMHgwMDAzLCAxNSApOworCX0KKwkKKwltZW1zZXQoIHRoaXMtPnJhbSAsIDAsIHNpemVvZiB0aGlzLT5yYW0gKTsKKwltZW1zZXQoIHRoaXMtPnJhbTIsIDAsIHNpemVvZiB0aGlzLT5yYW0yICk7CisJbWVtc2V0KCB0aGlzLT52ZWN0b3JzLCAweEZGLCBzaXplb2YgdGhpcy0+dmVjdG9ycyApOworCVo4MF9yZXNldCggJnRoaXMtPmNwdSwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPnJvbS51bm1hcHBlZCApOworCQorCWlmICggc2VnYV9tYXBwaW5nKCB0aGlzICkgKQorCXsKKwkJdGhpcy0+dmVjdG9yc19hZGRyID0gMHgxMDAwMCAtIHBhZ2Vfc2l6ZTsKKwkJdGhpcy0+aWRsZV9hZGRyID0gdGhpcy0+dmVjdG9yc19hZGRyOworCQlpbnQgaTsKKwkJZm9yICggaSA9IDE7IGkgPCA4OyArK2kgKQorCQl7CisJCQl0aGlzLT52ZWN0b3JzIFtpKjggKyAwXSA9IDB4QzM7IC8vIEpQIGFkZHIKKwkJCXRoaXMtPnZlY3RvcnMgW2kqOCArIDFdID0gdGhpcy0+aGVhZGVyLnJzdF9hZGRycyBbaSAtIDFdICYgMHhmZjsKKwkJCXRoaXMtPnZlY3RvcnMgW2kqOCArIDJdID0gdGhpcy0+aGVhZGVyLnJzdF9hZGRycyBbaSAtIDFdID4+IDg7CisJCX0KKwkJCisJCVo4MF9tYXBfbWVtX3J3KCAmdGhpcy0+Y3B1LCAweEMwMDAsIDB4MjAwMCwgdGhpcy0+cmFtICk7CisJCVo4MF9tYXBfbWVtKCAmdGhpcy0+Y3B1LCB0aGlzLT52ZWN0b3JzX2FkZHIsIHBhZ2Vfc2l6ZSwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPnZlY3RvcnMgKTsKKwkJCisJCXRoaXMtPmJhbmsyID0gTlVMTDsKKwkJZm9yICggaSA9IDA7IGkgPCA0OyArK2kgKQorCQkJY3B1X3dyaXRlKCB0aGlzLCAweEZGRkMgKyBpLCB0aGlzLT5oZWFkZXIubWFwcGluZyBbaV0gKTsKKwl9CisJZWxzZQorCXsKKwkJaWYgKCAhdGhpcy0+Y29sZWNvX2Jpb3MgKQorCQkJcmV0dXJuICJDb2xlY28gQklPUyBub3Qgc2V0IjsgLyogQkxBUkdHX0VSUiggQkxBUkdHX0VSUl9DQUxMRVIsICJDb2xlY28gQklPUyBub3Qgc2V0IiApOyAqLworCQkKKwkJdGhpcy0+dmVjdG9yc19hZGRyID0gMDsKKwkJWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIDAsIDB4MjAwMCwgdGhpcy0+dW5tYXBwZWRfd3JpdGUsIHRoaXMtPmNvbGVjb19iaW9zICk7CisJCWludCBpOworCQlmb3IgKCBpID0gMDsgaSA8IDg7ICsraSApCisJCQlaODBfbWFwX21lbV9ydyggJnRoaXMtPmNwdSwgMHg2MDAwICsgaSoweDQwMCwgMHg0MDAsIHRoaXMtPnJhbSApOworCQkKKwkJdGhpcy0+aWRsZV9hZGRyID0gMHgyMDAwOworCQlaODBfbWFwX21lbSggJnRoaXMtPmNwdSwgMHgyMDAwLCBwYWdlX3NpemUsIHRoaXMtPnVubWFwcGVkX3dyaXRlLCB0aGlzLT52ZWN0b3JzICk7CisJCQorCQlmb3IgKCBpID0gMDsgaSA8IDB4ODAwMCAvIHRoaXMtPnJvbS5iYW5rX3NpemU7ICsraSApCisJCXsKKwkJCWludCBhZGRyID0gMHg4MDAwICsgaSp0aGlzLT5yb20uYmFua19zaXplOworCQkJWjgwX21hcF9tZW0oICZ0aGlzLT5jcHUsIGFkZHIsIHRoaXMtPnJvbS5iYW5rX3NpemUsIHRoaXMtPnVubWFwcGVkX3dyaXRlLCBSb21fYXRfYWRkciggJnRoaXMtPnJvbSwgYWRkciApICk7CisJCX0KKwl9CisJCisJdGhpcy0+Y3B1LnIuc3AgID0gZ2V0X2xlMTYoIHRoaXMtPmhlYWRlci5zdGFja19wdHIgKTsKKwl0aGlzLT5jcHUuci5iLmEgPSB0cmFjazsKKwl0aGlzLT5uZXh0X3BsYXkgPSB0aGlzLT5wbGF5X3BlcmlvZDsKKworCWpzciggdGhpcywgdGhpcy0+aGVhZGVyLmluaXRfYWRkciApOworCisJQnVmZmVyX2NsZWFyKCAmdGhpcy0+c3RlcmVvX2J1ZiApOworCisJLy8gY29udmVydCBmaWx0ZXIgdGltZXMgdG8gc2FtcGxlcworCXN0cnVjdCBzZXR1cF90IHMgPSB0aGlzLT50ZmlsdGVyOworCXMubWF4X2luaXRpYWwgKj0gdGhpcy0+c2FtcGxlX3JhdGUgKiBzdGVyZW87CisJI2lmZGVmIEdNRV9ESVNBQkxFX1NJTEVOQ0VfTE9PS0FIRUFECisJCXMubG9va2FoZWFkID0gMTsKKwkjZW5kaWYKKwl0cmFja19zZXR1cCggJnRoaXMtPnRyYWNrX2ZpbHRlciwgJnMgKTsKKwkKKwlyZXR1cm4gdHJhY2tfc3RhcnQoICZ0aGlzLT50cmFja19maWx0ZXIgKTsKK30KKworLy8gVGVsbC9TZWVrCisKK3N0YXRpYyBpbnQgbXNlY190b19zYW1wbGVzKCBpbnQgbXNlYywgaW50IHNhbXBsZV9yYXRlICkKK3sKKwlpbnQgc2VjID0gbXNlYyAvIDEwMDA7CisJbXNlYyAtPSBzZWMgKiAxMDAwOworCXJldHVybiAoc2VjICogc2FtcGxlX3JhdGUgKyBtc2VjICogc2FtcGxlX3JhdGUgLyAxMDAwKSAqIHN0ZXJlbzsKK30KKworaW50IFRyYWNrX3RlbGwoIHN0cnVjdCBTZ2NfRW11KiB0aGlzICkKK3sKKwlpbnQgcmF0ZSA9IHRoaXMtPnNhbXBsZV9yYXRlICogc3RlcmVvOworCWludCBzZWMgPSB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSAvIHJhdGU7CisJcmV0dXJuIHNlYyAqIDEwMDAgKyAodHJhY2tfc2FtcGxlX2NvdW50KCAmdGhpcy0+dHJhY2tfZmlsdGVyICkgLSBzZWMgKiByYXRlKSAqIDEwMDAgLyByYXRlOworfQorCitibGFyZ2dfZXJyX3QgVHJhY2tfc2Vlayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtc2VjICkKK3sKKwlpbnQgdGltZSA9IG1zZWNfdG9fc2FtcGxlcyggbXNlYywgdGhpcy0+c2FtcGxlX3JhdGUgKTsKKwlpZiAoIHRpbWUgPCB0cmFja19zYW1wbGVfY291bnQoICZ0aGlzLT50cmFja19maWx0ZXIgKSApCisJUkVUVVJOX0VSUiggU2djX3N0YXJ0X3RyYWNrKCB0aGlzLCB0aGlzLT5jdXJyZW50X3RyYWNrICkgKTsKKwlyZXR1cm4gVHJhY2tfc2tpcCggdGhpcywgdGltZSAtIHRyYWNrX3NhbXBsZV9jb3VudCggJnRoaXMtPnRyYWNrX2ZpbHRlciApICk7Cit9CisKK2JsYXJnZ19lcnJfdCBUcmFja19za2lwKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IGNvdW50ICkKK3sKKwlyZXF1aXJlKCB0aGlzLT5jdXJyZW50X3RyYWNrID49IDAgKTsgLy8gc3RhcnRfdHJhY2soKSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQgYWxyZWFkeQorCXJldHVybiB0cmFja19za2lwKCAmdGhpcy0+dHJhY2tfZmlsdGVyLCBjb3VudCApOworfQorCitibGFyZ2dfZXJyX3Qgc2tpcF8oIHZvaWQqIGVtdSwgaW50IGNvdW50ICkKK3sKKwlzdHJ1Y3QgU2djX0VtdSogdGhpcyA9IChzdHJ1Y3QgU2djX0VtdSopIGVtdTsKKwkKKwkvLyBmb3IgbG9uZyBza2lwLCBtdXRlIHNvdW5kCisJY29uc3QgaW50IHRocmVzaG9sZCA9IDMyNzY4OworCWlmICggY291bnQgPiB0aHJlc2hvbGQgKQorCXsKKwkJaW50IHNhdmVkX211dGUgPSB0aGlzLT5tdXRlX21hc2tfOworCQlTb3VuZF9tdXRlX3ZvaWNlcyggdGhpcywgfjAgKTsKKworCQlpbnQgbiA9IGNvdW50IC0gdGhyZXNob2xkLzI7CisJCW4gJj0gfigyMDQ4LTEpOyAvLyByb3VuZCB0byBtdWx0aXBsZSBvZiAyMDQ4CisJCWNvdW50IC09IG47CisJCVJFVFVSTl9FUlIoIHNraXBweV8oICZ0aGlzLT50cmFja19maWx0ZXIsIG4gKSApOworCisJCVNvdW5kX211dGVfdm9pY2VzKCB0aGlzLCBzYXZlZF9tdXRlICk7CisJfQorCisJcmV0dXJuIHNraXBweV8oICZ0aGlzLT50cmFja19maWx0ZXIsIGNvdW50ICk7Cit9CisKK3ZvaWQgVHJhY2tfc2V0X2ZhZGUoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgc3RhcnRfbXNlYywgaW50IGxlbmd0aF9tc2VjICkKK3sKKwl0cmFja19zZXRfZmFkZSggJnRoaXMtPnRyYWNrX2ZpbHRlciwgbXNlY190b19zYW1wbGVzKCBzdGFydF9tc2VjLCB0aGlzLT5zYW1wbGVfcmF0ZSApLAorCQlsZW5ndGhfbXNlYyAqIHRoaXMtPnNhbXBsZV9yYXRlIC8gKDEwMDAgLyBzdGVyZW8pICk7Cit9CisKK2JsYXJnZ19lcnJfdCBTZ2NfcGxheSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBvdXRfY291bnQsIHNhbXBsZV90KiBvdXQgKQoreworCXJlcXVpcmUoIHRoaXMtPmN1cnJlbnRfdHJhY2sgPj0gMCApOworCXJlcXVpcmUoIG91dF9jb3VudCAlIHN0ZXJlbyA9PSAwICk7CisJcmV0dXJuIHRyYWNrX3BsYXkoICZ0aGlzLT50cmFja19maWx0ZXIsIG91dF9jb3VudCwgb3V0ICk7Cit9CisKK2JsYXJnZ19lcnJfdCBwbGF5Xyggdm9pZCogZW11LCBpbnQgY291bnQsIHNhbXBsZV90IG91dCBbXSApCit7CisJc3RydWN0IFNnY19FbXUqIHRoaXMgPSAoc3RydWN0IFNnY19FbXUqKSBlbXU7CisJCisJaW50IHJlbWFpbiA9IGNvdW50OworCXdoaWxlICggcmVtYWluICkKKwl7CisJCUJ1ZmZlcl9kaXNhYmxlX2ltbWVkaWF0ZV9yZW1vdmFsKCAmdGhpcy0+c3RlcmVvX2J1ZiApOworCQlyZW1haW4gLT0gQnVmZmVyX3JlYWRfc2FtcGxlcyggJnRoaXMtPnN0ZXJlb19idWYsICZvdXQgW2NvdW50IC0gcmVtYWluXSwgcmVtYWluICk7CisJCWlmICggcmVtYWluICkKKwkJeworCQkJaWYgKCB0aGlzLT5idWZfY2hhbmdlZF9jb3VudCAhPSBCdWZmZXJfY2hhbm5lbHNfY2hhbmdlZF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYgKSApCisJCQl7CisJCQkJdGhpcy0+YnVmX2NoYW5nZWRfY291bnQgPSBCdWZmZXJfY2hhbm5lbHNfY2hhbmdlZF9jb3VudCggJnRoaXMtPnN0ZXJlb19idWYgKTsKKwkJCQkKKwkJCQkvLyBSZW11dGUgdm9pY2VzCisJCQkJU291bmRfbXV0ZV92b2ljZXMoIHRoaXMsIHRoaXMtPm11dGVfbWFza18gKTsKKwkJCX0KKwkJCWludCBtc2VjID0gQnVmZmVyX2xlbmd0aCggJnRoaXMtPnN0ZXJlb19idWYgKTsKKwkJCWJsaXBfdGltZV90IGNsb2Nrc19lbXVsYXRlZCA9IG1zZWMgKiB0aGlzLT5jbG9ja19yYXRlXyAvIDEwMDAgLSAxMDA7CisJCQlSRVRVUk5fRVJSKCBydW5fY2xvY2tzKCB0aGlzLCAmY2xvY2tzX2VtdWxhdGVkLCBtc2VjICkgKTsKKwkJCWFzc2VydCggY2xvY2tzX2VtdWxhdGVkICk7CisJCQlCdWZmZXJfZW5kX2ZyYW1lKCAmdGhpcy0+c3RlcmVvX2J1ZiwgY2xvY2tzX2VtdWxhdGVkICk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvc2djX2VtdS5oIGIvYXBwcy9jb2RlY3MvbGliZ21lL3NnY19lbXUuaAppbmRleCA2NTk1YzAyLi44M2NkZTFlIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvc2djX2VtdS5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9zZ2NfZW11LmgKQEAgLTEsMTk1ICsxLDE5NSBAQAotLy8gU2VnYS9HYW1lIEdlYXIvQ29sZWNvIFNHQyBtdXNpYyBmaWxlIGVtdWxhdG9yDQotDQotLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZQ0KLSNpZm5kZWYgU0dDX0VNVV9IDQotI2RlZmluZSBTR0NfRU1VX0gNCi0NCi0jaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIg0KLSNpbmNsdWRlICJtdWx0aV9idWZmZXIuaCINCi0NCi0jaW5jbHVkZSAicm9tX2RhdGEuaCINCi0jaW5jbHVkZSAiejgwX2NwdS5oIg0KLSNpbmNsdWRlICJzbXNfZm1fYXB1LmgiDQotI2luY2x1ZGUgInNtc19hcHUuaCINCi0jaW5jbHVkZSAibTN1X3BsYXlsaXN0LmgiDQotI2luY2x1ZGUgInRyYWNrX2ZpbHRlci5oIg0KLQ0KLXR5cGVkZWYgc3RydWN0IFo4MF9DcHUgU2djX0NwdTsNCi0NCi0vLyBTR0MgZmlsZSBoZWFkZXINCi1lbnVtIHsgaGVhZGVyX3NpemUgPSAweEEwIH07DQotc3RydWN0IGhlYWRlcl90DQotew0KLQljaGFyIHRhZyAgICAgICBbNF07IC8vICJTR0NceDFBIg0KLQlieXRlIHZlcnM7ICAgICAgICAgIC8vIDB4MDENCi0JYnl0ZSByYXRlOyAgICAgICAgICAvLyAwPU5UU0MgMT1QQUwNCi0JYnl0ZSByZXNlcnZlZDEgWzJdOw0KLQlieXRlIGxvYWRfYWRkciBbMl07DQotCWJ5dGUgaW5pdF9hZGRyIFsyXTsNCi0JYnl0ZSBwbGF5X2FkZHIgWzJdOw0KLQlieXRlIHN0YWNrX3B0ciBbMl07DQotCWJ5dGUgcmVzZXJ2ZWQyIFsyXTsNCi0JYnl0ZSByc3RfYWRkcnMgWzcqMl07DQotCWJ5dGUgbWFwcGluZyAgIFs0XTsgLy8gVXNlZCBieSBTZWdhIG9ubHkNCi0JYnl0ZSBmaXJzdF9zb25nOyAgICAvLyBTb25nIHRvIHN0YXJ0IHBsYXlpbmcgZmlyc3QNCi0JYnl0ZSBzb25nX2NvdW50Ow0KLQlieXRlIGZpcnN0X2VmZmVjdDsNCi0JYnl0ZSBsYXN0X2VmZmVjdDsNCi0JYnl0ZSBzeXN0ZW07ICAgICAgICAvLyAwPU1hc3RlciBTeXN0ZW0gMT1HYW1lIEdlYXIgMj1Db2xlY292aXNpb24NCi0JYnl0ZSByZXNlcnZlZDMgWzIzXTsNCi0JY2hhciBnYW1lICAgICAgWzMyXTsgLy8gc3RyaW5ncyBjYW4gYmUgMzIgY2hhcnMsIE5PVCB0ZXJtaW5hdGVkDQotCWNoYXIgYXV0aG9yICAgIFszMl07DQotCWNoYXIgY29weXJpZ2h0IFszMl07DQotfTsNCi0NCi0vLyBUcnVlIGlmIGhlYWRlciBoYXMgdmFsaWQgZmlsZSBzaWduYXR1cmUNCi1zdGF0aWMgaW5saW5lIGJvb2wgdmFsaWRfdGFnKCBzdHJ1Y3QgaGVhZGVyX3QqIGggKQ0KLXsNCi0JcmV0dXJuIDAgPT0gbWVtY21wKCBoLT50YWcsICJTR0NceDFBIiwgNCApOwkNCi19DQotDQotc3RhdGljIGlubGluZSBpbnQgZWZmZWN0X2NvdW50KCBzdHJ1Y3QgaGVhZGVyX3QqIGggKSB7IHJldHVybiBoLT5sYXN0X2VmZmVjdCA/IGgtPmxhc3RfZWZmZWN0IC0gaC0+Zmlyc3RfZWZmZWN0ICsgMSA6IDA7IH0NCi0NCi1zdHJ1Y3QgU2djX0VtdSB7DQotCWJvb2wgZm1fYWNjZXNzZWQ7DQotDQotCWNwdV90aW1lX3QgcGxheV9wZXJpb2Q7DQotCWNwdV90aW1lX3QgbmV4dF9wbGF5Ow0KLQl2b2lkIGNvbnN0KiBiYW5rMjsgICAgICAvLyBST00gc2VsZWN0ZWQgZm9yIGJhbmsgMiwgaW4gY2FzZSBSQU0gaXMgY3VycmVudGx5IGhpZGluZyBpdA0KLQlhZGRyX3QgdmVjdG9yc19hZGRyOyAgICAvLyBSU1QgdmVjdG9ycyBzdGFydCBoZXJlDQotCWFkZHJfdCBpZGxlX2FkZHI7ICAgICAgIC8vIHJldHVybiBhZGRyZXNzIGZvciBpbml0L3BsYXkgcm91dGluZXMNCi0Jdm9pZCogY29sZWNvX2Jpb3M7DQotCQ0KLQkvLyBnZW5lcmFsDQotCWludCB2b2ljZV9jb3VudDsNCi0JaW50IGNvbnN0KiB2b2ljZV90eXBlczsNCi0JaW50IG11dGVfbWFza187DQotCWludCB0ZW1wbzsNCi0JaW50IGdhaW47DQotCQ0KLQlpbnQgc2FtcGxlX3JhdGU7DQotCQ0KLQkvLyB0cmFjay1zcGVjaWZpYw0KLQlpbnQgY3VycmVudF90cmFjazsNCi0JaW50IHRyYWNrX2NvdW50Ow0KLQ0KLQlpbnQgY2xvY2tfcmF0ZV87DQotCXVuc2lnbmVkIGJ1Zl9jaGFuZ2VkX2NvdW50Ow0KLQkNCi0JLy8gTTN1IFBsYXlsaXN0DQotCXN0cnVjdCBNM3VfUGxheWxpc3QgbTN1Ow0KLQlzdHJ1Y3QgaGVhZGVyX3QgaGVhZGVyOw0KLQkNCi0Jc3RydWN0IHNldHVwX3QgdGZpbHRlcjsNCi0Jc3RydWN0IFRyYWNrX0ZpbHRlciB0cmFja19maWx0ZXI7DQotCQ0KLQlzdHJ1Y3QgTXVsdGlfQnVmZmVyIHN0ZXJlb19idWY7DQotCQ0KLQlzdHJ1Y3QgU21zX0FwdSBhcHU7DQotCXN0cnVjdCBTbXNfRm1fQXB1IGZtX2FwdTsNCi0JDQotCVNnY19DcHUgY3B1Ow0KLQkNCi0JLy8gbGFyZ2UgaXRlbXMNCi0Jc3RydWN0IFJvbV9EYXRhIHJvbTsNCi0JYnl0ZSB2ZWN0b3JzIFtwYWdlX3NpemUgKyBwYWdlX3BhZGRpbmddOw0KLQlieXRlIHVubWFwcGVkX3dyaXRlIFsweDQwMDBdOw0KLQlieXRlIHJhbSBbMHgyMDAwICsgcGFnZV9wYWRkaW5nXTsNCi0JYnl0ZSByYW0yIFsweDQwMDAgKyBwYWdlX3BhZGRpbmddOw0KLX07DQotDQotLy8gQmFzaWMgZnVuY3Rpb25hbGl0eSAoc2VlIEdtZV9GaWxlLmggZm9yIGZpbGUgbG9hZGluZy90cmFjayBpbmZvIGZ1bmN0aW9ucykNCi0NCi12b2lkIFNnY19pbml0KCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApOw0KLQ0KLWJsYXJnZ19lcnJfdCBTZ2NfbG9hZF9tZW0oIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBjb25zdCB2b2lkKiBkYXRhLCBsb25nIHNpemUgKTsNCi0NCi1zdGF0aWMgaW5saW5lIGludCBjbG9ja19yYXRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApIHsgcmV0dXJuIHRoaXMtPmhlYWRlci5yYXRlID8gMzU0Njg5MyA6IDM1Nzk1NDU7IH0NCi0NCi0vLyAweDIwMDAgYnl0ZXMNCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X2NvbGVjb19iaW9zKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgdm9pZCogcCApIHsgdGhpcy0+Y29sZWNvX2Jpb3MgPSBwOyB9DQotDQotLy8gU2V0IG91dHB1dCBzYW1wbGUgcmF0ZS4gTXVzdCBiZSBjYWxsZWQgb25seSBvbmNlIGJlZm9yZSBsb2FkaW5nIGZpbGUuDQotYmxhcmdnX2Vycl90IFNnY19zZXRfc2FtcGxlX3JhdGUoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgc2FtcGxlX3JhdGUgKTsNCi0NCi0vLyBTdGFydCBhIHRyYWNrLCB3aGVyZSAwIGlzIHRoZSBmaXJzdCB0cmFjay4gQWxzbyBjbGVhcnMgd2FybmluZyBzdHJpbmcuDQotYmxhcmdnX2Vycl90IFNnY19zdGFydF90cmFjayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCB0cmFjayApOw0KLQ0KLS8vIEdlbmVyYXRlICdjb3VudCcgc2FtcGxlcyBpbmZvICdidWYnLiBPdXRwdXQgaXMgaW4gc3RlcmVvLiBBbnkgZW11bGF0aW9uDQotLy8gZXJyb3JzIHNldCB3YXJuaW5nIHN0cmluZywgYW5kIG1ham9yIGVycm9ycyBhbHNvIGVuZCB0cmFjay4NCi1ibGFyZ2dfZXJyX3QgU2djX3BsYXkoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgY291bnQsIHNhbXBsZV90KiBidWYgKTsNCi0NCi0vLyBUcmFjayBzdGF0dXMvY29udHJvbA0KLQ0KLS8vIE51bWJlciBvZiBtaWxsaXNlY29uZHMgKDEwMDAgbXNlYyA9IDEgc2Vjb25kKSBwbGF5ZWQgc2luY2UgYmVnaW5uaW5nIG9mIHRyYWNrDQotaW50IFRyYWNrX3RlbGwoIHN0cnVjdCBTZ2NfRW11KiB0aGlzICk7DQotDQotLy8gU2VlayB0byBuZXcgdGltZSBpbiB0cmFjay4gU2Vla2luZyBiYWNrd2FyZHMgb3IgZmFyIGZvcndhcmQgY2FuIHRha2UgYSB3aGlsZS4NCi1ibGFyZ2dfZXJyX3QgVHJhY2tfc2Vlayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtc2VjICk7DQotDQotLy8gU2tpcCBuIHNhbXBsZXMNCi1ibGFyZ2dfZXJyX3QgVHJhY2tfc2tpcCggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBuICk7DQotDQotLy8gU2V0IHN0YXJ0IHRpbWUgYW5kIGxlbmd0aCBvZiB0cmFjayBmYWRlIG91dC4gT25jZSBmYWRlIGVuZHMgdHJhY2tfZW5kZWQoKSByZXR1cm5zDQotLy8gdHJ1ZS4gRmFkZSB0aW1lIGNhbiBiZSBjaGFuZ2VkIHdoaWxlIHRyYWNrIGlzIHBsYXlpbmcuDQotdm9pZCBUcmFja19zZXRfZmFkZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBzdGFydF9tc2VjLCBpbnQgbGVuZ3RoX21zZWMgKTsNCi0NCi0vLyBUcnVlIGlmIGEgdHJhY2sgaGFzIHJlYWNoZWQgaXRzIGVuZA0KLXN0YXRpYyBpbmxpbmUgYm9vbCBUcmFja19lbmRlZCggc3RydWN0IFNnY19FbXUqIHRoaXMgKQ0KLXsNCi0JcmV0dXJuIHRyYWNrX2VuZGVkKCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7DQotfQ0KLQ0KLS8vIERpc2FibGVzIGF1dG9tYXRpYyBlbmQtb2YtdHJhY2sgZGV0ZWN0aW9uIGFuZCBza2lwcGluZyBvZiBzaWxlbmNlIGF0IGJlZ2lubmluZw0KLXN0YXRpYyBpbmxpbmUgdm9pZCBUcmFja19pZ25vcmVfc2lsZW5jZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGJvb2wgZGlzYWJsZSApDQotew0KLQl0aGlzLT50cmFja19maWx0ZXIuc2lsZW5jZV9pZ25vcmVkXyA9IGRpc2FibGU7DQotfQ0KLQ0KLS8vIEdldCB0cmFjayBsZW5ndGggaW4gbWlsbGlzZWNvbmRzDQotc3RhdGljIGlubGluZSBpbnQgVHJhY2tfZ2V0X2xlbmd0aCggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBuICkNCi17DQotCWludCBsZW5ndGggPSAxMjAgKiAxMDAwOyAgLyogMiBtaW51dGVzICovIA0KLQlpZiAoICh0aGlzLT5tM3Uuc2l6ZSA+IDApICYmIChuIDwgdGhpcy0+bTN1LnNpemUpICkgew0KLQkJc3RydWN0IGVudHJ5X3QqIGVudHJ5ID0gJnRoaXMtPm0zdS5lbnRyaWVzIFtuXTsNCi0JCWxlbmd0aCA9IGVudHJ5LT5sZW5ndGg7DQotCX0gDQotDQotCXJldHVybiBsZW5ndGg7DQotfQ0KLQ0KLS8vIFNvdW5kIGN1c3RvbWl6YXRpb24NCi0NCi0vLyBBZGp1c3Qgc29uZyB0ZW1wbywgd2hlcmUgMS4wID0gbm9ybWFsLCAwLjUgPSBoYWxmIHNwZWVkLCAyLjAgPSBkb3VibGUgc3BlZWQuDQotLy8gVHJhY2sgbGVuZ3RoIGFzIHJldHVybmVkIGJ5IHRyYWNrX2luZm8oKSBhc3N1bWVzIGEgdGVtcG8gb2YgMS4wLg0KLXZvaWQgU291bmRfc2V0X3RlbXBvKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IHQgKTsNCi0NCi0vLyBNdXRlL3VubXV0ZSB2b2ljZSBpLCB3aGVyZSB2b2ljZSAwIGlzIGZpcnN0IHZvaWNlDQotdm9pZCBTb3VuZF9tdXRlX3ZvaWNlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IGluZGV4LCBib29sIG11dGUgKTsNCi0NCi0vLyBTZXQgbXV0aW5nIHN0YXRlIG9mIGFsbCB2b2ljZXMgYXQgb25jZSB1c2luZyBhIGJpdCBtYXNrLCB3aGVyZSAtMSBtdXRlcyB0aGVtIGFsbCwNCi0vLyAwIHVubXV0ZXMgdGhlbSBhbGwsIDB4MDEgbXV0ZXMganVzdCB0aGUgZmlyc3Qgdm9pY2UsIGV0Yy4NCi12b2lkIFNvdW5kX211dGVfdm9pY2VzKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IG1hc2sgKTsNCi0NCi0vLyBDaGFuZ2Ugb3ZlcmFsbCBvdXRwdXQgYW1wbGl0dWRlLCB3aGVyZSAxLjAgcmVzdWx0cyBpbiBtaW5pbWFsIGNsYW1waW5nLg0KLS8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRfc2FtcGxlX3JhdGUoKS4NCi1zdGF0aWMgaW5saW5lIHZvaWQgU291bmRfc2V0X2dhaW4oIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgZyApDQotew0KLQlhc3NlcnQoICF0aGlzLT5zYW1wbGVfcmF0ZSApOyAvLyB5b3UgbXVzdCBzZXQgZ2FpbiBiZWZvcmUgc2V0dGluZyBzYW1wbGUgcmF0ZQ0KLQl0aGlzLT5nYWluID0gZzsNCi19DQotDQotLy8gVHJ1ZSBpZiBNYXN0ZXIgU3lzdGVtIG9yIEdhbWUgR2Vhcg0KLXN0YXRpYyBpbmxpbmUgYm9vbCBzZWdhX21hcHBpbmcoIHN0cnVjdCBTZ2NfRW11KiB0aGlzICkNCi17DQotCXJldHVybiB0aGlzLT5oZWFkZXIuc3lzdGVtIDw9IDE7DQotfQ0KLQ0KLS8vIEVtdWxhdGlvbiAoWW91IHNob3VsZG4ndCB0b3VjaCB0aGVzZSkNCi0NCi1ib29sIHJ1bl9jcHUoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBjcHVfdGltZV90IGVuZF90aW1lICk7DQotdm9pZCBjcHVfb3V0KCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgY3B1X3RpbWVfdCB0aW1lLCBhZGRyX3QgYWRkciwgaW50IGRhdGEgKTsNCi12b2lkIGNwdV93cml0ZSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGFkZHJfdCBhZGRyLCBpbnQgZGF0YSApOw0KLXZvaWQganNyKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgYnl0ZSBhZGRyIFsyXSApOw0KLQ0KLSNlbmRpZg0KKy8vIFNlZ2EvR2FtZSBHZWFyL0NvbGVjbyBTR0MgbXVzaWMgZmlsZSBlbXVsYXRvcgorCisvLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlCisjaWZuZGVmIFNHQ19FTVVfSAorI2RlZmluZSBTR0NfRU1VX0gKKworI2luY2x1ZGUgImJsYXJnZ19jb21tb24uaCIKKyNpbmNsdWRlICJtdWx0aV9idWZmZXIuaCIKKworI2luY2x1ZGUgInJvbV9kYXRhLmgiCisjaW5jbHVkZSAiejgwX2NwdS5oIgorI2luY2x1ZGUgInNtc19mbV9hcHUuaCIKKyNpbmNsdWRlICJzbXNfYXB1LmgiCisjaW5jbHVkZSAibTN1X3BsYXlsaXN0LmgiCisjaW5jbHVkZSAidHJhY2tfZmlsdGVyLmgiCisKK3R5cGVkZWYgc3RydWN0IFo4MF9DcHUgU2djX0NwdTsKKworLy8gU0dDIGZpbGUgaGVhZGVyCitlbnVtIHsgaGVhZGVyX3NpemUgPSAweEEwIH07CitzdHJ1Y3QgaGVhZGVyX3QKK3sKKwljaGFyIHRhZyAgICAgICBbNF07IC8vICJTR0NceDFBIgorCWJ5dGUgdmVyczsgICAgICAgICAgLy8gMHgwMQorCWJ5dGUgcmF0ZTsgICAgICAgICAgLy8gMD1OVFNDIDE9UEFMCisJYnl0ZSByZXNlcnZlZDEgWzJdOworCWJ5dGUgbG9hZF9hZGRyIFsyXTsKKwlieXRlIGluaXRfYWRkciBbMl07CisJYnl0ZSBwbGF5X2FkZHIgWzJdOworCWJ5dGUgc3RhY2tfcHRyIFsyXTsKKwlieXRlIHJlc2VydmVkMiBbMl07CisJYnl0ZSByc3RfYWRkcnMgWzcqMl07CisJYnl0ZSBtYXBwaW5nICAgWzRdOyAvLyBVc2VkIGJ5IFNlZ2Egb25seQorCWJ5dGUgZmlyc3Rfc29uZzsgICAgLy8gU29uZyB0byBzdGFydCBwbGF5aW5nIGZpcnN0CisJYnl0ZSBzb25nX2NvdW50OworCWJ5dGUgZmlyc3RfZWZmZWN0OworCWJ5dGUgbGFzdF9lZmZlY3Q7CisJYnl0ZSBzeXN0ZW07ICAgICAgICAvLyAwPU1hc3RlciBTeXN0ZW0gMT1HYW1lIEdlYXIgMj1Db2xlY292aXNpb24KKwlieXRlIHJlc2VydmVkMyBbMjNdOworCWNoYXIgZ2FtZSAgICAgIFszMl07IC8vIHN0cmluZ3MgY2FuIGJlIDMyIGNoYXJzLCBOT1QgdGVybWluYXRlZAorCWNoYXIgYXV0aG9yICAgIFszMl07CisJY2hhciBjb3B5cmlnaHQgWzMyXTsKK307CisKKy8vIFRydWUgaWYgaGVhZGVyIGhhcyB2YWxpZCBmaWxlIHNpZ25hdHVyZQorc3RhdGljIGlubGluZSBib29sIHZhbGlkX3RhZyggc3RydWN0IGhlYWRlcl90KiBoICkKK3sKKwlyZXR1cm4gMCA9PSBtZW1jbXAoIGgtPnRhZywgIlNHQ1x4MUEiLCA0ICk7CQorfQorCitzdGF0aWMgaW5saW5lIGludCBlZmZlY3RfY291bnQoIHN0cnVjdCBoZWFkZXJfdCogaCApIHsgcmV0dXJuIGgtPmxhc3RfZWZmZWN0ID8gaC0+bGFzdF9lZmZlY3QgLSBoLT5maXJzdF9lZmZlY3QgKyAxIDogMDsgfQorCitzdHJ1Y3QgU2djX0VtdSB7CisJYm9vbCBmbV9hY2Nlc3NlZDsKKworCWNwdV90aW1lX3QgcGxheV9wZXJpb2Q7CisJY3B1X3RpbWVfdCBuZXh0X3BsYXk7CisJdm9pZCBjb25zdCogYmFuazI7ICAgICAgLy8gUk9NIHNlbGVjdGVkIGZvciBiYW5rIDIsIGluIGNhc2UgUkFNIGlzIGN1cnJlbnRseSBoaWRpbmcgaXQKKwlhZGRyX3QgdmVjdG9yc19hZGRyOyAgICAvLyBSU1QgdmVjdG9ycyBzdGFydCBoZXJlCisJYWRkcl90IGlkbGVfYWRkcjsgICAgICAgLy8gcmV0dXJuIGFkZHJlc3MgZm9yIGluaXQvcGxheSByb3V0aW5lcworCXZvaWQqIGNvbGVjb19iaW9zOworCQorCS8vIGdlbmVyYWwKKwlpbnQgdm9pY2VfY291bnQ7CisJaW50IGNvbnN0KiB2b2ljZV90eXBlczsKKwlpbnQgbXV0ZV9tYXNrXzsKKwlpbnQgdGVtcG87CisJaW50IGdhaW47CisJCisJaW50IHNhbXBsZV9yYXRlOworCQorCS8vIHRyYWNrLXNwZWNpZmljCisJaW50IGN1cnJlbnRfdHJhY2s7CisJaW50IHRyYWNrX2NvdW50OworCisJaW50IGNsb2NrX3JhdGVfOworCXVuc2lnbmVkIGJ1Zl9jaGFuZ2VkX2NvdW50OworCQorCS8vIE0zdSBQbGF5bGlzdAorCXN0cnVjdCBNM3VfUGxheWxpc3QgbTN1OworCXN0cnVjdCBoZWFkZXJfdCBoZWFkZXI7CisJCisJc3RydWN0IHNldHVwX3QgdGZpbHRlcjsKKwlzdHJ1Y3QgVHJhY2tfRmlsdGVyIHRyYWNrX2ZpbHRlcjsKKwkKKwlzdHJ1Y3QgTXVsdGlfQnVmZmVyIHN0ZXJlb19idWY7CisJCisJc3RydWN0IFNtc19BcHUgYXB1OworCXN0cnVjdCBTbXNfRm1fQXB1IGZtX2FwdTsKKwkKKwlTZ2NfQ3B1IGNwdTsKKwkKKwkvLyBsYXJnZSBpdGVtcworCXN0cnVjdCBSb21fRGF0YSByb207CisJYnl0ZSB2ZWN0b3JzIFtwYWdlX3NpemUgKyBwYWdlX3BhZGRpbmddOworCWJ5dGUgdW5tYXBwZWRfd3JpdGUgWzB4NDAwMF07CisJYnl0ZSByYW0gWzB4MjAwMCArIHBhZ2VfcGFkZGluZ107CisJYnl0ZSByYW0yIFsweDQwMDAgKyBwYWdlX3BhZGRpbmddOworfTsKKworLy8gQmFzaWMgZnVuY3Rpb25hbGl0eSAoc2VlIEdtZV9GaWxlLmggZm9yIGZpbGUgbG9hZGluZy90cmFjayBpbmZvIGZ1bmN0aW9ucykKKwordm9pZCBTZ2NfaW5pdCggc3RydWN0IFNnY19FbXUqIHRoaXMgKTsKKworYmxhcmdnX2Vycl90IFNnY19sb2FkX21lbSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGNvbnN0IHZvaWQqIGRhdGEsIGxvbmcgc2l6ZSApOworCitzdGF0aWMgaW5saW5lIGludCBjbG9ja19yYXRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApIHsgcmV0dXJuIHRoaXMtPmhlYWRlci5yYXRlID8gMzU0Njg5MyA6IDM1Nzk1NDU7IH0KKworLy8gMHgyMDAwIGJ5dGVzCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2NvbGVjb19iaW9zKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgdm9pZCogcCApIHsgdGhpcy0+Y29sZWNvX2Jpb3MgPSBwOyB9CisKKy8vIFNldCBvdXRwdXQgc2FtcGxlIHJhdGUuIE11c3QgYmUgY2FsbGVkIG9ubHkgb25jZSBiZWZvcmUgbG9hZGluZyBmaWxlLgorYmxhcmdnX2Vycl90IFNnY19zZXRfc2FtcGxlX3JhdGUoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgc2FtcGxlX3JhdGUgKTsKKworLy8gU3RhcnQgYSB0cmFjaywgd2hlcmUgMCBpcyB0aGUgZmlyc3QgdHJhY2suIEFsc28gY2xlYXJzIHdhcm5pbmcgc3RyaW5nLgorYmxhcmdnX2Vycl90IFNnY19zdGFydF90cmFjayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCB0cmFjayApOworCisvLyBHZW5lcmF0ZSAnY291bnQnIHNhbXBsZXMgaW5mbyAnYnVmJy4gT3V0cHV0IGlzIGluIHN0ZXJlby4gQW55IGVtdWxhdGlvbgorLy8gZXJyb3JzIHNldCB3YXJuaW5nIHN0cmluZywgYW5kIG1ham9yIGVycm9ycyBhbHNvIGVuZCB0cmFjay4KK2JsYXJnZ19lcnJfdCBTZ2NfcGxheSggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBjb3VudCwgc2FtcGxlX3QqIGJ1ZiApOworCisvLyBUcmFjayBzdGF0dXMvY29udHJvbAorCisvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzICgxMDAwIG1zZWMgPSAxIHNlY29uZCkgcGxheWVkIHNpbmNlIGJlZ2lubmluZyBvZiB0cmFjaworaW50IFRyYWNrX3RlbGwoIHN0cnVjdCBTZ2NfRW11KiB0aGlzICk7CisKKy8vIFNlZWsgdG8gbmV3IHRpbWUgaW4gdHJhY2suIFNlZWtpbmcgYmFja3dhcmRzIG9yIGZhciBmb3J3YXJkIGNhbiB0YWtlIGEgd2hpbGUuCitibGFyZ2dfZXJyX3QgVHJhY2tfc2Vlayggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtc2VjICk7CisKKy8vIFNraXAgbiBzYW1wbGVzCitibGFyZ2dfZXJyX3QgVHJhY2tfc2tpcCggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBuICk7CisKKy8vIFNldCBzdGFydCB0aW1lIGFuZCBsZW5ndGggb2YgdHJhY2sgZmFkZSBvdXQuIE9uY2UgZmFkZSBlbmRzIHRyYWNrX2VuZGVkKCkgcmV0dXJucworLy8gdHJ1ZS4gRmFkZSB0aW1lIGNhbiBiZSBjaGFuZ2VkIHdoaWxlIHRyYWNrIGlzIHBsYXlpbmcuCit2b2lkIFRyYWNrX3NldF9mYWRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IHN0YXJ0X21zZWMsIGludCBsZW5ndGhfbXNlYyApOworCisvLyBUcnVlIGlmIGEgdHJhY2sgaGFzIHJlYWNoZWQgaXRzIGVuZAorc3RhdGljIGlubGluZSBib29sIFRyYWNrX2VuZGVkKCBzdHJ1Y3QgU2djX0VtdSogdGhpcyApCit7CisJcmV0dXJuIHRyYWNrX2VuZGVkKCAmdGhpcy0+dHJhY2tfZmlsdGVyICk7Cit9CisKKy8vIERpc2FibGVzIGF1dG9tYXRpYyBlbmQtb2YtdHJhY2sgZGV0ZWN0aW9uIGFuZCBza2lwcGluZyBvZiBzaWxlbmNlIGF0IGJlZ2lubmluZworc3RhdGljIGlubGluZSB2b2lkIFRyYWNrX2lnbm9yZV9zaWxlbmNlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgYm9vbCBkaXNhYmxlICkKK3sKKwl0aGlzLT50cmFja19maWx0ZXIuc2lsZW5jZV9pZ25vcmVkXyA9IGRpc2FibGU7Cit9CisKKy8vIEdldCB0cmFjayBsZW5ndGggaW4gbWlsbGlzZWNvbmRzCitzdGF0aWMgaW5saW5lIGludCBUcmFja19nZXRfbGVuZ3RoKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgaW50IG4gKQoreworCWludCBsZW5ndGggPSAxMjAgKiAxMDAwOyAgLyogMiBtaW51dGVzICovIAorCWlmICggKHRoaXMtPm0zdS5zaXplID4gMCkgJiYgKG4gPCB0aGlzLT5tM3Uuc2l6ZSkgKSB7CisJCXN0cnVjdCBlbnRyeV90KiBlbnRyeSA9ICZ0aGlzLT5tM3UuZW50cmllcyBbbl07CisJCWxlbmd0aCA9IGVudHJ5LT5sZW5ndGg7CisJfSAKKworCXJldHVybiBsZW5ndGg7Cit9CisKKy8vIFNvdW5kIGN1c3RvbWl6YXRpb24KKworLy8gQWRqdXN0IHNvbmcgdGVtcG8sIHdoZXJlIDEuMCA9IG5vcm1hbCwgMC41ID0gaGFsZiBzcGVlZCwgMi4wID0gZG91YmxlIHNwZWVkLgorLy8gVHJhY2sgbGVuZ3RoIGFzIHJldHVybmVkIGJ5IHRyYWNrX2luZm8oKSBhc3N1bWVzIGEgdGVtcG8gb2YgMS4wLgordm9pZCBTb3VuZF9zZXRfdGVtcG8oIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgdCApOworCisvLyBNdXRlL3VubXV0ZSB2b2ljZSBpLCB3aGVyZSB2b2ljZSAwIGlzIGZpcnN0IHZvaWNlCit2b2lkIFNvdW5kX211dGVfdm9pY2UoIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgaW5kZXgsIGJvb2wgbXV0ZSApOworCisvLyBTZXQgbXV0aW5nIHN0YXRlIG9mIGFsbCB2b2ljZXMgYXQgb25jZSB1c2luZyBhIGJpdCBtYXNrLCB3aGVyZSAtMSBtdXRlcyB0aGVtIGFsbCwKKy8vIDAgdW5tdXRlcyB0aGVtIGFsbCwgMHgwMSBtdXRlcyBqdXN0IHRoZSBmaXJzdCB2b2ljZSwgZXRjLgordm9pZCBTb3VuZF9tdXRlX3ZvaWNlcyggc3RydWN0IFNnY19FbXUqIHRoaXMsIGludCBtYXNrICk7CisKKy8vIENoYW5nZSBvdmVyYWxsIG91dHB1dCBhbXBsaXR1ZGUsIHdoZXJlIDEuMCByZXN1bHRzIGluIG1pbmltYWwgY2xhbXBpbmcuCisvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgc2V0X3NhbXBsZV9yYXRlKCkuCitzdGF0aWMgaW5saW5lIHZvaWQgU291bmRfc2V0X2dhaW4oIHN0cnVjdCBTZ2NfRW11KiB0aGlzLCBpbnQgZyApCit7CisJYXNzZXJ0KCAhdGhpcy0+c2FtcGxlX3JhdGUgKTsgLy8geW91IG11c3Qgc2V0IGdhaW4gYmVmb3JlIHNldHRpbmcgc2FtcGxlIHJhdGUKKwl0aGlzLT5nYWluID0gZzsKK30KKworLy8gVHJ1ZSBpZiBNYXN0ZXIgU3lzdGVtIG9yIEdhbWUgR2Vhcgorc3RhdGljIGlubGluZSBib29sIHNlZ2FfbWFwcGluZyggc3RydWN0IFNnY19FbXUqIHRoaXMgKQoreworCXJldHVybiB0aGlzLT5oZWFkZXIuc3lzdGVtIDw9IDE7Cit9CisKKy8vIEVtdWxhdGlvbiAoWW91IHNob3VsZG4ndCB0b3VjaCB0aGVzZSkKKworYm9vbCBydW5fY3B1KCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgY3B1X3RpbWVfdCBlbmRfdGltZSApOwordm9pZCBjcHVfb3V0KCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgY3B1X3RpbWVfdCB0aW1lLCBhZGRyX3QgYWRkciwgaW50IGRhdGEgKTsKK3ZvaWQgY3B1X3dyaXRlKCBzdHJ1Y3QgU2djX0VtdSogdGhpcywgYWRkcl90IGFkZHIsIGludCBkYXRhICk7Cit2b2lkIGpzciggc3RydWN0IFNnY19FbXUqIHRoaXMsIGJ5dGUgYWRkciBbMl0gKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvc21zX2ZtX2FwdS5jIGIvYXBwcy9jb2RlY3MvbGliZ21lL3Ntc19mbV9hcHUuYwppbmRleCA2ZmQwMDU0Li5lZTVjZTQ4IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvc21zX2ZtX2FwdS5jCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9zbXNfZm1fYXB1LmMKQEAgLTEsODIgKzEsODIgQEAKLSNpbmNsdWRlICJzbXNfZm1fYXB1LmgiDQotDQotI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCINCi0NCi12b2lkIEZtX2FwdV9jcmVhdGUoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICkNCi17IA0KLQlTeW50aF9pbml0KCAmdGhpcy0+c3ludGggKTsNCi0JWW0yNDEzX2luaXQoICZ0aGlzLT5hcHUgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IEZtX2FwdV9pbml0KCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgaW50IGNsb2NrX3JhdGUsIGludCBzYW1wbGVfcmF0ZSApDQotew0KLQl0aGlzLT5wZXJpb2RfID0gKGJsaXBfdGltZV90KSAoY2xvY2tfcmF0ZSAvIHNhbXBsZV9yYXRlKTsNCi0JQ0hFQ0tfQUxMT0MoICFZbTI0MTNfc2V0X3JhdGUoICZ0aGlzLT5hcHUsIHNhbXBsZV9yYXRlLCBjbG9ja19yYXRlICkgKTsNCi0JDQotCUZtX2FwdV9zZXRfb3V0cHV0KCB0aGlzLCAwICk7DQotCUZtX2FwdV92b2x1bWUoIHRoaXMsIChpbnQpRlBfT05FX1ZPTFVNRSApOw0KLQlGbV9hcHVfcmVzZXQoIHRoaXMgKTsNCi0JcmV0dXJuIDA7DQotfQ0KLQ0KLXZvaWQgRm1fYXB1X3Jlc2V0KCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcyApDQotew0KLQl0aGlzLT5hZGRyICAgICAgPSAwOw0KLQl0aGlzLT5uZXh0X3RpbWUgPSAwOw0KLQl0aGlzLT5sYXN0X2FtcCAgPSAwOw0KLQkNCi0JWW0yNDEzX3Jlc2V0KCAmdGhpcy0+YXB1ICk7DQotfQ0KLQ0KLXZvaWQgZm1fcnVuX3VudGlsKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKTsNCi12b2lkIEZtX2FwdV93cml0ZV9kYXRhKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSwgaW50IGRhdGEgKQ0KLXsNCi0JaWYgKCB0aW1lID4gdGhpcy0+bmV4dF90aW1lICkNCi0JCWZtX3J1bl91bnRpbCggdGhpcywgdGltZSApOw0KLQkNCi0JWW0yNDEzX3dyaXRlKCAmdGhpcy0+YXB1LCB0aGlzLT5hZGRyLCBkYXRhICk7DQotfQ0KLQ0KLXZvaWQgZm1fcnVuX3VudGlsKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgZW5kX3RpbWUgKQ0KLXsNCi0JYXNzZXJ0KCBlbmRfdGltZSA+IHRoaXMtPm5leHRfdGltZSApOw0KLQkNCi0Jc3RydWN0IEJsaXBfQnVmZmVyKiBjb25zdCBvdXRwdXQgPSB0aGlzLT5vdXRwdXRfOw0KLQlpZiAoICFvdXRwdXQgKQ0KLQl7DQotCQl0aGlzLT5uZXh0X3RpbWUgPSBlbmRfdGltZTsNCi0JCXJldHVybjsNCi0JfQ0KLQkNCi0JYmxpcF90aW1lX3QgdGltZSA9IHRoaXMtPm5leHRfdGltZTsNCi0Jc3RydWN0IFltMjQxM19FbXUqIGVtdSA9ICZ0aGlzLT5hcHU7DQotCWRvDQotCXsNCi0JCXNob3J0IHNhbXBsZXMgWzJdOw0KLQkJWW0yNDEzX3J1biggZW11LCAxLCBzYW1wbGVzICk7DQotCQlpbnQgYW1wID0gKHNhbXBsZXMgWzBdICsgc2FtcGxlcyBbMV0pID4+IDE7DQotCQkNCi0JCWludCBkZWx0YSA9IGFtcCAtIHRoaXMtPmxhc3RfYW1wOw0KLQkJaWYgKCBkZWx0YSApDQotCQl7DQotCQkJdGhpcy0+bGFzdF9hbXAgPSBhbXA7DQotCQkJU3ludGhfb2Zmc2V0X2lubGluZSggJnRoaXMtPnN5bnRoLCB0aW1lLCBkZWx0YSwgb3V0cHV0ICk7DQotCQl9DQotCQl0aW1lICs9IHRoaXMtPnBlcmlvZF87DQotCX0NCi0Jd2hpbGUgKCB0aW1lIDwgZW5kX3RpbWUgKTsNCi0JDQotCXRoaXMtPm5leHRfdGltZSA9IHRpbWU7DQotfQ0KLQ0KLXZvaWQgRm1fYXB1X2VuZF9mcmFtZSggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIGJsaXBfdGltZV90IHRpbWUgKQ0KLXsNCi0JaWYgKCB0aW1lID4gdGhpcy0+bmV4dF90aW1lICkNCi0JCWZtX3J1bl91bnRpbCggdGhpcywgdGltZSApOw0KLQkNCi0JdGhpcy0+bmV4dF90aW1lIC09IHRpbWU7DQotCWFzc2VydCggdGhpcy0+bmV4dF90aW1lID49IDAgKTsNCi0JDQotCWlmICggdGhpcy0+b3V0cHV0XyApDQotCQlCbGlwX3NldF9tb2RpZmllZCggdGhpcy0+b3V0cHV0XyApOw0KLX0NCisjaW5jbHVkZSAic21zX2ZtX2FwdS5oIgorCisjaW5jbHVkZSAiYmxhcmdnX3NvdXJjZS5oIgorCit2b2lkIEZtX2FwdV9jcmVhdGUoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICkKK3sgCisJU3ludGhfaW5pdCggJnRoaXMtPnN5bnRoICk7CisJWW0yNDEzX2luaXQoICZ0aGlzLT5hcHUgKTsKK30KKworYmxhcmdnX2Vycl90IEZtX2FwdV9pbml0KCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgaW50IGNsb2NrX3JhdGUsIGludCBzYW1wbGVfcmF0ZSApCit7CisJdGhpcy0+cGVyaW9kXyA9IChibGlwX3RpbWVfdCkgKGNsb2NrX3JhdGUgLyBzYW1wbGVfcmF0ZSk7CisJQ0hFQ0tfQUxMT0MoICFZbTI0MTNfc2V0X3JhdGUoICZ0aGlzLT5hcHUsIHNhbXBsZV9yYXRlLCBjbG9ja19yYXRlICkgKTsKKwkKKwlGbV9hcHVfc2V0X291dHB1dCggdGhpcywgMCApOworCUZtX2FwdV92b2x1bWUoIHRoaXMsIChpbnQpRlBfT05FX1ZPTFVNRSApOworCUZtX2FwdV9yZXNldCggdGhpcyApOworCXJldHVybiAwOworfQorCit2b2lkIEZtX2FwdV9yZXNldCggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMgKQoreworCXRoaXMtPmFkZHIgICAgICA9IDA7CisJdGhpcy0+bmV4dF90aW1lID0gMDsKKwl0aGlzLT5sYXN0X2FtcCAgPSAwOworCQorCVltMjQxM19yZXNldCggJnRoaXMtPmFwdSApOworfQorCit2b2lkIGZtX3J1bl91bnRpbCggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICk7Cit2b2lkIEZtX2FwdV93cml0ZV9kYXRhKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSwgaW50IGRhdGEgKQoreworCWlmICggdGltZSA+IHRoaXMtPm5leHRfdGltZSApCisJCWZtX3J1bl91bnRpbCggdGhpcywgdGltZSApOworCQorCVltMjQxM193cml0ZSggJnRoaXMtPmFwdSwgdGhpcy0+YWRkciwgZGF0YSApOworfQorCit2b2lkIGZtX3J1bl91bnRpbCggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIGJsaXBfdGltZV90IGVuZF90aW1lICkKK3sKKwlhc3NlcnQoIGVuZF90aW1lID4gdGhpcy0+bmV4dF90aW1lICk7CisJCisJc3RydWN0IEJsaXBfQnVmZmVyKiBjb25zdCBvdXRwdXQgPSB0aGlzLT5vdXRwdXRfOworCWlmICggIW91dHB1dCApCisJeworCQl0aGlzLT5uZXh0X3RpbWUgPSBlbmRfdGltZTsKKwkJcmV0dXJuOworCX0KKwkKKwlibGlwX3RpbWVfdCB0aW1lID0gdGhpcy0+bmV4dF90aW1lOworCXN0cnVjdCBZbTI0MTNfRW11KiBlbXUgPSAmdGhpcy0+YXB1OworCWRvCisJeworCQlzaG9ydCBzYW1wbGVzIFsyXTsKKwkJWW0yNDEzX3J1biggZW11LCAxLCBzYW1wbGVzICk7CisJCWludCBhbXAgPSAoc2FtcGxlcyBbMF0gKyBzYW1wbGVzIFsxXSkgPj4gMTsKKwkJCisJCWludCBkZWx0YSA9IGFtcCAtIHRoaXMtPmxhc3RfYW1wOworCQlpZiAoIGRlbHRhICkKKwkJeworCQkJdGhpcy0+bGFzdF9hbXAgPSBhbXA7CisJCQlTeW50aF9vZmZzZXRfaW5saW5lKCAmdGhpcy0+c3ludGgsIHRpbWUsIGRlbHRhLCBvdXRwdXQgKTsKKwkJfQorCQl0aW1lICs9IHRoaXMtPnBlcmlvZF87CisJfQorCXdoaWxlICggdGltZSA8IGVuZF90aW1lICk7CisJCisJdGhpcy0+bmV4dF90aW1lID0gdGltZTsKK30KKwordm9pZCBGbV9hcHVfZW5kX2ZyYW1lKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgdGltZSApCit7CisJaWYgKCB0aW1lID4gdGhpcy0+bmV4dF90aW1lICkKKwkJZm1fcnVuX3VudGlsKCB0aGlzLCB0aW1lICk7CisJCisJdGhpcy0+bmV4dF90aW1lIC09IHRpbWU7CisJYXNzZXJ0KCB0aGlzLT5uZXh0X3RpbWUgPj0gMCApOworCQorCWlmICggdGhpcy0+b3V0cHV0XyApCisJCUJsaXBfc2V0X21vZGlmaWVkKCB0aGlzLT5vdXRwdXRfICk7Cit9CmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvc21zX2ZtX2FwdS5oIGIvYXBwcy9jb2RlY3MvbGliZ21lL3Ntc19mbV9hcHUuaAppbmRleCAwMGJjMmI0Li45MjFkYjZjIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvc21zX2ZtX2FwdS5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS9zbXNfZm1fYXB1LmgKQEAgLTEsNDMgKzEsNDMgQEAKLSNpZm5kZWYgU01TX0ZNX0FQVV9IDQotI2RlZmluZSBTTVNfRk1fQVBVX0gNCi0NCi0jaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIg0KLSNpbmNsdWRlICJibGlwX2J1ZmZlci5oIg0KLSNpbmNsdWRlICJ5bTI0MTNfZW11LmgiDQotDQotZW51bSB7IGZtX2FwdV9vc2NfY291bnQgPSAxIH07DQotDQotc3RydWN0IFNtc19GbV9BcHUgew0KLQlzdHJ1Y3QgQmxpcF9CdWZmZXIqIG91dHB1dF87DQotCWJsaXBfdGltZV90IG5leHRfdGltZTsNCi0JaW50IGxhc3RfYW1wOw0KLQlpbnQgYWRkcjsNCi0JDQotCWludCBjbG9ja187DQotCWludCByYXRlXzsNCi0JYmxpcF90aW1lX3QgcGVyaW9kXzsNCi0JDQotCXN0cnVjdCBCbGlwX1N5bnRoIHN5bnRoOw0KLQlzdHJ1Y3QgWW0yNDEzX0VtdSBhcHU7DQotfTsNCi0NCi12b2lkIEZtX2FwdV9jcmVhdGUoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICk7DQotDQotc3RhdGljIGlubGluZSBib29sIEZtX2FwdV9zdXBwb3J0ZWQoIHZvaWQgKSB7IHJldHVybiBZbTI0MTNfc3VwcG9ydGVkKCk7IH0NCi1ibGFyZ2dfZXJyX3QgRm1fYXB1X2luaXQoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzLCBpbnQgY2xvY2tfcmF0ZSwgaW50IHNhbXBsZV9yYXRlICk7DQotDQotc3RhdGljIGlubGluZSB2b2lkIEZtX2FwdV9zZXRfb3V0cHV0KCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgc3RydWN0IEJsaXBfQnVmZmVyKiBiICkNCi17DQotCXRoaXMtPm91dHB1dF8gPSBiOw0KLX0NCi0NCi1zdGF0aWMgaW5saW5lIHZvaWQgRm1fYXB1X3ZvbHVtZSggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIGludCB2ICkgeyBTeW50aF92b2x1bWUoICZ0aGlzLT5zeW50aCwgKHYqMikgLyA1IC8gNDA5NiApOyB9DQotDQotdm9pZCBGbV9hcHVfcmVzZXQoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICk7DQotDQotc3RhdGljIGlubGluZSB2b2lkIEZtX2FwdV93cml0ZV9hZGRyKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgaW50IGRhdGEgKSAgICAgICAgICAgICAgICAgeyB0aGlzLT5hZGRyID0gZGF0YTsgfQ0KLXZvaWQgRm1fYXB1X3dyaXRlX2RhdGEoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzLCBibGlwX3RpbWVfdCwgaW50IGRhdGEgKTsNCi0NCi12b2lkIEZtX2FwdV9lbmRfZnJhbWUoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzLCBibGlwX3RpbWVfdCB0ICk7DQotDQotI2VuZGlmDQorI2lmbmRlZiBTTVNfRk1fQVBVX0gKKyNkZWZpbmUgU01TX0ZNX0FQVV9ICisKKyNpbmNsdWRlICJibGFyZ2dfY29tbW9uLmgiCisjaW5jbHVkZSAiYmxpcF9idWZmZXIuaCIKKyNpbmNsdWRlICJ5bTI0MTNfZW11LmgiCisKK2VudW0geyBmbV9hcHVfb3NjX2NvdW50ID0gMSB9OworCitzdHJ1Y3QgU21zX0ZtX0FwdSB7CisJc3RydWN0IEJsaXBfQnVmZmVyKiBvdXRwdXRfOworCWJsaXBfdGltZV90IG5leHRfdGltZTsKKwlpbnQgbGFzdF9hbXA7CisJaW50IGFkZHI7CisJCisJaW50IGNsb2NrXzsKKwlpbnQgcmF0ZV87CisJYmxpcF90aW1lX3QgcGVyaW9kXzsKKwkKKwlzdHJ1Y3QgQmxpcF9TeW50aCBzeW50aDsKKwlzdHJ1Y3QgWW0yNDEzX0VtdSBhcHU7Cit9OworCit2b2lkIEZtX2FwdV9jcmVhdGUoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICk7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBGbV9hcHVfc3VwcG9ydGVkKCB2b2lkICkgeyByZXR1cm4gWW0yNDEzX3N1cHBvcnRlZCgpOyB9CitibGFyZ2dfZXJyX3QgRm1fYXB1X2luaXQoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzLCBpbnQgY2xvY2tfcmF0ZSwgaW50IHNhbXBsZV9yYXRlICk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBGbV9hcHVfc2V0X291dHB1dCggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIHN0cnVjdCBCbGlwX0J1ZmZlciogYiApCit7CisJdGhpcy0+b3V0cHV0XyA9IGI7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBGbV9hcHVfdm9sdW1lKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgaW50IHYgKSB7IFN5bnRoX3ZvbHVtZSggJnRoaXMtPnN5bnRoLCAodioyKSAvIDUgLyA0MDk2ICk7IH0KKwordm9pZCBGbV9hcHVfcmVzZXQoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzICk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBGbV9hcHVfd3JpdGVfYWRkciggc3RydWN0IFNtc19GbV9BcHUqIHRoaXMsIGludCBkYXRhICkgICAgICAgICAgICAgICAgIHsgdGhpcy0+YWRkciA9IGRhdGE7IH0KK3ZvaWQgRm1fYXB1X3dyaXRlX2RhdGEoIHN0cnVjdCBTbXNfRm1fQXB1KiB0aGlzLCBibGlwX3RpbWVfdCwgaW50IGRhdGEgKTsKKwordm9pZCBGbV9hcHVfZW5kX2ZyYW1lKCBzdHJ1Y3QgU21zX0ZtX0FwdSogdGhpcywgYmxpcF90aW1lX3QgdCApOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS90cmFja19maWx0ZXIuYyBiL2FwcHMvY29kZWNzL2xpYmdtZS90cmFja19maWx0ZXIuYwppbmRleCA0Nzc2ZGNjLi5kMGQ3NWYyIDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvdHJhY2tfZmlsdGVyLmMKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL3RyYWNrX2ZpbHRlci5jCkBAIC0xLDI5NCArMSwyOTQgQEAKLS8vIEdhbWVfTXVzaWNfRW11IDAuNi1wcmUuIGh0dHA6Ly93d3cuc2xhY2submV0L35hbnQvDQotDQotI2luY2x1ZGUgInRyYWNrX2ZpbHRlci5oIg0KLQ0KLS8qIENvcHlyaWdodCAoQykgMjAwMy0yMDA4IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwNCi1JbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovDQotDQotI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCINCi0NCi1pbnQgY29uc3QgZmFkZV9ibG9ja19zaXplID0gNTEyOw0KLWludCBjb25zdCBmYWRlX3NoaWZ0ID0gODsgLy8gZmFkZSBlbmRzIHdpdGggZ2FpbiBhdCAxLjAgLyAoMSA8PCBmYWRlX3NoaWZ0KQ0KLWludCBjb25zdCBzaWxlbmNlX3RocmVzaG9sZCA9IDg7DQotDQotdm9pZCB0cmFja19jcmVhdGUoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQ0KLXsNCi0JdGhpcy0+ZW11XyAgICAgICAgICAgICAgID0gTlVMTDsNCi0JdGhpcy0+c2V0dXBfLm1heF9pbml0aWFsID0gMDsNCi0JdGhpcy0+c2V0dXBfLmxvb2thaGVhZCAgID0gMDsNCi0JdGhpcy0+c2V0dXBfLm1heF9zaWxlbmNlID0gaW5kZWZpbml0ZV9jb3VudDsNCi0JdGhpcy0+c2lsZW5jZV9pZ25vcmVkXyAgID0gZmFsc2U7DQotCXRyYWNrX3N0b3AoIHRoaXMgKTsNCi19DQotDQotYmxhcmdnX2Vycl90IHRyYWNrX2luaXQoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIHZvaWQqIGVtdSApDQotew0KLQl0aGlzLT5lbXVfID0gZW11Ow0KLQlyZXR1cm4gMDsNCi19DQotDQotc3RhdGljIHZvaWQgY2xlYXJfdGltZV92YXJzKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICkNCi17DQotCXRoaXMtPmVtdV90aW1lICAgICAgPSB0aGlzLT5idWZfcmVtYWluOw0KLQl0aGlzLT5vdXRfdGltZSAgICAgID0gMDsNCi0JdGhpcy0+c2lsZW5jZV90aW1lICA9IDA7DQotCXRoaXMtPnNpbGVuY2VfY291bnQgPSAwOw0KLX0NCi0NCi12b2lkIHRyYWNrX3N0b3AoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQ0KLXsNCi0JdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyA9IHRydWU7DQotCXRoaXMtPnRyYWNrX2VuZGVkXyAgICAgPSB0cnVlOw0KLQl0aGlzLT5mYWRlX3N0YXJ0ICAgICAgID0gaW5kZWZpbml0ZV9jb3VudDsNCi0JdGhpcy0+ZmFkZV9zdGVwICAgICAgICA9IDE7DQotCXRoaXMtPmJ1Zl9yZW1haW4gICAgICAgPSAwOw0KLQl0aGlzLT5lbXVfZXJyb3IgICAgICAgID0gTlVMTDsNCi0JY2xlYXJfdGltZV92YXJzKCB0aGlzICk7DQotfQ0KLQ0KLWJsYXJnZ19lcnJfdCB0cmFja19zdGFydCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApDQotew0KLQl0aGlzLT5lbXVfZXJyb3IgPSBOVUxMOw0KLQl0cmFja19zdG9wKCB0aGlzICk7DQotCQ0KLQl0aGlzLT5lbXVfdHJhY2tfZW5kZWRfID0gZmFsc2U7DQotCXRoaXMtPnRyYWNrX2VuZGVkXyAgICAgPSBmYWxzZTsNCi0JDQotCWlmICggIXRoaXMtPnNpbGVuY2VfaWdub3JlZF8gKQ0KLQl7DQotCQkvLyBwbGF5IHVudGlsIG5vbi1zaWxlbmNlIG9yIGVuZCBvZiB0cmFjaw0KLQkJd2hpbGUgKCB0aGlzLT5lbXVfdGltZSA8IHRoaXMtPnNldHVwXy5tYXhfaW5pdGlhbCApDQotCQl7DQotCQkJZmlsbF9idWYoIHRoaXMgKTsNCi0JCQlpZiAoIHRoaXMtPmJ1Zl9yZW1haW4gfCB0aGlzLT5lbXVfdHJhY2tfZW5kZWRfICkNCi0JCQkJYnJlYWs7DQotCQl9DQotCX0NCi0JDQotCWNsZWFyX3RpbWVfdmFycyggdGhpcyApOw0KLQlyZXR1cm4gdGhpcy0+ZW11X2Vycm9yOw0KLX0NCi0NCi1zdGF0aWMgdm9pZCBlbmRfdHJhY2tfaWZfZXJyb3IoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIGJsYXJnZ19lcnJfdCBlcnIgKQ0KLXsNCi0JaWYgKCBlcnIgKQ0KLQl7DQotCQl0aGlzLT5lbXVfZXJyb3IgICAgICAgID0gZXJyOw0KLQkJdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyA9IHRydWU7DQotCX0NCi19DQotDQotYmxhcmdnX2Vycl90IHRyYWNrX3NraXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIGludCBjb3VudCApDQotew0KLQl0aGlzLT5lbXVfZXJyb3IgPSBOVUxMOw0KLQl0aGlzLT5vdXRfdGltZSArPSBjb3VudDsNCi0JDQotCS8vIHJlbW92ZSBmcm9tIHNpbGVuY2UgYW5kIGJ1ZiBmaXJzdA0KLQl7DQotCQlpbnQgbiA9IG1pbiggY291bnQsIHRoaXMtPnNpbGVuY2VfY291bnQgKTsNCi0JCXRoaXMtPnNpbGVuY2VfY291bnQgLT0gbjsNCi0JCWNvdW50ICAgICAgICAgLT0gbjsNCi0JCQ0KLQkJbiA9IG1pbiggY291bnQsIHRoaXMtPmJ1Zl9yZW1haW4gKTsNCi0JCXRoaXMtPmJ1Zl9yZW1haW4gLT0gbjsNCi0JCWNvdW50ICAgICAgLT0gbjsNCi0JfQ0KLQkNCi0JaWYgKCBjb3VudCAmJiAhdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyApDQotCXsNCi0JCXRoaXMtPmVtdV90aW1lICs9IGNvdW50Ow0KLQkJdGhpcy0+c2lsZW5jZV90aW1lID0gdGhpcy0+ZW11X3RpbWU7IC8vIHdvdWxkIG90aGVyd2lzZSBiZSBpbnZhbGlkDQotCQllbmRfdHJhY2tfaWZfZXJyb3IoIHRoaXMsIHNraXBfKCB0aGlzLT5lbXVfLCBjb3VudCApICk7DQotCX0NCi0JDQotCWlmICggISh0aGlzLT5zaWxlbmNlX2NvdW50IHwgdGhpcy0+YnVmX3JlbWFpbikgKSAvLyBjYXVnaHQgdXAgdG8gZW11bGF0b3IsIHNvIHVwZGF0ZSB0cmFjayBlbmRlZA0KLQkJdGhpcy0+dHJhY2tfZW5kZWRfIHw9IHRoaXMtPmVtdV90cmFja19lbmRlZF87DQotCQ0KLQlyZXR1cm4gdGhpcy0+ZW11X2Vycm9yOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3Qgc2tpcHB5Xyggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IGNvdW50ICkNCi17DQotCXdoaWxlICggY291bnQgJiYgIXRoaXMtPmVtdV90cmFja19lbmRlZF8gKQ0KLQl7DQotCQlpbnQgbiA9IGJ1Zl9zaXplOw0KLQkJaWYgKCBuID4gY291bnQgKQ0KLQkJCW4gPSBjb3VudDsNCi0JCWNvdW50IC09IG47DQotCQlSRVRVUk5fRVJSKCBwbGF5XyggdGhpcy0+ZW11XywgbiwgdGhpcy0+YnVmICkgKTsNCi0JfQ0KLQlyZXR1cm4gMDsNCi19DQotDQotLy8gRmFkaW5nDQotDQotdm9pZCB0cmFja19zZXRfZmFkZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoICkNCi17DQotCXRoaXMtPmZhZGVfc3RhcnQgPSBzdGFydDsNCi0JdGhpcy0+ZmFkZV9zdGVwICA9IGxlbmd0aCAvIChmYWRlX2Jsb2NrX3NpemUgKiBmYWRlX3NoaWZ0KTsNCi0JaWYgKCB0aGlzLT5mYWRlX3N0ZXAgPCAxICkNCi0JCXRoaXMtPmZhZGVfc3RlcCA9IDE7DQotfQ0KLQ0KLXN0YXRpYyBib29sIGlzX2ZhZGluZyggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApDQotew0KLQlyZXR1cm4gdGhpcy0+b3V0X3RpbWUgPj0gdGhpcy0+ZmFkZV9zdGFydCAmJiB0aGlzLT5mYWRlX3N0YXJ0ICE9IGluZGVmaW5pdGVfY291bnQ7DQotfQ0KLQ0KLS8vIHVuaXQgLyBwb3coIDIuMCwgKGRvdWJsZSkgeCAvIHN0ZXAgKQ0KLXN0YXRpYyBpbnQgaW50X2xvZyggaW50IHgsIGludCBzdGVwLCBpbnQgdW5pdCApDQotew0KLQlpbnQgc2hpZnQgPSB4IC8gc3RlcDsNCi0JaW50IGZyYWN0aW9uID0gKHggLSBzaGlmdCAqIHN0ZXApICogdW5pdCAvIHN0ZXA7DQotCXJldHVybiAoKHVuaXQgLSBmcmFjdGlvbikgKyAoZnJhY3Rpb24gPj4gMSkpID4+IHNoaWZ0Ow0KLX0NCi0NCi1zdGF0aWMgdm9pZCBoYW5kbGVfZmFkZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgc2FtcGxlX3Qgb3V0IFtdLCBpbnQgb3V0X2NvdW50ICkNCi17DQotCWludCBpOw0KLQlmb3IgKCBpID0gMDsgaSA8IG91dF9jb3VudDsgaSArPSBmYWRlX2Jsb2NrX3NpemUgKQ0KLQl7DQotCQlpbnQgY29uc3Qgc2hpZnQgPSAxNDsNCi0JCWludCBjb25zdCB1bml0ID0gMSA8PCBzaGlmdDsNCi0JCWludCBnYWluID0gaW50X2xvZyggKHRoaXMtPm91dF90aW1lICsgaSAtIHRoaXMtPmZhZGVfc3RhcnQpIC8gZmFkZV9ibG9ja19zaXplLA0KLQkJCQl0aGlzLT5mYWRlX3N0ZXAsIHVuaXQgKTsNCi0JCWlmICggZ2FpbiA8ICh1bml0ID4+IGZhZGVfc2hpZnQpICkNCi0JCQl0aGlzLT50cmFja19lbmRlZF8gPSB0aGlzLT5lbXVfdHJhY2tfZW5kZWRfID0gdHJ1ZTsNCi0JCQ0KLQkJc2FtcGxlX3QqIGlvID0gJm91dCBbaV07DQotCQlmb3IgKCBpbnQgY291bnQgPSBtaW4oIGZhZGVfYmxvY2tfc2l6ZSwgb3V0X2NvdW50IC0gaSApOyBjb3VudDsgLS1jb3VudCApDQotCQl7DQotCQkJKmlvID0gKHNhbXBsZV90KSAoKCppbyAqIGdhaW4pID4+IHNoaWZ0KTsNCi0JCQkrK2lvOw0KLQkJfQ0KLQl9DQotfQ0KLQ0KLS8vIFNpbGVuY2UgZGV0ZWN0aW9uDQotDQotc3RhdGljIHZvaWQgZW11X3BsYXkoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIHNhbXBsZV90IG91dCBbXSwgaW50IGNvdW50ICkNCi17DQotCXRoaXMtPmVtdV90aW1lICs9IGNvdW50Ow0KLQlpZiAoICF0aGlzLT5lbXVfdHJhY2tfZW5kZWRfICkNCi0JCWVuZF90cmFja19pZl9lcnJvciggdGhpcywgcGxheV8oIHRoaXMtPmVtdV8sIGNvdW50LCBvdXQgKSApOw0KLQllbHNlDQotCQltZW1zZXQoIG91dCwgMCwgY291bnQgKiBzaXplb2YgKm91dCApOw0KLX0NCi0NCi0vLyBudW1iZXIgb2YgY29uc2VjdXRpdmUgc2lsZW50IHNhbXBsZXMgYXQgZW5kDQotc3RhdGljIGludCBjb3VudF9zaWxlbmNlKCBzYW1wbGVfdCBiZWdpbiBbXSwgaW50IHNpemUgKQ0KLXsNCi0Jc2FtcGxlX3QgZmlyc3QgPSAqYmVnaW47DQotCSpiZWdpbiA9IHNpbGVuY2VfdGhyZXNob2xkICogMjsgLy8gc2VudGluZWwNCi0Jc2FtcGxlX3QqIHAgPSBiZWdpbiArIHNpemU7DQotCXdoaWxlICggKHVuc2lnbmVkKSAoKi0tcCArIHNpbGVuY2VfdGhyZXNob2xkKSA8PSAodW5zaWduZWQpIHNpbGVuY2VfdGhyZXNob2xkICogMiApIHsgfQ0KLQkqYmVnaW4gPSBmaXJzdDsNCi0JcmV0dXJuIHNpemUgLSAocCAtIGJlZ2luKTsNCi19DQotDQotLy8gZmlsbCBpbnRlcm5hbCBidWZmZXIgYW5kIGNoZWNrIGl0IGZvciBzaWxlbmNlDQotdm9pZCBmaWxsX2J1Ziggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApDQotew0KLQlhc3NlcnQoICF0aGlzLT5idWZfcmVtYWluICk7DQotCWlmICggIXRoaXMtPmVtdV90cmFja19lbmRlZF8gKQ0KLQl7DQotCQllbXVfcGxheSggdGhpcywgdGhpcy0+YnVmLCBidWZfc2l6ZSApOw0KLQkJaW50IHNpbGVuY2UgPSBjb3VudF9zaWxlbmNlKCB0aGlzLT5idWYsIGJ1Zl9zaXplICk7DQotCQlpZiAoIHNpbGVuY2UgPCBidWZfc2l6ZSApDQotCQl7DQotCQkJdGhpcy0+c2lsZW5jZV90aW1lID0gdGhpcy0+ZW11X3RpbWUgLSBzaWxlbmNlOw0KLQkJCXRoaXMtPmJ1Zl9yZW1haW4gICA9IGJ1Zl9zaXplOw0KLQkJCXJldHVybjsNCi0JCX0NCi0JfQ0KLQl0aGlzLT5zaWxlbmNlX2NvdW50ICs9IGJ1Zl9zaXplOw0KLX0NCi0NCi1ibGFyZ2dfZXJyX3QgdHJhY2tfcGxheSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IG91dF9jb3VudCwgc2FtcGxlX3Qgb3V0IFtdICkNCi17DQotCXRoaXMtPmVtdV9lcnJvciA9IE5VTEw7DQotCWlmICggdGhpcy0+dHJhY2tfZW5kZWRfICkNCi0Jew0KLQkJbWVtc2V0KCBvdXQsIDAsIG91dF9jb3VudCAqIHNpemVvZiAqb3V0ICk7DQotCX0NCi0JZWxzZQ0KLQl7DQotCQlhc3NlcnQoIHRoaXMtPmVtdV90aW1lID49IHRoaXMtPm91dF90aW1lICk7DQotCQkNCi0JCS8vIHByaW50cyBuaWZ0eSBncmFwaCBvZiBob3cgZmFyIGFoZWFkIHdlIGFyZSB3aGVuIHNlYXJjaGluZyBmb3Igc2lsZW5jZQ0KLQkJLy9kcHJpbnRmKCAiJSpzIFxuIiwgaW50ICgoZW11X3RpbWUgLSBvdXRfdGltZSkgKiA3IC8gNDQxMDApLCAiKiIgKTsNCi0JCQ0KLQkJLy8gdXNlIGFueSByZW1haW5pbmcgc2lsZW5jZSBzYW1wbGVzDQotCQlpbnQgcG9zID0gMDsNCi0JCWlmICggdGhpcy0+c2lsZW5jZV9jb3VudCApDQotCQl7DQotCQkJaWYgKCAhdGhpcy0+c2lsZW5jZV9pZ25vcmVkXyApDQotCQkJew0KLQkJCQkvLyBkdXJpbmcgYSBydW4gb2Ygc2lsZW5jZSwgcnVuIGVtdWxhdG9yIGF0ID49Mnggc3BlZWQgc28gaXQgZ2V0cyBhaGVhZA0KLQkJCQlpbnQgYWhlYWRfdGltZSA9IHRoaXMtPnNldHVwXy5sb29rYWhlYWQgKiAodGhpcy0+b3V0X3RpbWUgKyBvdXRfY291bnQgLSB0aGlzLT5zaWxlbmNlX3RpbWUpICsNCi0JCQkJdGhpcy0+c2lsZW5jZV90aW1lOw0KLQkJCQl3aGlsZSAoIHRoaXMtPmVtdV90aW1lIDwgYWhlYWRfdGltZSAmJiAhKHRoaXMtPmJ1Zl9yZW1haW4gfCB0aGlzLT5lbXVfdHJhY2tfZW5kZWRfKSApDQotCQkJCQlmaWxsX2J1ZiggdGhpcyApOw0KLQkJCQkNCi0JCQkJLy8gZW5kIHRyYWNrIGlmIHN1ZmZpY2llbnQgc2lsZW5jZSBoYXMgYmVlbiBmb3VuZA0KLQkJCQlpZiAoIHRoaXMtPmVtdV90aW1lIC0gdGhpcy0+c2lsZW5jZV90aW1lID4gdGhpcy0+c2V0dXBfLm1heF9zaWxlbmNlICkNCi0JCQkJew0KLQkJCQkJdGhpcy0+dHJhY2tfZW5kZWRfICA9IHRoaXMtPmVtdV90cmFja19lbmRlZF8gPSB0cnVlOw0KLQkJCQkJdGhpcy0+c2lsZW5jZV9jb3VudCA9IG91dF9jb3VudDsNCi0JCQkJCXRoaXMtPmJ1Zl9yZW1haW4gICAgPSAwOw0KLQkJCQl9DQotCQkJfQ0KLQkJCQ0KLQkJCS8vIGZpbGwgZnJvbSByZW1haW5pbmcgc2lsZW5jZQ0KLQkJCXBvcyA9IG1pbiggdGhpcy0+c2lsZW5jZV9jb3VudCwgb3V0X2NvdW50ICk7DQotCQkJbWVtc2V0KCBvdXQsIDAsIHBvcyAqIHNpemVvZiAqb3V0ICk7DQotCQkJdGhpcy0+c2lsZW5jZV9jb3VudCAtPSBwb3M7DQotCQl9DQotCQkNCi0JCS8vIHVzZSBhbnkgcmVtYWluaW5nIHNhbXBsZXMgZnJvbSBidWZmZXINCi0JCWlmICggdGhpcy0+YnVmX3JlbWFpbiApDQotCQl7DQotCQkJaW50IG4gPSBtaW4oIHRoaXMtPmJ1Zl9yZW1haW4sIChpbnQpIChvdXRfY291bnQgLSBwb3MpICk7DQotCQkJbWVtY3B5KCBvdXQgKyBwb3MsIHRoaXMtPmJ1ZiArIChidWZfc2l6ZSAtIHRoaXMtPmJ1Zl9yZW1haW4pLCBuICogc2l6ZW9mICpvdXQgKTsNCi0JCQl0aGlzLT5idWZfcmVtYWluIC09IG47DQotCQkJcG9zICs9IG47DQotCQl9DQotCQkNCi0JCS8vIGdlbmVyYXRlIHJlbWFpbmluZyBzYW1wbGVzIG5vcm1hbGx5DQotCQlpbnQgcmVtYWluID0gb3V0X2NvdW50IC0gcG9zOw0KLQkJaWYgKCByZW1haW4gKQ0KLQkJew0KLQkJCWVtdV9wbGF5KCB0aGlzLCBvdXQgKyBwb3MsIHJlbWFpbiApOw0KLQkJCXRoaXMtPnRyYWNrX2VuZGVkXyB8PSB0aGlzLT5lbXVfdHJhY2tfZW5kZWRfOw0KLQkJCQ0KLQkJCWlmICggdGhpcy0+c2lsZW5jZV9pZ25vcmVkXyAmJiAhaXNfZmFkaW5nKCB0aGlzICkgKQ0KLQkJCXsNCi0JCQkJLy8gaWYgbGVmdCB1bnVwZGF0ZWQsIGFoZWFkX3RpbWUgY291bGQgYmVjb21lIHRvbyBsYXJnZQ0KLQkJCQl0aGlzLT5zaWxlbmNlX3RpbWUgPSB0aGlzLT5lbXVfdGltZTsNCi0JCQl9DQotCQkJZWxzZQ0KLQkJCXsNCi0JCQkJLy8gY2hlY2sgZW5kIGZvciBhIG5ldyBydW4gb2Ygc2lsZW5jZQ0KLQkJCQlpbnQgc2lsZW5jZSA9IGNvdW50X3NpbGVuY2UoIG91dCArIHBvcywgcmVtYWluICk7DQotCQkJCWlmICggc2lsZW5jZSA8IHJlbWFpbiApDQotCQkJCQl0aGlzLT5zaWxlbmNlX3RpbWUgPSB0aGlzLT5lbXVfdGltZSAtIHNpbGVuY2U7DQotCQkJCQ0KLQkJCQlpZiAoIHRoaXMtPmVtdV90aW1lIC0gdGhpcy0+c2lsZW5jZV90aW1lID49IGJ1Zl9zaXplICkNCi0JCQkJCWZpbGxfYnVmKCB0aGlzICk7IC8vIGNhdXNlIHNpbGVuY2UgZGV0ZWN0aW9uIG9uIG5leHQgcGxheSgpDQotCQkJfQ0KLQkJfQ0KLQkJDQotCQlpZiAoIGlzX2ZhZGluZyggdGhpcyApICkNCi0JCQloYW5kbGVfZmFkZSggdGhpcywgb3V0LCBvdXRfY291bnQgKTsNCi0JfQ0KLQl0aGlzLT5vdXRfdGltZSArPSBvdXRfY291bnQ7DQotCXJldHVybiB0aGlzLT5lbXVfZXJyb3I7DQotfQ0KKy8vIEdhbWVfTXVzaWNfRW11IDAuNi1wcmUuIGh0dHA6Ly93d3cuc2xhY2submV0L35hbnQvCisKKyNpbmNsdWRlICJ0cmFja19maWx0ZXIuaCIKKworLyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDggU2hheSBHcmVlbi4gVGhpcyBtb2R1bGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91CitjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKK3ZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzCittb2R1bGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCitkZXRhaWxzLiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgKi8KKworI2luY2x1ZGUgImJsYXJnZ19zb3VyY2UuaCIKKworaW50IGNvbnN0IGZhZGVfYmxvY2tfc2l6ZSA9IDUxMjsKK2ludCBjb25zdCBmYWRlX3NoaWZ0ID0gODsgLy8gZmFkZSBlbmRzIHdpdGggZ2FpbiBhdCAxLjAgLyAoMSA8PCBmYWRlX3NoaWZ0KQoraW50IGNvbnN0IHNpbGVuY2VfdGhyZXNob2xkID0gODsKKwordm9pZCB0cmFja19jcmVhdGUoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCXRoaXMtPmVtdV8gICAgICAgICAgICAgICA9IE5VTEw7CisJdGhpcy0+c2V0dXBfLm1heF9pbml0aWFsID0gMDsKKwl0aGlzLT5zZXR1cF8ubG9va2FoZWFkICAgPSAwOworCXRoaXMtPnNldHVwXy5tYXhfc2lsZW5jZSA9IGluZGVmaW5pdGVfY291bnQ7CisJdGhpcy0+c2lsZW5jZV9pZ25vcmVkXyAgID0gZmFsc2U7CisJdHJhY2tfc3RvcCggdGhpcyApOworfQorCitibGFyZ2dfZXJyX3QgdHJhY2tfaW5pdCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgdm9pZCogZW11ICkKK3sKKwl0aGlzLT5lbXVfID0gZW11OworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl90aW1lX3ZhcnMoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCXRoaXMtPmVtdV90aW1lICAgICAgPSB0aGlzLT5idWZfcmVtYWluOworCXRoaXMtPm91dF90aW1lICAgICAgPSAwOworCXRoaXMtPnNpbGVuY2VfdGltZSAgPSAwOworCXRoaXMtPnNpbGVuY2VfY291bnQgPSAwOworfQorCit2b2lkIHRyYWNrX3N0b3AoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCXRoaXMtPmVtdV90cmFja19lbmRlZF8gPSB0cnVlOworCXRoaXMtPnRyYWNrX2VuZGVkXyAgICAgPSB0cnVlOworCXRoaXMtPmZhZGVfc3RhcnQgICAgICAgPSBpbmRlZmluaXRlX2NvdW50OworCXRoaXMtPmZhZGVfc3RlcCAgICAgICAgPSAxOworCXRoaXMtPmJ1Zl9yZW1haW4gICAgICAgPSAwOworCXRoaXMtPmVtdV9lcnJvciAgICAgICAgPSBOVUxMOworCWNsZWFyX3RpbWVfdmFycyggdGhpcyApOworfQorCitibGFyZ2dfZXJyX3QgdHJhY2tfc3RhcnQoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCXRoaXMtPmVtdV9lcnJvciA9IE5VTEw7CisJdHJhY2tfc3RvcCggdGhpcyApOworCQorCXRoaXMtPmVtdV90cmFja19lbmRlZF8gPSBmYWxzZTsKKwl0aGlzLT50cmFja19lbmRlZF8gICAgID0gZmFsc2U7CisJCisJaWYgKCAhdGhpcy0+c2lsZW5jZV9pZ25vcmVkXyApCisJeworCQkvLyBwbGF5IHVudGlsIG5vbi1zaWxlbmNlIG9yIGVuZCBvZiB0cmFjaworCQl3aGlsZSAoIHRoaXMtPmVtdV90aW1lIDwgdGhpcy0+c2V0dXBfLm1heF9pbml0aWFsICkKKwkJeworCQkJZmlsbF9idWYoIHRoaXMgKTsKKwkJCWlmICggdGhpcy0+YnVmX3JlbWFpbiB8IHRoaXMtPmVtdV90cmFja19lbmRlZF8gKQorCQkJCWJyZWFrOworCQl9CisJfQorCQorCWNsZWFyX3RpbWVfdmFycyggdGhpcyApOworCXJldHVybiB0aGlzLT5lbXVfZXJyb3I7Cit9CisKK3N0YXRpYyB2b2lkIGVuZF90cmFja19pZl9lcnJvciggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgYmxhcmdnX2Vycl90IGVyciApCit7CisJaWYgKCBlcnIgKQorCXsKKwkJdGhpcy0+ZW11X2Vycm9yICAgICAgICA9IGVycjsKKwkJdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyA9IHRydWU7CisJfQorfQorCitibGFyZ2dfZXJyX3QgdHJhY2tfc2tpcCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IGNvdW50ICkKK3sKKwl0aGlzLT5lbXVfZXJyb3IgPSBOVUxMOworCXRoaXMtPm91dF90aW1lICs9IGNvdW50OworCQorCS8vIHJlbW92ZSBmcm9tIHNpbGVuY2UgYW5kIGJ1ZiBmaXJzdAorCXsKKwkJaW50IG4gPSBtaW4oIGNvdW50LCB0aGlzLT5zaWxlbmNlX2NvdW50ICk7CisJCXRoaXMtPnNpbGVuY2VfY291bnQgLT0gbjsKKwkJY291bnQgICAgICAgICAtPSBuOworCQkKKwkJbiA9IG1pbiggY291bnQsIHRoaXMtPmJ1Zl9yZW1haW4gKTsKKwkJdGhpcy0+YnVmX3JlbWFpbiAtPSBuOworCQljb3VudCAgICAgIC09IG47CisJfQorCQorCWlmICggY291bnQgJiYgIXRoaXMtPmVtdV90cmFja19lbmRlZF8gKQorCXsKKwkJdGhpcy0+ZW11X3RpbWUgKz0gY291bnQ7CisJCXRoaXMtPnNpbGVuY2VfdGltZSA9IHRoaXMtPmVtdV90aW1lOyAvLyB3b3VsZCBvdGhlcndpc2UgYmUgaW52YWxpZAorCQllbmRfdHJhY2tfaWZfZXJyb3IoIHRoaXMsIHNraXBfKCB0aGlzLT5lbXVfLCBjb3VudCApICk7CisJfQorCQorCWlmICggISh0aGlzLT5zaWxlbmNlX2NvdW50IHwgdGhpcy0+YnVmX3JlbWFpbikgKSAvLyBjYXVnaHQgdXAgdG8gZW11bGF0b3IsIHNvIHVwZGF0ZSB0cmFjayBlbmRlZAorCQl0aGlzLT50cmFja19lbmRlZF8gfD0gdGhpcy0+ZW11X3RyYWNrX2VuZGVkXzsKKwkKKwlyZXR1cm4gdGhpcy0+ZW11X2Vycm9yOworfQorCitibGFyZ2dfZXJyX3Qgc2tpcHB5Xyggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IGNvdW50ICkKK3sKKwl3aGlsZSAoIGNvdW50ICYmICF0aGlzLT5lbXVfdHJhY2tfZW5kZWRfICkKKwl7CisJCWludCBuID0gYnVmX3NpemU7CisJCWlmICggbiA+IGNvdW50ICkKKwkJCW4gPSBjb3VudDsKKwkJY291bnQgLT0gbjsKKwkJUkVUVVJOX0VSUiggcGxheV8oIHRoaXMtPmVtdV8sIG4sIHRoaXMtPmJ1ZiApICk7CisJfQorCXJldHVybiAwOworfQorCisvLyBGYWRpbmcKKwordm9pZCB0cmFja19zZXRfZmFkZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoICkKK3sKKwl0aGlzLT5mYWRlX3N0YXJ0ID0gc3RhcnQ7CisJdGhpcy0+ZmFkZV9zdGVwICA9IGxlbmd0aCAvIChmYWRlX2Jsb2NrX3NpemUgKiBmYWRlX3NoaWZ0KTsKKwlpZiAoIHRoaXMtPmZhZGVfc3RlcCA8IDEgKQorCQl0aGlzLT5mYWRlX3N0ZXAgPSAxOworfQorCitzdGF0aWMgYm9vbCBpc19mYWRpbmcoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCXJldHVybiB0aGlzLT5vdXRfdGltZSA+PSB0aGlzLT5mYWRlX3N0YXJ0ICYmIHRoaXMtPmZhZGVfc3RhcnQgIT0gaW5kZWZpbml0ZV9jb3VudDsKK30KKworLy8gdW5pdCAvIHBvdyggMi4wLCAoZG91YmxlKSB4IC8gc3RlcCApCitzdGF0aWMgaW50IGludF9sb2coIGludCB4LCBpbnQgc3RlcCwgaW50IHVuaXQgKQoreworCWludCBzaGlmdCA9IHggLyBzdGVwOworCWludCBmcmFjdGlvbiA9ICh4IC0gc2hpZnQgKiBzdGVwKSAqIHVuaXQgLyBzdGVwOworCXJldHVybiAoKHVuaXQgLSBmcmFjdGlvbikgKyAoZnJhY3Rpb24gPj4gMSkpID4+IHNoaWZ0OworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfZmFkZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgc2FtcGxlX3Qgb3V0IFtdLCBpbnQgb3V0X2NvdW50ICkKK3sKKwlpbnQgaTsKKwlmb3IgKCBpID0gMDsgaSA8IG91dF9jb3VudDsgaSArPSBmYWRlX2Jsb2NrX3NpemUgKQorCXsKKwkJaW50IGNvbnN0IHNoaWZ0ID0gMTQ7CisJCWludCBjb25zdCB1bml0ID0gMSA8PCBzaGlmdDsKKwkJaW50IGdhaW4gPSBpbnRfbG9nKCAodGhpcy0+b3V0X3RpbWUgKyBpIC0gdGhpcy0+ZmFkZV9zdGFydCkgLyBmYWRlX2Jsb2NrX3NpemUsCisJCQkJdGhpcy0+ZmFkZV9zdGVwLCB1bml0ICk7CisJCWlmICggZ2FpbiA8ICh1bml0ID4+IGZhZGVfc2hpZnQpICkKKwkJCXRoaXMtPnRyYWNrX2VuZGVkXyA9IHRoaXMtPmVtdV90cmFja19lbmRlZF8gPSB0cnVlOworCQkKKwkJc2FtcGxlX3QqIGlvID0gJm91dCBbaV07CisJCWZvciAoIGludCBjb3VudCA9IG1pbiggZmFkZV9ibG9ja19zaXplLCBvdXRfY291bnQgLSBpICk7IGNvdW50OyAtLWNvdW50ICkKKwkJeworCQkJKmlvID0gKHNhbXBsZV90KSAoKCppbyAqIGdhaW4pID4+IHNoaWZ0KTsKKwkJCSsraW87CisJCX0KKwl9Cit9CisKKy8vIFNpbGVuY2UgZGV0ZWN0aW9uCisKK3N0YXRpYyB2b2lkIGVtdV9wbGF5KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBzYW1wbGVfdCBvdXQgW10sIGludCBjb3VudCApCit7CisJdGhpcy0+ZW11X3RpbWUgKz0gY291bnQ7CisJaWYgKCAhdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyApCisJCWVuZF90cmFja19pZl9lcnJvciggdGhpcywgcGxheV8oIHRoaXMtPmVtdV8sIGNvdW50LCBvdXQgKSApOworCWVsc2UKKwkJbWVtc2V0KCBvdXQsIDAsIGNvdW50ICogc2l6ZW9mICpvdXQgKTsKK30KKworLy8gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIHNpbGVudCBzYW1wbGVzIGF0IGVuZAorc3RhdGljIGludCBjb3VudF9zaWxlbmNlKCBzYW1wbGVfdCBiZWdpbiBbXSwgaW50IHNpemUgKQoreworCXNhbXBsZV90IGZpcnN0ID0gKmJlZ2luOworCSpiZWdpbiA9IHNpbGVuY2VfdGhyZXNob2xkICogMjsgLy8gc2VudGluZWwKKwlzYW1wbGVfdCogcCA9IGJlZ2luICsgc2l6ZTsKKwl3aGlsZSAoICh1bnNpZ25lZCkgKCotLXAgKyBzaWxlbmNlX3RocmVzaG9sZCkgPD0gKHVuc2lnbmVkKSBzaWxlbmNlX3RocmVzaG9sZCAqIDIgKSB7IH0KKwkqYmVnaW4gPSBmaXJzdDsKKwlyZXR1cm4gc2l6ZSAtIChwIC0gYmVnaW4pOworfQorCisvLyBmaWxsIGludGVybmFsIGJ1ZmZlciBhbmQgY2hlY2sgaXQgZm9yIHNpbGVuY2UKK3ZvaWQgZmlsbF9idWYoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKQoreworCWFzc2VydCggIXRoaXMtPmJ1Zl9yZW1haW4gKTsKKwlpZiAoICF0aGlzLT5lbXVfdHJhY2tfZW5kZWRfICkKKwl7CisJCWVtdV9wbGF5KCB0aGlzLCB0aGlzLT5idWYsIGJ1Zl9zaXplICk7CisJCWludCBzaWxlbmNlID0gY291bnRfc2lsZW5jZSggdGhpcy0+YnVmLCBidWZfc2l6ZSApOworCQlpZiAoIHNpbGVuY2UgPCBidWZfc2l6ZSApCisJCXsKKwkJCXRoaXMtPnNpbGVuY2VfdGltZSA9IHRoaXMtPmVtdV90aW1lIC0gc2lsZW5jZTsKKwkJCXRoaXMtPmJ1Zl9yZW1haW4gICA9IGJ1Zl9zaXplOworCQkJcmV0dXJuOworCQl9CisJfQorCXRoaXMtPnNpbGVuY2VfY291bnQgKz0gYnVmX3NpemU7Cit9CisKK2JsYXJnZ19lcnJfdCB0cmFja19wbGF5KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBpbnQgb3V0X2NvdW50LCBzYW1wbGVfdCBvdXQgW10gKQoreworCXRoaXMtPmVtdV9lcnJvciA9IE5VTEw7CisJaWYgKCB0aGlzLT50cmFja19lbmRlZF8gKQorCXsKKwkJbWVtc2V0KCBvdXQsIDAsIG91dF9jb3VudCAqIHNpemVvZiAqb3V0ICk7CisJfQorCWVsc2UKKwl7CisJCWFzc2VydCggdGhpcy0+ZW11X3RpbWUgPj0gdGhpcy0+b3V0X3RpbWUgKTsKKwkJCisJCS8vIHByaW50cyBuaWZ0eSBncmFwaCBvZiBob3cgZmFyIGFoZWFkIHdlIGFyZSB3aGVuIHNlYXJjaGluZyBmb3Igc2lsZW5jZQorCQkvL2RwcmludGYoICIlKnMgXG4iLCBpbnQgKChlbXVfdGltZSAtIG91dF90aW1lKSAqIDcgLyA0NDEwMCksICIqIiApOworCQkKKwkJLy8gdXNlIGFueSByZW1haW5pbmcgc2lsZW5jZSBzYW1wbGVzCisJCWludCBwb3MgPSAwOworCQlpZiAoIHRoaXMtPnNpbGVuY2VfY291bnQgKQorCQl7CisJCQlpZiAoICF0aGlzLT5zaWxlbmNlX2lnbm9yZWRfICkKKwkJCXsKKwkJCQkvLyBkdXJpbmcgYSBydW4gb2Ygc2lsZW5jZSwgcnVuIGVtdWxhdG9yIGF0ID49Mnggc3BlZWQgc28gaXQgZ2V0cyBhaGVhZAorCQkJCWludCBhaGVhZF90aW1lID0gdGhpcy0+c2V0dXBfLmxvb2thaGVhZCAqICh0aGlzLT5vdXRfdGltZSArIG91dF9jb3VudCAtIHRoaXMtPnNpbGVuY2VfdGltZSkgKworCQkJCXRoaXMtPnNpbGVuY2VfdGltZTsKKwkJCQl3aGlsZSAoIHRoaXMtPmVtdV90aW1lIDwgYWhlYWRfdGltZSAmJiAhKHRoaXMtPmJ1Zl9yZW1haW4gfCB0aGlzLT5lbXVfdHJhY2tfZW5kZWRfKSApCisJCQkJCWZpbGxfYnVmKCB0aGlzICk7CisJCQkJCisJCQkJLy8gZW5kIHRyYWNrIGlmIHN1ZmZpY2llbnQgc2lsZW5jZSBoYXMgYmVlbiBmb3VuZAorCQkJCWlmICggdGhpcy0+ZW11X3RpbWUgLSB0aGlzLT5zaWxlbmNlX3RpbWUgPiB0aGlzLT5zZXR1cF8ubWF4X3NpbGVuY2UgKQorCQkJCXsKKwkJCQkJdGhpcy0+dHJhY2tfZW5kZWRfICA9IHRoaXMtPmVtdV90cmFja19lbmRlZF8gPSB0cnVlOworCQkJCQl0aGlzLT5zaWxlbmNlX2NvdW50ID0gb3V0X2NvdW50OworCQkJCQl0aGlzLT5idWZfcmVtYWluICAgID0gMDsKKwkJCQl9CisJCQl9CisJCQkKKwkJCS8vIGZpbGwgZnJvbSByZW1haW5pbmcgc2lsZW5jZQorCQkJcG9zID0gbWluKCB0aGlzLT5zaWxlbmNlX2NvdW50LCBvdXRfY291bnQgKTsKKwkJCW1lbXNldCggb3V0LCAwLCBwb3MgKiBzaXplb2YgKm91dCApOworCQkJdGhpcy0+c2lsZW5jZV9jb3VudCAtPSBwb3M7CisJCX0KKwkJCisJCS8vIHVzZSBhbnkgcmVtYWluaW5nIHNhbXBsZXMgZnJvbSBidWZmZXIKKwkJaWYgKCB0aGlzLT5idWZfcmVtYWluICkKKwkJeworCQkJaW50IG4gPSBtaW4oIHRoaXMtPmJ1Zl9yZW1haW4sIChpbnQpIChvdXRfY291bnQgLSBwb3MpICk7CisJCQltZW1jcHkoIG91dCArIHBvcywgdGhpcy0+YnVmICsgKGJ1Zl9zaXplIC0gdGhpcy0+YnVmX3JlbWFpbiksIG4gKiBzaXplb2YgKm91dCApOworCQkJdGhpcy0+YnVmX3JlbWFpbiAtPSBuOworCQkJcG9zICs9IG47CisJCX0KKwkJCisJCS8vIGdlbmVyYXRlIHJlbWFpbmluZyBzYW1wbGVzIG5vcm1hbGx5CisJCWludCByZW1haW4gPSBvdXRfY291bnQgLSBwb3M7CisJCWlmICggcmVtYWluICkKKwkJeworCQkJZW11X3BsYXkoIHRoaXMsIG91dCArIHBvcywgcmVtYWluICk7CisJCQl0aGlzLT50cmFja19lbmRlZF8gfD0gdGhpcy0+ZW11X3RyYWNrX2VuZGVkXzsKKwkJCQorCQkJaWYgKCB0aGlzLT5zaWxlbmNlX2lnbm9yZWRfICYmICFpc19mYWRpbmcoIHRoaXMgKSApCisJCQl7CisJCQkJLy8gaWYgbGVmdCB1bnVwZGF0ZWQsIGFoZWFkX3RpbWUgY291bGQgYmVjb21lIHRvbyBsYXJnZQorCQkJCXRoaXMtPnNpbGVuY2VfdGltZSA9IHRoaXMtPmVtdV90aW1lOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCS8vIGNoZWNrIGVuZCBmb3IgYSBuZXcgcnVuIG9mIHNpbGVuY2UKKwkJCQlpbnQgc2lsZW5jZSA9IGNvdW50X3NpbGVuY2UoIG91dCArIHBvcywgcmVtYWluICk7CisJCQkJaWYgKCBzaWxlbmNlIDwgcmVtYWluICkKKwkJCQkJdGhpcy0+c2lsZW5jZV90aW1lID0gdGhpcy0+ZW11X3RpbWUgLSBzaWxlbmNlOworCQkJCQorCQkJCWlmICggdGhpcy0+ZW11X3RpbWUgLSB0aGlzLT5zaWxlbmNlX3RpbWUgPj0gYnVmX3NpemUgKQorCQkJCQlmaWxsX2J1ZiggdGhpcyApOyAvLyBjYXVzZSBzaWxlbmNlIGRldGVjdGlvbiBvbiBuZXh0IHBsYXkoKQorCQkJfQorCQl9CisJCQorCQlpZiAoIGlzX2ZhZGluZyggdGhpcyApICkKKwkJCWhhbmRsZV9mYWRlKCB0aGlzLCBvdXQsIG91dF9jb3VudCApOworCX0KKwl0aGlzLT5vdXRfdGltZSArPSBvdXRfY291bnQ7CisJcmV0dXJuIHRoaXMtPmVtdV9lcnJvcjsKK30KZGlmZiAtLWdpdCBhL2FwcHMvY29kZWNzL2xpYmdtZS90cmFja19maWx0ZXIuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS90cmFja19maWx0ZXIuaAppbmRleCAzNTA0OWI5Li4zNjg5YmU5IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvdHJhY2tfZmlsdGVyLmgKKysrIGIvYXBwcy9jb2RlY3MvbGliZ21lL3RyYWNrX2ZpbHRlci5oCkBAIC0xLDkwICsxLDkwIEBACi0vLyBSZW1vdmVzIHNpbGVuY2UgZnJvbSBiZWdpbm5pbmcgb2YgdHJhY2ssIGZhZGVzIGVuZCBvZiB0cmFjay4gQWxzbyBsb29rcyBhaGVhZA0KLS8vIGZvciBleGNlc3NpdmUgc2lsZW5jZSwgYW5kIGlmIGZvdW5kLCBlbmRzIHRyYWNrLg0KLQ0KLS8vIEdhbWVfTXVzaWNfRW11IDAuNi1wcmUNCi0jaWZuZGVmIFRSQUNLX0ZJTFRFUl9IDQotI2RlZmluZSBUUkFDS19GSUxURVJfSA0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfY29tbW9uLmgiDQotDQotdHlwZWRlZiBzaG9ydCBzYW1wbGVfdDsNCi10eXBlZGVmIGludCBzYW1wbGVfY291bnRfdDsNCi0NCi1lbnVtIHsgaW5kZWZpbml0ZV9jb3VudCA9IElOVF9NQVgvMiArIDEgfTsNCi1lbnVtIHsgYnVmX3NpemUgPSAyMDQ4IH07DQotDQotc3RydWN0IHNldHVwX3Qgew0KLSAgICBzYW1wbGVfY291bnRfdCBtYXhfaW5pdGlhbDsgLy8gbWF4aW11bSBzaWxlbmNlIHRvIHN0cmlwIGZyb20gYmVnaW5uaW5nIG9mIHRyYWNrDQotICAgIHNhbXBsZV9jb3VudF90IG1heF9zaWxlbmNlOyAvLyBtYXhpbXVtIHNpbGVuY2UgaW4gbWlkZGxlIG9mIHRyYWNrIHdpdGhvdXQgaXQgZW5kaW5nDQotICAgIGludCBsb29rYWhlYWQ7ICAgLy8gaW50ZXJuYWwgc3BlZWQgd2hlbiBsb29raW5nIGFoZWFkIGZvciBzaWxlbmNlICgyPTIwMCUgZXRjLikNCi19Ow0KLQ0KLXN0cnVjdCBUcmFja19GaWx0ZXIgew0KLSAgICB2b2lkKiBlbXVfOw0KLSAgICBzdHJ1Y3Qgc2V0dXBfdCBzZXR1cF87DQotICAgIGNvbnN0IGNoYXIqIGVtdV9lcnJvcjsNCi0gICAgYm9vbCBzaWxlbmNlX2lnbm9yZWRfOw0KLSAgICANCi0gICAgLy8gVGltaW5nDQotICAgIGludCBvdXRfdGltZTsgIC8vIG51bWJlciBvZiBzYW1wbGVzIHBsYXllZCBzaW5jZSBzdGFydCBvZiB0cmFjaw0KLSAgICBpbnQgZW11X3RpbWU7ICAvLyBudW1iZXIgb2Ygc2FtcGxlcyBlbXVsYXRvciBoYXMgZ2VuZXJhdGVkIHNpbmNlIHN0YXJ0IG9mIHRyYWNrDQotICAgIGludCBlbXVfdHJhY2tfZW5kZWRfOyAvLyBlbXVsYXRvciBoYXMgcmVhY2hlZCBlbmQgb2YgdHJhY2sNCi0gICAgdm9sYXRpbGUgaW50IHRyYWNrX2VuZGVkXzsNCi0gICAgDQotICAgIC8vIEZhZGluZw0KLSAgICBpbnQgZmFkZV9zdGFydDsNCi0gICAgaW50IGZhZGVfc3RlcDsNCi0gICAgDQotICAgIC8vIFNpbGVuY2UgZGV0ZWN0aW9uDQotICAgIGludCBzaWxlbmNlX3RpbWU7ICAgLy8gYWJzb2x1dGUgbnVtYmVyIG9mIHNhbXBsZXMgd2hlcmUgbW9zdCByZWNlbnQgc2lsZW5jZSBiZWdhbg0KLSAgICBpbnQgc2lsZW5jZV9jb3VudDsgIC8vIG51bWJlciBvZiBzYW1wbGVzIG9mIHNpbGVuY2UgdG8gcGxheSBiZWZvcmUgdXNpbmcgYnVmDQotICAgIGludCBidWZfcmVtYWluOyAgICAgLy8gbnVtYmVyIG9mIHNhbXBsZXMgbGVmdCBpbiBzaWxlbmNlIGJ1ZmZlcg0KLSAgICBzYW1wbGVfdCBidWYgW2J1Zl9zaXplXTsNCi19Ow0KLQ0KLS8vIEluaXRpYWxpemVzIGZpbHRlci4gTXVzdCBiZSBkb25lIG9uY2UgYmVmb3JlIHVzaW5nIG9iamVjdC4NCi1ibGFyZ2dfZXJyX3QgdHJhY2tfaW5pdCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgdm9pZCogKTsNCi12b2lkIHRyYWNrX2NyZWF0ZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApOw0KLQ0KLS8vIEdldHMvc2V0cyBzZXR1cA0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHNldHVwX3QgY29uc3QqIHRyYWNrX2dldF9zZXR1cCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgcmV0dXJuICZ0aGlzLT5zZXR1cF87IH0NCi1zdGF0aWMgaW5saW5lIHZvaWQgdHJhY2tfc2V0dXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIHN0cnVjdCBzZXR1cF90IGNvbnN0KiBzICkgeyB0aGlzLT5zZXR1cF8gPSAqczsgfQ0KLQ0KLS8vIERpc2FibGVzIGF1dG9tYXRpYyBlbmQtb2YtdHJhY2sgZGV0ZWN0aW9uIGFuZCBza2lwcGluZyBvZiBzaWxlbmNlIGF0IGJlZ2lubmluZw0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0cmFja19pZ25vcmVfc2lsZW5jZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgYm9vbCBkaXNhYmxlICkgeyB0aGlzLT5zaWxlbmNlX2lnbm9yZWRfID0gZGlzYWJsZTsgfQ0KLQ0KLS8vIENsZWFycyBzdGF0ZSBhbmQgc2tpcHMgaW5pdGlhbCBzaWxlbmNlIGluIHRyYWNrDQotYmxhcmdnX2Vycl90IHRyYWNrX3N0YXJ0KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICk7DQotICAgIA0KLS8vIFNldHMgdGltZSB0aGF0IGZhZGUgc3RhcnRzLCBhbmQgaG93IGxvbmcgdW50aWwgdHJhY2sgZW5kcy4NCi12b2lkIHRyYWNrX3NldF9mYWRlKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBzYW1wbGVfY291bnRfdCBzdGFydCwgc2FtcGxlX2NvdW50X3QgbGVuZ3RoICk7DQotDQotLy8gR2VuZXJhdGVzIG4gc2FtcGxlcyBpbnRvIGJ1Zg0KLWJsYXJnZ19lcnJfdCB0cmFja19wbGF5KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBpbnQgbiwgc2FtcGxlX3QgYnVmIFtdICk7DQotDQotLy8gU2tpcHMgbiBzYW1wbGVzDQotYmxhcmdnX2Vycl90IHRyYWNrX3NraXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIGludCBuICk7DQotDQotLy8gTnVtYmVyIG9mIHNhbXBsZXMgcGxheWVkL3NraXBwZWQgc2luY2Ugc3RhcnRfdHJhY2soKQ0KLXN0YXRpYyBpbmxpbmUgaW50IHRyYWNrX3NhbXBsZV9jb3VudCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgcmV0dXJuIHRoaXMtPm91dF90aW1lOyB9DQotDQotLy8gVHJ1ZSBpZiB0cmFjayBlbmRlZC4gQ2F1c2VzIGFyZSBlbmQgb2Ygc291cmNlIHNhbXBsZXMsIGVuZCBvZiBmYWRlLA0KLS8vIG9yIGV4Y2Vzc2l2ZSBzaWxlbmNlLg0KLXN0YXRpYyBpbmxpbmUgYm9vbCB0cmFja19lbmRlZCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgcmV0dXJuIHRoaXMtPnRyYWNrX2VuZGVkXzsgfQ0KLQ0KLS8vIENsZWFycyBzdGF0ZQ0KLXZvaWQgdHJhY2tfc3RvcCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApOw0KLSAgICANCi0vLyBGb3IgdXNlIGJ5IGNhbGxiYWNrcw0KLQ0KLS8vIFNldHMgaW50ZXJuYWwgInRyYWNrIGVuZGVkIiBmbGFnIGFuZCBzdG9wcyBnZW5lcmF0aW9uIG9mIGZ1cnRoZXIgc291cmNlIHNhbXBsZXMNCi1zdGF0aWMgaW5saW5lIHZvaWQgdHJhY2tfc2V0X2VuZCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyA9IHRydWU7IH0NCi0NCi0vLyBGb3IgdXNlIGJ5IHNraXBfKCkgY2FsbGJhY2sNCi1ibGFyZ2dfZXJyX3Qgc2tpcHB5Xyggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IGNvdW50ICk7DQotdm9pZCBmaWxsX2J1Ziggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApOw0KLQ0KLS8vIFNraXAgYW5kIHBsYXkgY2FsbGJhY2tzDQotYmxhcmdnX2Vycl90IHNraXBfKCB2b2lkKiBlbXUsIGludCBjb3VudCApOw0KLWJsYXJnZ19lcnJfdCBwbGF5Xyggdm9pZCogZW11LCBpbnQgY291bnQsIHNhbXBsZV90IG91dCBbXSApOw0KLSNlbmRpZg0KKy8vIFJlbW92ZXMgc2lsZW5jZSBmcm9tIGJlZ2lubmluZyBvZiB0cmFjaywgZmFkZXMgZW5kIG9mIHRyYWNrLiBBbHNvIGxvb2tzIGFoZWFkCisvLyBmb3IgZXhjZXNzaXZlIHNpbGVuY2UsIGFuZCBpZiBmb3VuZCwgZW5kcyB0cmFjay4KKworLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZQorI2lmbmRlZiBUUkFDS19GSUxURVJfSAorI2RlZmluZSBUUkFDS19GSUxURVJfSAorCisjaW5jbHVkZSAiYmxhcmdnX2NvbW1vbi5oIgorCit0eXBlZGVmIHNob3J0IHNhbXBsZV90OwordHlwZWRlZiBpbnQgc2FtcGxlX2NvdW50X3Q7CisKK2VudW0geyBpbmRlZmluaXRlX2NvdW50ID0gSU5UX01BWC8yICsgMSB9OworZW51bSB7IGJ1Zl9zaXplID0gMjA0OCB9OworCitzdHJ1Y3Qgc2V0dXBfdCB7CisgICAgc2FtcGxlX2NvdW50X3QgbWF4X2luaXRpYWw7IC8vIG1heGltdW0gc2lsZW5jZSB0byBzdHJpcCBmcm9tIGJlZ2lubmluZyBvZiB0cmFjaworICAgIHNhbXBsZV9jb3VudF90IG1heF9zaWxlbmNlOyAvLyBtYXhpbXVtIHNpbGVuY2UgaW4gbWlkZGxlIG9mIHRyYWNrIHdpdGhvdXQgaXQgZW5kaW5nCisgICAgaW50IGxvb2thaGVhZDsgICAvLyBpbnRlcm5hbCBzcGVlZCB3aGVuIGxvb2tpbmcgYWhlYWQgZm9yIHNpbGVuY2UgKDI9MjAwJSBldGMuKQorfTsKKworc3RydWN0IFRyYWNrX0ZpbHRlciB7CisgICAgdm9pZCogZW11XzsKKyAgICBzdHJ1Y3Qgc2V0dXBfdCBzZXR1cF87CisgICAgY29uc3QgY2hhciogZW11X2Vycm9yOworICAgIGJvb2wgc2lsZW5jZV9pZ25vcmVkXzsKKyAgICAKKyAgICAvLyBUaW1pbmcKKyAgICBpbnQgb3V0X3RpbWU7ICAvLyBudW1iZXIgb2Ygc2FtcGxlcyBwbGF5ZWQgc2luY2Ugc3RhcnQgb2YgdHJhY2sKKyAgICBpbnQgZW11X3RpbWU7ICAvLyBudW1iZXIgb2Ygc2FtcGxlcyBlbXVsYXRvciBoYXMgZ2VuZXJhdGVkIHNpbmNlIHN0YXJ0IG9mIHRyYWNrCisgICAgaW50IGVtdV90cmFja19lbmRlZF87IC8vIGVtdWxhdG9yIGhhcyByZWFjaGVkIGVuZCBvZiB0cmFjaworICAgIHZvbGF0aWxlIGludCB0cmFja19lbmRlZF87CisgICAgCisgICAgLy8gRmFkaW5nCisgICAgaW50IGZhZGVfc3RhcnQ7CisgICAgaW50IGZhZGVfc3RlcDsKKyAgICAKKyAgICAvLyBTaWxlbmNlIGRldGVjdGlvbgorICAgIGludCBzaWxlbmNlX3RpbWU7ICAgLy8gYWJzb2x1dGUgbnVtYmVyIG9mIHNhbXBsZXMgd2hlcmUgbW9zdCByZWNlbnQgc2lsZW5jZSBiZWdhbgorICAgIGludCBzaWxlbmNlX2NvdW50OyAgLy8gbnVtYmVyIG9mIHNhbXBsZXMgb2Ygc2lsZW5jZSB0byBwbGF5IGJlZm9yZSB1c2luZyBidWYKKyAgICBpbnQgYnVmX3JlbWFpbjsgICAgIC8vIG51bWJlciBvZiBzYW1wbGVzIGxlZnQgaW4gc2lsZW5jZSBidWZmZXIKKyAgICBzYW1wbGVfdCBidWYgW2J1Zl9zaXplXTsKK307CisKKy8vIEluaXRpYWxpemVzIGZpbHRlci4gTXVzdCBiZSBkb25lIG9uY2UgYmVmb3JlIHVzaW5nIG9iamVjdC4KK2JsYXJnZ19lcnJfdCB0cmFja19pbml0KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCB2b2lkKiApOwordm9pZCB0cmFja19jcmVhdGUoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKTsKKworLy8gR2V0cy9zZXRzIHNldHVwCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzZXR1cF90IGNvbnN0KiB0cmFja19nZXRfc2V0dXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMgKSB7IHJldHVybiAmdGhpcy0+c2V0dXBfOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2tfc2V0dXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIHN0cnVjdCBzZXR1cF90IGNvbnN0KiBzICkgeyB0aGlzLT5zZXR1cF8gPSAqczsgfQorCisvLyBEaXNhYmxlcyBhdXRvbWF0aWMgZW5kLW9mLXRyYWNrIGRldGVjdGlvbiBhbmQgc2tpcHBpbmcgb2Ygc2lsZW5jZSBhdCBiZWdpbm5pbmcKK3N0YXRpYyBpbmxpbmUgdm9pZCB0cmFja19pZ25vcmVfc2lsZW5jZSggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgYm9vbCBkaXNhYmxlICkgeyB0aGlzLT5zaWxlbmNlX2lnbm9yZWRfID0gZGlzYWJsZTsgfQorCisvLyBDbGVhcnMgc3RhdGUgYW5kIHNraXBzIGluaXRpYWwgc2lsZW5jZSBpbiB0cmFjaworYmxhcmdnX2Vycl90IHRyYWNrX3N0YXJ0KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICk7CisgICAgCisvLyBTZXRzIHRpbWUgdGhhdCBmYWRlIHN0YXJ0cywgYW5kIGhvdyBsb25nIHVudGlsIHRyYWNrIGVuZHMuCit2b2lkIHRyYWNrX3NldF9mYWRlKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBzYW1wbGVfY291bnRfdCBzdGFydCwgc2FtcGxlX2NvdW50X3QgbGVuZ3RoICk7CisKKy8vIEdlbmVyYXRlcyBuIHNhbXBsZXMgaW50byBidWYKK2JsYXJnZ19lcnJfdCB0cmFja19wbGF5KCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzLCBpbnQgbiwgc2FtcGxlX3QgYnVmIFtdICk7CisKKy8vIFNraXBzIG4gc2FtcGxlcworYmxhcmdnX2Vycl90IHRyYWNrX3NraXAoIHN0cnVjdCBUcmFja19GaWx0ZXIqIHRoaXMsIGludCBuICk7CisKKy8vIE51bWJlciBvZiBzYW1wbGVzIHBsYXllZC9za2lwcGVkIHNpbmNlIHN0YXJ0X3RyYWNrKCkKK3N0YXRpYyBpbmxpbmUgaW50IHRyYWNrX3NhbXBsZV9jb3VudCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgcmV0dXJuIHRoaXMtPm91dF90aW1lOyB9CisKKy8vIFRydWUgaWYgdHJhY2sgZW5kZWQuIENhdXNlcyBhcmUgZW5kIG9mIHNvdXJjZSBzYW1wbGVzLCBlbmQgb2YgZmFkZSwKKy8vIG9yIGV4Y2Vzc2l2ZSBzaWxlbmNlLgorc3RhdGljIGlubGluZSBib29sIHRyYWNrX2VuZGVkKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICkgeyByZXR1cm4gdGhpcy0+dHJhY2tfZW5kZWRfOyB9CisKKy8vIENsZWFycyBzdGF0ZQordm9pZCB0cmFja19zdG9wKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICk7CisgICAgCisvLyBGb3IgdXNlIGJ5IGNhbGxiYWNrcworCisvLyBTZXRzIGludGVybmFsICJ0cmFjayBlbmRlZCIgZmxhZyBhbmQgc3RvcHMgZ2VuZXJhdGlvbiBvZiBmdXJ0aGVyIHNvdXJjZSBzYW1wbGVzCitzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2tfc2V0X2VuZCggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcyApIHsgdGhpcy0+ZW11X3RyYWNrX2VuZGVkXyA9IHRydWU7IH0KKworLy8gRm9yIHVzZSBieSBza2lwXygpIGNhbGxiYWNrCitibGFyZ2dfZXJyX3Qgc2tpcHB5Xyggc3RydWN0IFRyYWNrX0ZpbHRlciogdGhpcywgaW50IGNvdW50ICk7Cit2b2lkIGZpbGxfYnVmKCBzdHJ1Y3QgVHJhY2tfRmlsdGVyKiB0aGlzICk7CisKKy8vIFNraXAgYW5kIHBsYXkgY2FsbGJhY2tzCitibGFyZ2dfZXJyX3Qgc2tpcF8oIHZvaWQqIGVtdSwgaW50IGNvdW50ICk7CitibGFyZ2dfZXJyX3QgcGxheV8oIHZvaWQqIGVtdSwgaW50IGNvdW50LCBzYW1wbGVfdCBvdXQgW10gKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL3ZyYzd0b25lLmggYi9hcHBzL2NvZGVjcy9saWJnbWUvdnJjN3RvbmUuaAppbmRleCBhMjU2YzgwLi5jNTg5MzM1IDEwMDY0NAotLS0gYS9hcHBzL2NvZGVjcy9saWJnbWUvdnJjN3RvbmUuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvdnJjN3RvbmUuaApAQCAtMSwyMCArMSwyMCBAQAotLyogVlJDNyBUT05FUyBieSBva2F6YWtpQGFuZ2VsLm5lLmpwICovDQotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDMzLDB4MDEsMHgwOSwweDBlLDB4OTQsMHg5MCwweDQwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MTMsMHg0MSwweDBmLDB4MGQsMHhjZSwweGQzLDB4NDMsMHgxMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgwMSwweDEyLDB4MWIsMHgwNiwweGZmLDB4ZDIsMHgwMCwweDMyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDYxLDB4NjEsMHgxYiwweDA3LDB4YWYsMHg2MywweDIwLDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MjIsMHgyMSwweDFlLDB4MDYsMHhmMCwweDc2LDB4MDgsMHgyOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHg2NiwweDIxLDB4MTUsMHgwMCwweDkzLDB4OTQsMHgyMCwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDIxLDB4NjEsMHgxYywweDA3LDB4ODIsMHg4MSwweDEwLDB4MTcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MjMsMHgyMSwweDIwLDB4MWYsMHhjMCwweDcxLDB4MDcsMHg0NywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyNSwweDMxLDB4MjYsMHgwNSwweDY0LDB4NDEsMHgxOCwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDE3LDB4MjEsMHgyOCwweDA3LDB4ZmYsMHg4MywweDAyLDB4ZjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4OTcsMHg4MSwweDI1LDB4MDcsMHhjZiwweGM4LDB4MDIsMHgxNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMSwweDIxLDB4NTQsMHgwZiwweDgwLDB4N2YsMHgwNywweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDAxLDB4MDEsMHg1NiwweDAzLDB4ZDMsMHhiMiwweDQzLDB4NTgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MzEsMHgyMSwweDBjLDB4MDMsMHg4MiwweGMwLDB4NDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyMSwweDAxLDB4MGMsMHgwMywweGQ0LDB4ZDMsMHg0MCwweDg0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0weDA3LDB4MjEsMHgxNCwweDAwLDB4ZWUsMHhmOCwweGZmLDB4ZjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLTB4MDEsMHgzMSwweDAwLDB4MDAsMHhmOCwweGY3LDB4ZjgsMHhmNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotMHgyNSwweDExLDB4MDAsMHgwMCwweGY4LDB4ZmEsMHhmOCwweDU1LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMA0KKy8qIFZSQzcgVE9ORVMgYnkgb2themFraUBhbmdlbC5uZS5qcCAqLworMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MzMsMHgwMSwweDA5LDB4MGUsMHg5NCwweDkwLDB4NDAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDEzLDB4NDEsMHgwZiwweDBkLDB4Y2UsMHhkMywweDQzLDB4MTMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgwMSwweDEyLDB4MWIsMHgwNiwweGZmLDB4ZDIsMHgwMCwweDMyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4NjEsMHg2MSwweDFiLDB4MDcsMHhhZiwweDYzLDB4MjAsMHgyOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDIyLDB4MjEsMHgxZSwweDA2LDB4ZjAsMHg3NiwweDA4LDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHg2NiwweDIxLDB4MTUsMHgwMCwweDkzLDB4OTQsMHgyMCwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MjEsMHg2MSwweDFjLDB4MDcsMHg4MiwweDgxLDB4MTAsMHgxNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDIzLDB4MjEsMHgyMCwweDFmLDB4YzAsMHg3MSwweDA3LDB4NDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyNSwweDMxLDB4MjYsMHgwNSwweDY0LDB4NDEsMHgxOCwweGY4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MTcsMHgyMSwweDI4LDB4MDcsMHhmZiwweDgzLDB4MDIsMHhmOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDk3LDB4ODEsMHgyNSwweDA3LDB4Y2YsMHhjOCwweDAyLDB4MTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDIxLDB4NTQsMHgwZiwweDgwLDB4N2YsMHgwNywweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDEsMHgwMSwweDU2LDB4MDMsMHhkMywweGIyLDB4NDMsMHg1OCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDMxLDB4MjEsMHgwYywweDAzLDB4ODIsMHhjMCwweDQwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyMSwweDAxLDB4MGMsMHgwMywweGQ0LDB4ZDMsMHg0MCwweDg0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKzB4MDcsMHgyMSwweDE0LDB4MDAsMHhlZSwweGY4LDB4ZmYsMHhmOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCisweDAxLDB4MzEsMHgwMCwweDAwLDB4ZjgsMHhmNywweGY4LDB4ZjcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAorMHgyNSwweDExLDB4MDAsMHgwMCwweGY4LDB4ZmEsMHhmOCwweDU1LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMApkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL3ltMjQxM19lbXUuYyBiL2FwcHMvY29kZWNzL2xpYmdtZS95bTI0MTNfZW11LmMKaW5kZXggOWVmZDNkYy4uZDlhZGE0MyAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL3ltMjQxM19lbXUuYworKysgYi9hcHBzL2NvZGVjcy9saWJnbWUveW0yNDEzX2VtdS5jCkBAIC0xLDQ1ICsxLDQ1IEBACi0vLyBHYW1lX011c2ljX0VtdSAwLjUuNS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8NCi0NCi0jaW5jbHVkZSAieW0yNDEzX2VtdS5oIg0KLQ0KLXZvaWQgWW0yNDEzX2luaXQoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzICkNCi17DQotCXRoaXMtPmxhc3RfdGltZSA9IGRpc2FibGVkX3RpbWU7IHRoaXMtPm91dCA9IDA7IA0KLX0NCi0NCi1pbnQgWW0yNDEzX3NldF9yYXRlKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IHNhbXBsZV9yYXRlLCBpbnQgY2xvY2tfcmF0ZSApDQotewkNCi0JT1BMTF9uZXcgKCAmdGhpcy0+b3BsbCwgY2xvY2tfcmF0ZSwgc2FtcGxlX3JhdGUgKTsNCi0gICAgT1BMTF9yZXNldF9wYXRjaCggJnRoaXMtPm9wbGwsIE9QTExfMjQxM19UT05FICk7DQotICAgIA0KLQlZbTI0MTNfcmVzZXQoIHRoaXMgKTsNCi0JcmV0dXJuIDA7DQotfQ0KLQ0KLXZvaWQgWW0yNDEzX3Jlc2V0KCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcyApDQotew0KLQlPUExMX3Jlc2V0KCAmdGhpcy0+b3BsbCApOw0KLQlPUExMX3NldE1hc2soICZ0aGlzLT5vcGxsLCAwICk7DQotfQ0KLQ0KLXZvaWQgWW0yNDEzX3dyaXRlKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IGFkZHIsIGludCBkYXRhICkNCi17DQotCU9QTExfd3JpdGVJTyggJnRoaXMtPm9wbGwsIDAsIGFkZHIgKTsNCi0JT1BMTF93cml0ZUlPKCAmdGhpcy0+b3BsbCwgMSwgZGF0YSApOw0KLX0NCi0NCi12b2lkIFltMjQxM19tdXRlX3ZvaWNlcyggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCBtYXNrICkNCi17DQotCU9QTExfc2V0TWFzayggJnRoaXMtPm9wbGwsIG1hc2sgKTsNCi19DQotDQotdm9pZCBZbTI0MTNfcnVuKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IHBhaXJfY291bnQsIHNob3J0KiBvdXQgKQ0KLXsNCi0Jd2hpbGUgKCBwYWlyX2NvdW50LS0gKQ0KLQl7DQotCQlpbnQgcyA9IE9QTExfY2FsYyggJnRoaXMtPm9wbGwgKSA8PCAxOw0KLQkJb3V0IFswXSA9IHM7DQotCQlvdXQgWzFdID0gczsNCi0JCW91dCArPSAyOw0KLQl9DQotfQ0KKy8vIEdhbWVfTXVzaWNfRW11IDAuNS41LiBodHRwOi8vd3d3LnNsYWNrLm5ldC9+YW50LworCisjaW5jbHVkZSAieW0yNDEzX2VtdS5oIgorCit2b2lkIFltMjQxM19pbml0KCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcyApCit7CisJdGhpcy0+bGFzdF90aW1lID0gZGlzYWJsZWRfdGltZTsgdGhpcy0+b3V0ID0gMDsgCit9CisKK2ludCBZbTI0MTNfc2V0X3JhdGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBpbnQgc2FtcGxlX3JhdGUsIGludCBjbG9ja19yYXRlICkKK3sJCisJT1BMTF9uZXcgKCAmdGhpcy0+b3BsbCwgY2xvY2tfcmF0ZSwgc2FtcGxlX3JhdGUgKTsKKyAgICBPUExMX3Jlc2V0X3BhdGNoKCAmdGhpcy0+b3BsbCwgT1BMTF8yNDEzX1RPTkUgKTsKKyAgICAKKwlZbTI0MTNfcmVzZXQoIHRoaXMgKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBZbTI0MTNfcmVzZXQoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzICkKK3sKKwlPUExMX3Jlc2V0KCAmdGhpcy0+b3BsbCApOworCU9QTExfc2V0TWFzayggJnRoaXMtPm9wbGwsIDAgKTsKK30KKwordm9pZCBZbTI0MTNfd3JpdGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBpbnQgYWRkciwgaW50IGRhdGEgKQoreworCU9QTExfd3JpdGVJTyggJnRoaXMtPm9wbGwsIDAsIGFkZHIgKTsKKwlPUExMX3dyaXRlSU8oICZ0aGlzLT5vcGxsLCAxLCBkYXRhICk7Cit9CisKK3ZvaWQgWW0yNDEzX211dGVfdm9pY2VzKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IG1hc2sgKQoreworCU9QTExfc2V0TWFzayggJnRoaXMtPm9wbGwsIG1hc2sgKTsKK30KKwordm9pZCBZbTI0MTNfcnVuKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IHBhaXJfY291bnQsIHNob3J0KiBvdXQgKQoreworCXdoaWxlICggcGFpcl9jb3VudC0tICkKKwl7CisJCWludCBzID0gT1BMTF9jYWxjKCAmdGhpcy0+b3BsbCApIDw8IDE7CisJCW91dCBbMF0gPSBzOworCQlvdXQgWzFdID0gczsKKwkJb3V0ICs9IDI7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL3ltMjQxM19lbXUuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS95bTI0MTNfZW11LmgKaW5kZXggNjhkOGZlMy4uOGY1MmIwNCAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL3ltMjQxM19lbXUuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUveW0yNDEzX2VtdS5oCkBAIC0xLDYxICsxLDYxIEBACi0vLyBZTTI0MTMgRk0gc291bmQgY2hpcCBlbXVsYXRvciBpbnRlcmZhY2UNCi0NCi0vLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlDQotI2lmbmRlZiBZTTI0MTNfRU1VX0gNCi0jZGVmaW5lIFlNMjQxM19FTVVfSA0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfY29tbW9uLmgiDQotI2luY2x1ZGUgImVtdTI0MTMuaCINCi0NCi1lbnVtIHsgb3V0X2NoYW5fY291bnQgPSAyIH07IC8vIHN0ZXJlbw0KLWVudW0geyBjaGFubmVsX2NvdW50ID0gMTQgfTsNCi1lbnVtIHsgZGlzYWJsZWRfdGltZSA9IC0xIH07DQotDQotc3RydWN0IFltMjQxM19FbXUgIHsNCi0JT1BMTCBvcGxsOw0KLQkJDQotCS8vIEltcGwNCi0JaW50IGxhc3RfdGltZTsNCi0Jc2hvcnQqIG91dDsNCi19Ow0KLQ0KLXZvaWQgWW0yNDEzX2luaXQoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzICk7DQotDQotc3RhdGljIGlubGluZSBib29sIFltMjQxM19zdXBwb3J0ZWQoIHZvaWQgKSB7IHJldHVybiB0cnVlOyB9DQotCQ0KLS8vIFNldHMgb3V0cHV0IHNhbXBsZSByYXRlIGFuZCBjaGlwIGNsb2NrIHJhdGVzLCBpbiBIei4gUmV0dXJucyBub24temVybw0KLS8vIGlmIGVycm9yLg0KLWludCBZbTI0MTNfc2V0X3JhdGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBpbnQgc2FtcGxlX3JhdGUsIGludCBjbG9ja19yYXRlICk7DQotCQ0KLS8vIFJlc2V0cyB0byBwb3dlci11cCBzdGF0ZQ0KLXZvaWQgWW0yNDEzX3Jlc2V0KCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcyApOw0KLQkNCi0vLyBNdXRlcyB2b2ljZSBuIGlmIGJpdCBuICgxIDw8IG4pIG9mIG1hc2sgaXMgc2V0DQotdm9pZCBZbTI0MTNfbXV0ZV92b2ljZXMoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBpbnQgbWFzayApOw0KLQkNCi0vLyBXcml0ZXMgZGF0YSB0byBhZGRyDQotdm9pZCBZbTI0MTNfd3JpdGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBpbnQgYWRkciwgaW50IGRhdGEgKTsNCi0JDQotLy8gUnVucyBhbmQgd3JpdGVzIHBhaXJfY291bnQqMiBzYW1wbGVzIHRvIG91dHB1dA0KLXZvaWQgWW0yNDEzX3J1biggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCBwYWlyX2NvdW50LCBzaG9ydCogb3V0ICk7DQotDQotc3RhdGljIGlubGluZSB2b2lkIFltMjQxM19lbmFibGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBib29sIGIgKSB7IHRoaXMtPmxhc3RfdGltZSA9IGIgPyAwIDogZGlzYWJsZWRfdGltZTsgfQ0KLXN0YXRpYyBpbmxpbmUgYm9vbCBZbTI0MTNfZW5hYmxlZCggc3RydWN0IFltMjQxM19FbXUqIHRoaXMgKSB7IHJldHVybiB0aGlzLT5sYXN0X3RpbWUgIT0gZGlzYWJsZWRfdGltZTsgfQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBZbTI0MTNfYmVnaW5fZnJhbWUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBzaG9ydCogYnVmICkgeyB0aGlzLT5vdXQgPSBidWY7IHRoaXMtPmxhc3RfdGltZSA9IDA7IH0NCi0JDQotc3RhdGljIGlubGluZSBpbnQgWW0yNDEzX3J1bl91bnRpbCggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCB0aW1lICkNCi17DQotCWludCBjb3VudCA9IHRpbWUgLSB0aGlzLT5sYXN0X3RpbWU7DQotCWlmICggY291bnQgPiAwICkNCi0Jew0KLQkJaWYgKCB0aGlzLT5sYXN0X3RpbWUgPCAwICkNCi0JCQlyZXR1cm4gZmFsc2U7DQotCQl0aGlzLT5sYXN0X3RpbWUgPSB0aW1lOw0KLQkJc2hvcnQqIHAgPSB0aGlzLT5vdXQ7DQotCQl0aGlzLT5vdXQgKz0gY291bnQgKiBvdXRfY2hhbl9jb3VudDsNCi0JCVltMjQxM19ydW4oIHRoaXMsIGNvdW50LCBwICk7DQotCX0NCi0JcmV0dXJuIHRydWU7DQotfQ0KLQ0KLSNlbmRpZg0KKy8vIFlNMjQxMyBGTSBzb3VuZCBjaGlwIGVtdWxhdG9yIGludGVyZmFjZQorCisvLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlCisjaWZuZGVmIFlNMjQxM19FTVVfSAorI2RlZmluZSBZTTI0MTNfRU1VX0gKKworI2luY2x1ZGUgImJsYXJnZ19jb21tb24uaCIKKyNpbmNsdWRlICJlbXUyNDEzLmgiCisKK2VudW0geyBvdXRfY2hhbl9jb3VudCA9IDIgfTsgLy8gc3RlcmVvCitlbnVtIHsgY2hhbm5lbF9jb3VudCA9IDE0IH07CitlbnVtIHsgZGlzYWJsZWRfdGltZSA9IC0xIH07CisKK3N0cnVjdCBZbTI0MTNfRW11ICB7CisJT1BMTCBvcGxsOworCQkKKwkvLyBJbXBsCisJaW50IGxhc3RfdGltZTsKKwlzaG9ydCogb3V0OworfTsKKwordm9pZCBZbTI0MTNfaW5pdCggc3RydWN0IFltMjQxM19FbXUqIHRoaXMgKTsKKworc3RhdGljIGlubGluZSBib29sIFltMjQxM19zdXBwb3J0ZWQoIHZvaWQgKSB7IHJldHVybiB0cnVlOyB9CisJCisvLyBTZXRzIG91dHB1dCBzYW1wbGUgcmF0ZSBhbmQgY2hpcCBjbG9jayByYXRlcywgaW4gSHouIFJldHVybnMgbm9uLXplcm8KKy8vIGlmIGVycm9yLgoraW50IFltMjQxM19zZXRfcmF0ZSggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCBzYW1wbGVfcmF0ZSwgaW50IGNsb2NrX3JhdGUgKTsKKwkKKy8vIFJlc2V0cyB0byBwb3dlci11cCBzdGF0ZQordm9pZCBZbTI0MTNfcmVzZXQoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzICk7CisJCisvLyBNdXRlcyB2b2ljZSBuIGlmIGJpdCBuICgxIDw8IG4pIG9mIG1hc2sgaXMgc2V0Cit2b2lkIFltMjQxM19tdXRlX3ZvaWNlcyggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCBtYXNrICk7CisJCisvLyBXcml0ZXMgZGF0YSB0byBhZGRyCit2b2lkIFltMjQxM193cml0ZSggc3RydWN0IFltMjQxM19FbXUqIHRoaXMsIGludCBhZGRyLCBpbnQgZGF0YSApOworCQorLy8gUnVucyBhbmQgd3JpdGVzIHBhaXJfY291bnQqMiBzYW1wbGVzIHRvIG91dHB1dAordm9pZCBZbTI0MTNfcnVuKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IHBhaXJfY291bnQsIHNob3J0KiBvdXQgKTsKKworc3RhdGljIGlubGluZSB2b2lkIFltMjQxM19lbmFibGUoIHN0cnVjdCBZbTI0MTNfRW11KiB0aGlzLCBib29sIGIgKSB7IHRoaXMtPmxhc3RfdGltZSA9IGIgPyAwIDogZGlzYWJsZWRfdGltZTsgfQorc3RhdGljIGlubGluZSBib29sIFltMjQxM19lbmFibGVkKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcyApIHsgcmV0dXJuIHRoaXMtPmxhc3RfdGltZSAhPSBkaXNhYmxlZF90aW1lOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgWW0yNDEzX2JlZ2luX2ZyYW1lKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgc2hvcnQqIGJ1ZiApIHsgdGhpcy0+b3V0ID0gYnVmOyB0aGlzLT5sYXN0X3RpbWUgPSAwOyB9CisJCitzdGF0aWMgaW5saW5lIGludCBZbTI0MTNfcnVuX3VudGlsKCBzdHJ1Y3QgWW0yNDEzX0VtdSogdGhpcywgaW50IHRpbWUgKQoreworCWludCBjb3VudCA9IHRpbWUgLSB0aGlzLT5sYXN0X3RpbWU7CisJaWYgKCBjb3VudCA+IDAgKQorCXsKKwkJaWYgKCB0aGlzLT5sYXN0X3RpbWUgPCAwICkKKwkJCXJldHVybiBmYWxzZTsKKwkJdGhpcy0+bGFzdF90aW1lID0gdGltZTsKKwkJc2hvcnQqIHAgPSB0aGlzLT5vdXQ7CisJCXRoaXMtPm91dCArPSBjb3VudCAqIG91dF9jaGFuX2NvdW50OworCQlZbTI0MTNfcnVuKCB0aGlzLCBjb3VudCwgcCApOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUveW10YWJsZXMuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS95bXRhYmxlcy5oCmluZGV4IDUxODEyYzEuLmMxNjE5MDIgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS95bXRhYmxlcy5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS95bXRhYmxlcy5oCkBAIC0xLDU1OSArMSw1NTkgQEAKLSNpZm5kZWYgX0VNVVRBQkxFU19IXw0KLSNkZWZpbmUgX0VNVVRBQkxFU19IXw0KLQ0KLS8qIFByZWNvbXBpbGVkIHltMjYxMiB0YWJsZXMgZm9yIHVzZSBpbiBSb2NrYm94ICovDQotICAgDQotc3RhdGljIGNvbnN0IGludCB0bF9jb2VmZltdID0gew0KLQkgMjY4NDM1NDU1LCAgMjY3NzEyMTAwLCAgMjY2OTkwNjk1LCAgMjY2MjcxMjM0LCAgMjY1NTUzNzEyLCAgMjY0ODM4MTIzLCAgMjY0MTI0NDYyLCAgMjYzNDEyNzI1LCAgMjYyNzAyOTA2LCAgMjYxOTk0OTk5LCAgMjYxMjg5MDAwLCANCi0gICAgIDI2MDU4NDkwMywgIDI1OTg4MjcwNCwgIDI1OTE4MjM5NiwgIDI1ODQ4Mzk3NiwgIDI1Nzc4NzQzOCwgIDI1NzA5Mjc3NywgIDI1NjM5OTk4OCwgIDI1NTcwOTA2NiwgIDI1NTAyMDAwNiwgIDI1NDMzMjgwMiwgIDI1MzY0NzQ1MCwgDQotICAgICAyNTI5NjM5NDUsICAyNTIyODIyODIsICAyNTE2MDI0NTYsICAyNTA5MjQ0NjIsICAyNTAyNDgyOTQsICAyNDk1NzM5NDksICAyNDg5MDE0MjEsICAyNDgyMzA3MDUsICAyNDc1NjE3OTcsICAyNDY4OTQ2OTEsICAyNDYyMjkzODMsIA0KLSAgICAgMjQ1NTY1ODY3LCAgMjQ0OTA0MTQwLCAgMjQ0MjQ0MTk1LCAgMjQzNTg2MDI5LCAgMjQyOTI5NjM3LCAgMjQyMjc1MDEzLCAgMjQxNjIyMTU0LCAgMjQwOTcxMDUzLCAgMjQwMzIxNzA4LCAgMjM5Njc0MTEyLCAgMjM5MDI4MjYxLCANCi0gICAgIDIzODM4NDE1MCwgIDIzNzc0MTc3NSwgIDIzNzEwMTEzMSwgIDIzNjQ2MjIxNCwgIDIzNTgyNTAxOCwgIDIzNTE4OTUzOSwgIDIzNDU1NTc3MywgIDIzMzkyMzcxNCwgIDIzMzI5MzM1OSwgIDIzMjY2NDcwMiwgIDIzMjAzNzc0MCwgDQotICAgICAyMzE0MTI0NjYsICAyMzA3ODg4NzgsICAyMzAxNjY5NzAsICAyMjk1NDY3MzgsICAyMjg5MjgxNzgsICAyMjgzMTEyODQsICAyMjc2OTYwNTIsICAyMjcwODI0NzksICAyMjY0NzA1NTgsICAyMjU4NjAyODcsICAyMjUyNTE2NjAsIA0KLSAgICAgMjI0NjQ0Njc0LCAgMjI0MDM5MzIzLCAgMjIzNDM1NjAzLCAgMjIyODMzNTEwLCAgMjIyMjMzMDM5LCAgMjIxNjM0MTg3LCAgMjIxMDM2OTQ4LCAgMjIwNDQxMzE5LCAgMjE5ODQ3Mjk1LCAgMjE5MjU0ODcxLCAgMjE4NjY0MDQ0LCANCi0gICAgIDIxODA3NDgwOSwgIDIxNzQ4NzE2MiwgIDIxNjkwMTA5OCwgIDIxNjMxNjYxNCwgIDIxNTczMzcwNCwgIDIxNTE1MjM2NiwgIDIxNDU3MjU5NCwgIDIxMzk5NDM4NCwgIDIxMzQxNzczMiwgIDIxMjg0MjYzNSwgIDIxMjI2OTA4NywgDQotICAgICAyMTE2OTcwODQsICAyMTExMjY2MjMsICAyMTA1NTc2OTksICAyMDk5OTAzMDgsICAyMDk0MjQ0NDYsICAyMDg4NjAxMDksICAyMDgyOTcyOTMsICAyMDc3MzU5OTMsICAyMDcxNzYyMDYsICAyMDY2MTc5MjcsICAyMDYwNjExNTMsIA0KLSAgICAgMjA1NTA1ODc5LCAgMjA0OTUyMTAyLCAgMjA0Mzk5ODE2LCAgMjAzODQ5MDE5LCAgMjAzMjk5NzA2LCAgMjAyNzUxODczLCAgMjAyMjA1NTE3LCAgMjAxNjYwNjMzLCAgMjAxMTE3MjE3LCAgMjAwNTc1MjY2LCAgMjAwMDM0Nzc0LCANCi0gICAgIDE5OTQ5NTc0MCwgIDE5ODk1ODE1OCwgIDE5ODQyMjAyNCwgIDE5Nzg4NzMzNSwgIDE5NzM1NDA4OCwgIDE5NjgyMjI3NywgIDE5NjI5MTg5OSwgIDE5NTc2Mjk1MCwgIDE5NTIzNTQyNywgIDE5NDcwOTMyNSwgIDE5NDE4NDY0MSwgDQotICAgICAxOTM2NjEzNzAsICAxOTMxMzk1MTAsICAxOTI2MTkwNTYsICAxOTIxMDAwMDUsICAxOTE1ODIzNTIsICAxOTEwNjYwOTQsICAxOTA1NTEyMjgsICAxOTAwMzc3NDgsICAxODk1MjU2NTMsICAxODkwMTQ5MzcsICAxODg1MDU1OTgsIA0KLSAgICAgMTg3OTk3NjMxLCAgMTg3NDkxMDMzLCAgMTg2OTg1ODAwLCAgMTg2NDgxOTI4LCAgMTg1OTc5NDE0LCAgMTg1NDc4MjU1LCAgMTg0OTc4NDQ2LCAgMTg0NDc5OTgzLCAgMTgzOTgyODY0LCAgMTgzNDg3MDg1LCAgMTgyOTkyNjQxLCANCi0gICAgIDE4MjQ5OTUzMCwgIDE4MjAwNzc0OCwgIDE4MTUxNzI5MSwgIDE4MTAyODE1NSwgIDE4MDU0MDMzOCwgIDE4MDA1MzgzNSwgIDE3OTU2ODY0MywgIDE3OTA4NDc1OSwgIDE3ODYwMjE3OCwgIDE3ODEyMDg5OCwgIDE3NzY0MDkxNSwgDQotICAgICAxNzcxNjIyMjUsICAxNzY2ODQ4MjUsICAxNzYyMDg3MTIsICAxNzU3MzM4ODEsICAxNzUyNjAzMzAsICAxNzQ3ODgwNTUsICAxNzQzMTcwNTMsICAxNzM4NDczMjAsICAxNzMzNzg4NTMsICAxNzI5MTE2NDgsICAxNzI0NDU3MDIsIA0KLSAgICAgMTcxOTgxMDEyLCAgMTcxNTE3NTc0LCAgMTcxMDU1Mzg1LCAgMTcwNTk0NDQxLCAgMTcwMTM0NzQwLCAgMTY5Njc2Mjc3LCAgMTY5MjE5MDQ5LCAgMTY4NzYzMDU0LCAgMTY4MzA4Mjg3LCAgMTY3ODU0NzQ2LCAgMTY3NDAyNDI3LCANCi0gICAgIDE2Njk1MTMyNywgIDE2NjUwMTQ0MywgIDE2NjA1Mjc3MCwgIDE2NTYwNTMwNywgIDE2NTE1OTA1MCwgIDE2NDcxMzk5NSwgIDE2NDI3MDEzOSwgIDE2MzgyNzQ4MCwgIDE2MzM4NjAxMywgIDE2Mjk0NTczNiwgIDE2MjUwNjY0NiwgDQotICAgICAxNjIwNjg3MzgsICAxNjE2MzIwMTEsICAxNjExOTY0NjAsICAxNjA3NjIwODMsICAxNjAzMjg4NzcsICAxNTk4OTY4MzgsICAxNTk0NjU5NjMsICAxNTkwMzYyNTAsICAxNTg2MDc2OTQsICAxNTgxODAyOTMsICAxNTc3NTQwNDQsIA0KLSAgICAgMTU3MzI4OTQzLCAgMTU2OTA0OTg4LCAgMTU2NDgyMTc2LCAgMTU2MDYwNTAyLCAgMTU1NjM5OTY1LCAgMTU1MjIwNTYyLCAgMTU0ODAyMjg4LCAgMTU0Mzg1MTQyLCAgMTUzOTY5MTE5LCAgMTUzNTU0MjE4LCAgMTUzMTQwNDM1LCANCi0gICAgIDE1MjcyNzc2NiwgIDE1MjMxNjIxMCwgIDE1MTkwNTc2MywgIDE1MTQ5NjQyMiwgIDE1MTA4ODE4NCwgIDE1MDY4MTA0NiwgIDE1MDI3NTAwNSwgIDE0OTg3MDA1OCwgIDE0OTQ2NjIwMywgIDE0OTA2MzQzNSwgIDE0ODY2MTc1MywgDQotICAgICAxNDgyNjExNTQsICAxNDc4NjE2MzQsICAxNDc0NjMxOTAsICAxNDcwNjU4MjEsICAxNDY2Njk1MjIsICAxNDYyNzQyOTEsICAxNDU4ODAxMjUsICAxNDU0ODcwMjEsICAxNDUwOTQ5NzYsICAxNDQ3MDM5ODgsICAxNDQzMTQwNTQsIA0KLSAgICAgMTQzOTI1MTcwLCAgMTQzNTM3MzM0LCAgMTQzMTUwNTQzLCAgMTQyNzY0Nzk1LCAgMTQyMzgwMDg2LCAgMTQxOTk2NDE0LCAgMTQxNjEzNzc1LCAgMTQxMjMyMTY4LCAgMTQwODUxNTg5LCAgMTQwNDcyMDM1LCAgMTQwMDkzNTA1LCANCi0gICAgIDEzOTcxNTk5NCwgIDEzOTMzOTUwMSwgIDEzODk2NDAyMiwgIDEzODU4OTU1NSwgIDEzODIxNjA5NywgIDEzNzg0MzY0NiwgIDEzNzQ3MjE5OCwgIDEzNzEwMTc1MSwgIDEzNjczMjMwMiwgIDEzNjM2Mzg0OSwgIDEzNTk5NjM4OCwgDQotICAgICAxMzU2Mjk5MTgsICAxMzUyNjQ0MzYsICAxMzQ4OTk5MzgsICAxMzQ1MzY0MjMsICAxMzQxNzM4ODcsICAxMzM4MTIzMjgsICAxMzM0NTE3NDMsICAxMzMwOTIxMzAsICAxMzI3MzM0ODYsICAxMzIzNzU4MDgsICAxMzIwMTkwOTUsIA0KLSAgICAgMTMxNjYzMzQyLCAgMTMxMzA4NTQ4LCAgMTMwOTU0NzExLCAgMTMwNjAxODI2LCAgMTMwMjQ5ODkzLCAgMTI5ODk4OTA4LCAgMTI5NTQ4ODY5LCAgMTI5MTk5NzczLCAgMTI4ODUxNjE4LCAgMTI4NTA0NDAxLCAgMTI4MTU4MTE5LCANCi0gICAgIDEyNzgxMjc3MSwgIDEyNzQ2ODM1MywgIDEyNzEyNDg2NCwgIDEyNjc4MjMwMCwgIDEyNjQ0MDY1OSwgIDEyNjA5OTkzOSwgIDEyNTc2MDEzNywgIDEyNTQyMTI1MCwgIDEyNTA4MzI3NywgIDEyNDc0NjIxNCwgIDEyNDQxMDA2MCwgDQotICAgICAxMjQwNzQ4MTIsICAxMjM3NDA0NjcsICAxMjM0MDcwMjMsICAxMjMwNzQ0NzcsICAxMjI3NDI4MjgsICAxMjI0MTIwNzIsICAxMjIwODIyMDgsICAxMjE3NTMyMzIsICAxMjE0MjUxNDMsICAxMjEwOTc5MzksICAxMjA3NzE2MTUsIA0KLSAgICAgMTIwNDQ2MTcyLCAgMTIwMTIxNjA1LCAgMTE5Nzk3OTEyLCAgMTE5NDc1MDkyLCAgMTE5MTUzMTQyLCAgMTE4ODMyMDYwLCAgMTE4NTExODQzLCAgMTE4MTkyNDg4LCAgMTE3ODczOTk0LCAgMTE3NTU2MzU5LCAgMTE3MjM5NTc5LCANCi0gICAgIDExNjkyMzY1MywgIDExNjYwODU3OCwgIDExNjI5NDM1MywgIDExNTk4MDk3NCwgIDExNTY2ODQzOSwgIDExNTM1Njc0NywgIDExNTA0NTg5NCwgIDExNDczNTg4MCwgIDExNDQyNjcwMCwgIDExNDExODM1NCwgIDExMzgxMDgzOSwgDQotICAgICAxMTM1MDQxNTIsICAxMTMxOTgyOTIsICAxMTI4OTMyNTYsICAxMTI1ODkwNDIsICAxMTIyODU2NDgsICAxMTE5ODMwNzEsICAxMTE2ODEzMTAsICAxMTEzODAzNjIsICAxMTEwODAyMjUsICAxMTA3ODA4OTYsICAxMTA0ODIzNzUsIA0KLSAgICAgMTEwMTg0NjU3LCAgMTA5ODg3NzQyLCAgMTA5NTkxNjI3LCAgMTA5Mjk2MzEwLCAgMTA5MDAxNzg5LCAgMTA4NzA4MDYxLCAgMTA4NDE1MTI1LCAgMTA4MTIyOTc4LCAgMTA3ODMxNjE5LCAgMTA3NTQxMDQ0LCAgMTA3MjUxMjUzLCANCi0gICAgIDEwNjk2MjI0MywgIDEwNjY3NDAxMSwgIDEwNjM4NjU1NiwgIDEwNjA5OTg3NiwgIDEwNTgxMzk2OCwgIDEwNTUyODgzMCwgIDEwNTI0NDQ2MSwgIDEwNDk2MDg1OSwgIDEwNDY3ODAyMCwgIDEwNDM5NTk0NCwgIDEwNDExNDYyOCwgDQotICAgICAxMDM4MzQwNjksICAxMDM1NTQyNjcsICAxMDMyNzUyMTksICAxMDI5OTY5MjMsICAxMDI3MTkzNzcsICAxMDI0NDI1NzgsICAxMDIxNjY1MjYsICAxMDE4OTEyMTcsICAxMDE2MTY2NTAsICAxMDEzNDI4MjMsICAxMDEwNjk3MzQsIA0KLSAgICAgMTAwNzk3MzgxLCAgMTAwNTI1NzYyLCAgMTAwMjU0ODc1LCAgIDk5OTg0NzE4LCAgIDk5NzE1Mjg4LCAgIDk5NDQ2NTg1LCAgIDk5MTc4NjA2LCAgIDk4OTExMzQ5LCAgIDk4NjQ0ODEyLCAgIDk4Mzc4OTkzLCAgIDk4MTEzODkxLCANCi0gICAgICA5Nzg0OTUwMywgICA5NzU4NTgyOCwgICA5NzMyMjg2MywgICA5NzA2MDYwNiwgICA5Njc5OTA1NywgICA5NjUzODIxMiwgICA5NjI3ODA3MCwgICA5NjAxODYyOSwgICA5NTc1OTg4NywgICA5NTUwMTg0MiwgICA5NTI0NDQ5MywgDQotICAgICAgOTQ5ODc4MzcsICAgOTQ3MzE4NzMsICAgOTQ0NzY1OTksICAgOTQyMjIwMTIsICAgOTM5NjgxMTIsICAgOTM3MTQ4OTUsICAgOTM0NjIzNjEsICAgOTMyMTA1MDgsICAgOTI5NTkzMzMsICAgOTI3MDg4MzUsICAgOTI0NTkwMTIsIA0KLSAgICAgIDkyMjA5ODYzLCAgIDkxOTYxMzg0LCAgIDkxNzEzNTc1LCAgIDkxNDY2NDM0LCAgIDkxMjE5OTU5LCAgIDkwOTc0MTQ5LCAgIDkwNzI5MDAwLCAgIDkwNDg0NTEyLCAgIDkwMjQwNjgzLCAgIDg5OTk3NTExLCAgIDg5NzU0OTk0LCANCi0gICAgICA4OTUxMzEzMSwgICA4OTI3MTkyMCwgICA4OTAzMTM1OCwgICA4ODc5MTQ0NSwgICA4ODU1MjE3OCwgICA4ODMxMzU1NiwgICA4ODA3NTU3OCwgICA4NzgzODI0MCwgICA4NzYwMTU0MiwgICA4NzM2NTQ4MSwgICA4NzEzMDA1NywgDQotICAgICAgODY4OTUyNjcsICAgODY2NjExMTAsICAgODY0Mjc1ODQsICAgODYxOTQ2ODcsICAgODU5NjI0MTgsICAgODU3MzA3NzUsICAgODU0OTk3NTYsICAgODUyNjkzNTksICAgODUwMzk1ODMsICAgODQ4MTA0MjcsICAgODQ1ODE4ODgsIA0KLSAgICAgIDg0MzUzOTY1LCAgIDg0MTI2NjU2LCAgIDgzODk5OTU5LCAgIDgzNjczODc0LCAgIDgzNDQ4Mzk3LCAgIDgzMjIzNTI4LCAgIDgyOTk5MjY2LCAgIDgyNzc1NjA3LCAgIDgyNTUyNTUxLCAgIDgyMzMwMDk2LCAgIDgyMTA4MjQxLCANCi0gICAgICA4MTg4Njk4NCwgICA4MTY2NjMyMiwgICA4MTQ0NjI1NiwgICA4MTIyNjc4MiwgICA4MTAwNzkwMCwgICA4MDc4OTYwOCwgICA4MDU3MTkwNCwgICA4MDM1NDc4NiwgICA4MDEzODI1NCwgICA3OTkyMjMwNSwgICA3OTcwNjkzOCwgDQotICAgICAgNzk0OTIxNTEsICAgNzkyNzc5NDMsICAgNzkwNjQzMTMsICAgNzg4NTEyNTgsICAgNzg2Mzg3NzcsICAgNzg0MjY4NjgsICAgNzgyMTU1MzEsICAgNzgwMDQ3NjMsICAgNzc3OTQ1NjQsICAgNzc1ODQ5MzAsICAgNzczNzU4NjIsIA0KLSAgICAgIDc3MTY3MzU3LCAgIDc2OTU5NDEzLCAgIDc2NzUyMDMxLCAgIDc2NTQ1MjA3LCAgIDc2MzM4OTQwLCAgIDc2MTMzMjI5LCAgIDc1OTI4MDcyLCAgIDc1NzIzNDY5LCAgIDc1NTE5NDE2LCAgIDc1MzE1OTE0LCAgIDc1MTEyOTYwLCANCi0gICAgICA3NDkxMDU1MiwgICA3NDcwODY5MCwgICA3NDUwNzM3MywgICA3NDMwNjU5NywgICA3NDEwNjM2MywgICA3MzkwNjY2OCwgICA3MzcwNzUxMiwgICA3MzUwODg5MiwgICA3MzMxMDgwNywgICA3MzExMzI1NiwgICA3MjkxNjIzNywgDQotICAgICAgNzI3MTk3NDksICAgNzI1MjM3OTEsICAgNzIzMjgzNjEsICAgNzIxMzM0NTcsICAgNzE5MzkwNzksICAgNzE3NDUyMjUsICAgNzE1NTE4OTIsICAgNzEzNTkwODEsICAgNzExNjY3ODksICAgNzA5NzUwMTYsICAgNzA3ODM3NTksIA0KLSAgICAgIDcwNTkzMDE4LCAgIDcwNDAyNzkxLCAgIDcwMjEzMDc2LCAgIDcwMDIzODcyLCAgIDY5ODM1MTc5LCAgIDY5NjQ2OTk0LCAgIDY5NDU5MzE1LCAgIDY5MjcyMTQzLCAgIDY5MDg1NDc1LCAgIDY4ODk5MzEwLCAgIDY4NzEzNjQ3LCANCi0gICAgICA2ODUyODQ4NCwgICA2ODM0MzgyMCwgICA2ODE1OTY1MywgICA2Nzk3NTk4MywgICA2Nzc5MjgwOCwgICA2NzYxMDEyNywgICA2NzQyNzkzNywgICA2NzI0NjIzOSwgICA2NzA2NTAzMCwgICA2Njg4NDMxMCwgICA2NjcwNDA3NiwgDQotICAgICAgNjY1MjQzMjgsICAgNjYzNDUwNjUsICAgNjYxNjYyODUsICAgNjU5ODc5ODYsICAgNjU4MTAxNjgsICAgNjU2MzI4MjksICAgNjU0NTU5NjgsICAgNjUyNzk1ODMsICAgNjUxMDM2NzQsICAgNjQ5MjgyMzksICAgNjQ3NTMyNzcsIA0KLSAgICAgIDY0NTc4Nzg2LCAgIDY0NDA0NzY1LCAgIDY0MjMxMjEzLCAgIDY0MDU4MTI5LCAgIDYzODg1NTExLCAgIDYzNzEzMzU5LCAgIDYzNTQxNjcwLCAgIDYzMzcwNDQ0LCAgIDYzMTk5Njc5LCAgIDYzMDI5Mzc1LCAgIDYyODU5NTI5LCANCi0gICAgICA2MjY5MDE0MSwgICA2MjUyMTIxMCwgICA2MjM1MjczNCwgICA2MjE4NDcxMSwgICA2MjAxNzE0MiwgICA2MTg1MDAyNCwgICA2MTY4MzM1NywgICA2MTUxNzEzOCwgICA2MTM1MTM2OCwgICA2MTE4NjA0NCwgICA2MTAyMTE2NiwgDQotICAgICAgNjA4NTY3MzEsICAgNjA2OTI3NDEsICAgNjA1MjkxOTIsICAgNjAzNjYwODMsICAgNjAyMDM0MTQsICAgNjAwNDExODQsICAgNTk4NzkzOTEsICAgNTk3MTgwMzQsICAgNTk1NTcxMTEsICAgNTkzOTY2MjIsICAgNTkyMzY1NjYsIA0KLSAgICAgIDU5MDc2OTQxLCAgIDU4OTE3NzQ2LCAgIDU4NzU4OTgwLCAgIDU4NjAwNjQyLCAgIDU4NDQyNzMwLCAgIDU4Mjg1MjQ1LCAgIDU4MTI4MTgzLCAgIDU3OTcxNTQ1LCAgIDU3ODE1MzI5LCAgIDU3NjU5NTMzLCAgIDU3NTA0MTU4LCANCi0gICAgICA1NzM0OTIwMSwgICA1NzE5NDY2MiwgICA1NzA0MDUzOSwgICA1Njg4NjgzMiwgICA1NjczMzUzOSwgICA1NjU4MDY1OSwgICA1NjQyODE5MCwgICA1NjI3NjEzMywgICA1NjEyNDQ4NiwgICA1NTk3MzI0NywgICA1NTgyMjQxNSwgDQotICAgICAgNTU2NzE5OTAsICAgNTU1MjE5NzEsICAgNTUzNzIzNTUsICAgNTUyMjMxNDMsICAgNTUwNzQzMzMsICAgNTQ5MjU5MjQsICAgNTQ3Nzc5MTUsICAgNTQ2MzAzMDUsICAgNTQ0ODMwOTIsICAgNTQzMzYyNzYsICAgNTQxODk4NTYsIA0KLSAgICAgIDU0MDQzODMwLCAgIDUzODk4MTk4LCAgIDUzNzUyOTU5LCAgIDUzNjA4MTEwLCAgIDUzNDYzNjUyLCAgIDUzMzE5NTgzLCAgIDUzMTc1OTAzLCAgIDUzMDMyNjEwLCAgIDUyODg5NzAyLCAgIDUyNzQ3MTgwLCAgIDUyNjA1MDQyLCANCi0gICAgICA1MjQ2MzI4NywgICA1MjMyMTkxNCwgICA1MjE4MDkyMiwgICA1MjA0MDMxMCwgICA1MTkwMDA3NiwgICA1MTc2MDIyMSwgICA1MTYyMDc0MywgICA1MTQ4MTY0MCwgICA1MTM0MjkxMiwgICA1MTIwNDU1OCwgICA1MTA2NjU3NywgDQotICAgICAgNTA5Mjg5NjgsICAgNTA3OTE3MjksICAgNTA2NTQ4NjAsICAgNTA1MTgzNjAsICAgNTAzODIyMjgsICAgNTAyNDY0NjMsICAgNTAxMTEwNjQsICAgNDk5NzYwMjksICAgNDk4NDEzNTksICAgNDk3MDcwNTEsICAgNDk1NzMxMDUsIA0KLSAgICAgIDQ5NDM5NTIwLCAgIDQ5MzA2Mjk1LCAgIDQ5MTczNDI5LCAgIDQ5MDQwOTIyLCAgIDQ4OTA4NzcxLCAgIDQ4Nzc2OTc2LCAgIDQ4NjQ1NTM3LCAgIDQ4NTE0NDUxLCAgIDQ4MzgzNzE5LCAgIDQ4MjUzMzM5LCAgIDQ4MTIzMzExLCANCi0gICAgICA0Nzk5MzYzMywgICA0Nzg2NDMwNCwgICA0NzczNTMyNCwgICA0NzYwNjY5MSwgICA0NzQ3ODQwNSwgICA0NzM1MDQ2NSwgICA0NzIyMjg2OSwgICA0NzA5NTYxOCwgICA0Njk2ODcwOSwgICA0Njg0MjE0MiwgICA0NjcxNTkxNiwgDQotICAgICAgNDY1OTAwMzEsICAgNDY0NjQ0ODQsICAgNDYzMzkyNzYsICAgNDYyMTQ0MDYsICAgNDYwODk4NzEsICAgNDU5NjU2NzMsICAgNDU4NDE4MDksICAgNDU3MTgyNzksICAgNDU1OTUwODIsICAgNDU0NzIyMTYsICAgNDUzNDk2ODIsIA0KLSAgICAgIDQ1MjI3NDc4LCAgIDQ1MTA1NjAzLCAgIDQ0OTg0MDU3LCAgIDQ0ODYyODM4LCAgIDQ0NzQxOTQ2LCAgIDQ0NjIxMzgwLCAgIDQ0NTAxMTM5LCAgIDQ0MzgxMjIxLCAgIDQ0MjYxNjI3LCAgIDQ0MTQyMzU1LCAgIDQ0MDIzNDA0LCANCi0gICAgICA0MzkwNDc3NCwgICA0Mzc4NjQ2NCwgICA0MzY2ODQ3MiwgICA0MzU1MDc5OCwgICA0MzQzMzQ0MiwgICA0MzMxNjQwMiwgICA0MzE5OTY3NywgICA0MzA4MzI2NiwgICA0Mjk2NzE3MCwgICA0Mjg1MTM4NiwgICA0MjczNTkxNCwgDQotICAgICAgNDI2MjA3NTMsICAgNDI1MDU5MDMsICAgNDIzOTEzNjIsICAgNDIyNzcxMzAsICAgNDIxNjMyMDYsICAgNDIwNDk1ODgsICAgNDE5MzYyNzcsICAgNDE4MjMyNzEsICAgNDE3MTA1NzAsICAgNDE1OTgxNzIsICAgNDE0ODYwNzcsIA0KLSAgICAgIDQxMzc0Mjg1LCAgIDQxMjYyNzkzLCAgIDQxMTUxNjAyLCAgIDQxMDQwNzExLCAgIDQwOTMwMTE4LCAgIDQwODE5ODIzLCAgIDQwNzA5ODI2LCAgIDQwNjAwMTI1LCAgIDQwNDkwNzIwLCAgIDQwMzgxNjA5LCAgIDQwMjcyNzkzLCANCi0gICAgICA0MDE2NDI2OSwgICA0MDA1NjAzOSwgICAzOTk0ODA5OSwgICAzOTg0MDQ1MSwgICAzOTczMzA5MywgICAzOTYyNjAyNCwgICAzOTUxOTI0MywgICAzOTQxMjc1MSwgICAzOTMwNjU0NSwgICAzOTIwMDYyNSwgICAzOTA5NDk5MSwgDQotICAgICAgMzg5ODk2NDIsICAgMzg4ODQ1NzYsICAgMzg3Nzk3OTQsICAgMzg2NzUyOTQsICAgMzg1NzEwNzUsICAgMzg0NjcxMzgsICAgMzgzNjM0ODAsICAgMzgyNjAxMDIsICAgMzgxNTcwMDIsICAgMzgwNTQxODAsICAgMzc5NTE2MzUsIA0KLSAgICAgIDM3ODQ5MzY3LCAgIDM3NzQ3Mzc0LCAgIDM3NjQ1NjU2LCAgIDM3NTQ0MjEyLCAgIDM3NDQzMDQyLCAgIDM3MzQyMTQ0LCAgIDM3MjQxNTE4LCAgIDM3MTQxMTYzLCAgIDM3MDQxMDc4LCAgIDM2OTQxMjY0LCAgIDM2ODQxNzE4LCANCi0gICAgICAzNjc0MjQ0MCwgICAzNjY0MzQzMCwgICAzNjU0NDY4NywgICAzNjQ0NjIxMCwgICAzNjM0Nzk5OCwgICAzNjI1MDA1MSwgICAzNjE1MjM2OCwgICAzNjA1NDk0OCwgICAzNTk1Nzc5MCwgICAzNTg2MDg5NSwgICAzNTc2NDI2MCwgDQotICAgICAgMzU2Njc4ODYsICAgMzU1NzE3NzIsICAgMzU0NzU5MTYsICAgMzUzODAzMTksICAgMzUyODQ5ODAsICAgMzUxODk4OTcsICAgMzUwOTUwNzEsICAgMzUwMDA1MDAsICAgMzQ5MDYxODQsICAgMzQ4MTIxMjIsICAgMzQ3MTgzMTQsIA0KLSAgICAgIDM0NjI0NzU4LCAgIDM0NTMxNDU0LCAgIDM0NDM4NDAyLCAgIDM0MzQ1NjAxLCAgIDM0MjUzMDUwLCAgIDM0MTYwNzQ4LCAgIDM0MDY4Njk1LCAgIDMzOTc2ODkwLCAgIDMzODg1MzMyLCAgIDMzNzk0MDIxLCAgIDMzNzAyOTU2LCANCi0gICAgICAzMzYxMjEzNywgICAzMzUyMTU2MiwgICAzMzQzMTIzMSwgICAzMzM0MTE0NCwgICAzMzI1MTI5OSwgICAzMzE2MTY5NywgICAzMzA3MjMzNiwgICAzMjk4MzIxNiwgICAzMjg5NDMzNiwgICAzMjgwNTY5NSwgICAzMjcxNzI5NCwgDQotICAgICAgMzI2MjkxMzAsICAgMzI1NDEyMDQsICAgMzI0NTM1MTUsICAgMzIzNjYwNjMsICAgMzIyNzg4NDYsICAgMzIxOTE4NjQsICAgMzIxMDUxMTYsICAgMzIwMTg2MDIsICAgMzE5MzIzMjIsICAgMzE4NDYyNzMsICAgMzE3NjA0NTcsIA0KLSAgICAgIDMxNjc0ODcyLCAgIDMxNTg5NTE4LCAgIDMxNTA0MzkzLCAgIDMxNDE5NDk4LCAgIDMxMzM0ODMyLCAgIDMxMjUwMzk0LCAgIDMxMTY2MTgzLCAgIDMxMDgyMjAwLCAgIDMwOTk4NDQyLCAgIDMwOTE0OTExLCAgIDMwODMxNjA0LCANCi0gICAgICAzMDc0ODUyMiwgICAzMDY2NTY2NCwgICAzMDU4MzAyOSwgICAzMDUwMDYxNywgICAzMDQxODQyNiwgICAzMDMzNjQ1OCwgICAzMDI1NDcxMCwgICAzMDE3MzE4MywgICAzMDA5MTg3NSwgICAzMDAxMDc4NiwgICAyOTkyOTkxNiwgDQotICAgICAgMjk4NDkyNjMsICAgMjk3Njg4MjksICAgMjk2ODg2MTAsICAgMjk2MDg2MDgsICAgMjk1Mjg4MjIsICAgMjk0NDkyNTAsICAgMjkzNjk4OTMsICAgMjkyOTA3NTAsICAgMjkyMTE4MjAsICAgMjkxMzMxMDMsICAgMjkwNTQ1OTgsIA0KLSAgICAgIDI4OTc2MzA0LCAgIDI4ODk4MjIyLCAgIDI4ODIwMzUwLCAgIDI4NzQyNjg3LCAgIDI4NjY1MjM0LCAgIDI4NTg3OTkwLCAgIDI4NTEwOTU0LCAgIDI4NDM0MTI1LCAgIDI4MzU3NTAzLCAgIDI4MjgxMDg4LCAgIDI4MjA0ODc5LCANCi0gICAgICAyODEyODg3NSwgICAyODA1MzA3NiwgICAyNzk3NzQ4MiwgICAyNzkwMjA5MSwgICAyNzgyNjkwMywgICAyNzc1MTkxNywgICAyNzY3NzEzNCwgICAyNzYwMjU1MiwgICAyNzUyODE3MiwgICAyNzQ1Mzk5MSwgICAyNzM4MDAxMSwgDQotICAgICAgMjczMDYyMzAsICAgMjcyMzI2NDgsICAgMjcxNTkyNjQsICAgMjcwODYwNzgsICAgMjcwMTMwODksICAgMjY5NDAyOTYsICAgMjY4Njc3MDAsICAgMjY3OTUzMDAsICAgMjY3MjMwOTQsICAgMjY2NTEwODMsICAgMjY1NzkyNjcsIA0KLSAgICAgIDI2NTA3NjQzLCAgIDI2NDM2MjEzLCAgIDI2MzY0OTc1LCAgIDI2MjkzOTI5LCAgIDI2MjIzMDc1LCAgIDI2MTUyNDEyLCAgIDI2MDgxOTM5LCAgIDI2MDExNjU2LCAgIDI1OTQxNTYyLCAgIDI1ODcxNjU3LCAgIDI1ODAxOTQwLCANCi0gICAgICAyNTczMjQxMiwgICAyNTY2MzA3MSwgICAyNTU5MzkxNiwgICAyNTUyNDk0OCwgICAyNTQ1NjE2NiwgICAyNTM4NzU2OSwgICAyNTMxOTE1NywgICAyNTI1MDkyOSwgICAyNTE4Mjg4NiwgICAyNTExNTAyNSwgICAyNTA0NzM0OCwgDQotICAgICAgMjQ5Nzk4NTIsICAgMjQ5MTI1MzksICAgMjQ4NDU0MDcsICAgMjQ3Nzg0NTYsICAgMjQ3MTE2ODYsICAgMjQ2NDUwOTUsICAgMjQ1Nzg2ODQsICAgMjQ1MTI0NTEsICAgMjQ0NDYzOTcsICAgMjQzODA1MjIsICAgMjQzMTQ4MjMsIA0KLSAgICAgIDI0MjQ5MzAyLCAgIDI0MTgzOTU3LCAgIDI0MTE4Nzg5LCAgIDI0MDUzNzk2LCAgIDIzOTg4OTc4LCAgIDIzOTI0MzM1LCAgIDIzODU5ODY2LCAgIDIzNzk1NTcwLCAgIDIzNzMxNDQ4LCAgIDIzNjY3NDk5LCAgIDIzNjAzNzIyLCANCi0gICAgICAyMzU0MDExNywgICAyMzQ3NjY4MywgICAyMzQxMzQyMSwgICAyMzM1MDMyOCwgICAyMzI4NzQwNiwgICAyMzIyNDY1MywgICAyMzE2MjA3MCwgICAyMzA5OTY1NSwgICAyMzAzNzQwOCwgICAyMjk3NTMyOSwgICAyMjkxMzQxNywgDQotICAgICAgMjI4NTE2NzMsICAgMjI3OTAwOTQsICAgMjI3Mjg2ODEsICAgMjI2Njc0MzQsICAgMjI2MDYzNTIsICAgMjI1NDU0MzUsICAgMjI0ODQ2ODIsICAgMjI0MjQwOTIsICAgMjIzNjM2NjYsICAgMjIzMDM0MDIsICAgMjIyNDMzMDEsIA0KLSAgICAgIDIyMTgzMzYyLCAgIDIyMTIzNTg0LCAgIDIyMDYzOTY4LCAgIDIyMDA0NTEyLCAgIDIxOTQ1MjE2LCAgIDIxODg2MDgwLCAgIDIxODI3MTA0LCAgIDIxNzY4Mjg2LCAgIDIxNzA5NjI3LCAgIDIxNjUxMTI2LCAgIDIxNTkyNzgzLCANCi0gICAgICAyMTUzNDU5NywgICAyMTQ3NjU2NywgICAyMTQxODY5NCwgICAyMTM2MDk3NywgICAyMTMwMzQxNiwgICAyMTI0NjAwOSwgICAyMTE4ODc1OCwgICAyMTEzMTY2MCwgICAyMTA3NDcxNywgICAyMTAxNzkyNiwgICAyMDk2MTI4OSwgDQotICAgICAgMjA5MDQ4MDUsICAgMjA4NDg0NzMsICAgMjA3OTIyOTIsICAgMjA3MzYyNjMsICAgMjA2ODAzODUsICAgMjA2MjQ2NTcsICAgMjA1NjkwODAsICAgMjA1MTM2NTIsICAgMjA0NTgzNzQsICAgMjA0MDMyNDUsICAgMjAzNDgyNjQsIA0KLSAgICAgIDIwMjkzNDMyLCAgIDIwMjM4NzQ3LCAgIDIwMTg0MjA5LCAgIDIwMTI5ODE5LCAgIDIwMDc1NTc1LCAgIDIwMDIxNDc3LCAgIDE5OTY3NTI1LCAgIDE5OTEzNzE5LCAgIDE5ODYwMDU3LCAgIDE5ODA2NTQwLCAgIDE5NzUzMTY3LCANCi0gICAgICAxOTY5OTkzOCwgICAxOTY0Njg1MywgICAxOTU5MzkxMCwgICAxOTU0MTExMSwgICAxOTQ4ODQ1MywgICAxOTQzNTkzNywgICAxOTM4MzU2MywgICAxOTMzMTMzMCwgICAxOTI3OTIzOCwgICAxOTIyNzI4NiwgICAxOTE3NTQ3NCwgDQotICAgICAgMTkxMjM4MDIsICAgMTkwNzIyNjksICAgMTkwMjA4NzUsICAgMTg5Njk2MTksICAgMTg5MTg1MDIsICAgMTg4Njc1MjIsICAgMTg4MTY2ODAsICAgMTg3NjU5NzQsICAgMTg3MTU0MDUsICAgMTg2NjQ5NzMsICAgMTg2MTQ2NzYsIA0KLSAgICAgIDE4NTY0NTE1LCAgIDE4NTE0NDg5LCAgIDE4NDY0NTk4LCAgIDE4NDE0ODQyLCAgIDE4MzY1MjE5LCAgIDE4MzE1NzMwLCAgIDE4MjY2Mzc1LCAgIDE4MjE3MTUyLCAgIDE4MTY4MDYyLCAgIDE4MTE5MTA1LCAgIDE4MDcwMjc5LCANCi0gICAgICAxODAyMTU4NSwgICAxNzk3MzAyMiwgICAxNzkyNDU5MCwgICAxNzg3NjI4OSwgICAxNzgyODExOCwgICAxNzc4MDA3NiwgICAxNzczMjE2NCwgICAxNzY4NDM4MSwgICAxNzYzNjcyNywgICAxNzU4OTIwMSwgICAxNzU0MTgwMywgDQotICAgICAgMTc0OTQ1MzMsICAgMTc0NDczOTEsICAgMTc0MDAzNzUsICAgMTczNTM0ODYsICAgMTczMDY3MjQsICAgMTcyNjAwODcsICAgMTcyMTM1NzcsICAgMTcxNjcxOTEsICAgMTcxMjA5MzAsICAgMTcwNzQ3OTUsICAgMTcwMjg3ODMsIA0KLSAgICAgIDE2OTgyODk2LCAgIDE2OTM3MTMyLCAgIDE2ODkxNDkxLCAgIDE2ODQ1OTc0LCAgIDE2ODAwNTc5LCAgIDE2NzU1MzA2LCAgIDE2NzEwMTU1LCAgIDE2NjY1MTI2LCAgIDE2NjIwMjE5LCAgIDE2NTc1NDMyLCAgIDE2NTMwNzY2LCANCi0gICAgICAxNjQ4NjIyMSwgICAxNjQ0MTc5NSwgICAxNjM5NzQ5MCwgICAxNjM1MzMwMywgICAxNjMwOTIzNiwgICAxNjI2NTI4NywgICAxNjIyMTQ1NywgICAxNjE3Nzc0NSwgICAxNjEzNDE1MSwgICAxNjA5MDY3NCwgICAxNjA0NzMxNCwgDQotICAgICAgMTYwMDQwNzIsICAgMTU5NjA5NDUsICAgMTU5MTc5MzUsICAgMTU4NzUwNDEsICAgMTU4MzIyNjMsICAgMTU3ODk1OTksICAgMTU3NDcwNTEsICAgMTU3MDQ2MTcsICAgMTU2NjIyOTgsICAgMTU2MjAwOTMsICAgMTU1NzgwMDEsIA0KLSAgICAgIDE1NTM2MDIzLCAgIDE1NDk0MTU4LCAgIDE1NDUyNDA2LCAgIDE1NDEwNzY2LCAgIDE1MzY5MjM5LCAgIDE1MzI3ODIzLCAgIDE1Mjg2NTE5LCAgIDE1MjQ1MzI3LCAgIDE1MjA0MjQ1LCAgIDE1MTYzMjc0LCAgIDE1MTIyNDE0LCANCi0gICAgICAxNTA4MTY2MywgICAxNTA0MTAyMywgICAxNTAwMDQ5MSwgICAxNDk2MDA3MCwgICAxNDkxOTc1NywgICAxNDg3OTU1MiwgICAxNDgzOTQ1NiwgICAxNDc5OTQ2OCwgICAxNDc1OTU4OCwgICAxNDcxOTgxNSwgICAxNDY4MDE1MCwgDQotICAgICAgMTQ2NDA1OTEsICAgMTQ2MDExMzksICAgMTQ1NjE3OTMsICAgMTQ1MjI1NTQsICAgMTQ0ODM0MjAsICAgMTQ0NDQzOTEsICAgMTQ0MDU0NjgsICAgMTQzNjY2NDksICAgMTQzMjc5MzUsICAgMTQyODkzMjYsICAgMTQyNTA4MjAsIA0KLSAgICAgIDE0MjEyNDE4LCAgIDE0MTc0MTIwLCAgIDE0MTM1OTI1LCAgIDE0MDk3ODMzLCAgIDE0MDU5ODQzLCAgIDE0MDIxOTU2LCAgIDEzOTg0MTcxLCAgIDEzOTQ2NDg4LCAgIDEzOTA4OTA2LCAgIDEzODcxNDI2LCAgIDEzODM0MDQ3LCANCi0gICAgICAxMzc5Njc2OCwgICAxMzc1OTU5MCwgICAxMzcyMjUxMiwgICAxMzY4NTUzNCwgICAxMzY0ODY1NSwgICAxMzYxMTg3NiwgICAxMzU3NTE5NiwgICAxMzUzODYxNSwgICAxMzUwMjEzMiwgICAxMzQ2NTc0OCwgICAxMzQyOTQ2MiwgDQotICAgICAgMTMzOTMyNzMsICAgMTMzNTcxODMsICAgMTMzMjExODksICAgMTMyODUyOTIsICAgMTMyNDk0OTIsICAgMTMyMTM3ODksICAgMTMxNzgxODIsICAgMTMxNDI2NzAsICAgMTMxMDcyNTUsICAgMTMwNzE5MzQsICAgMTMwMzY3MDksIA0KLSAgICAgIDEzMDAxNTc5LCAgIDEyOTY2NTQ0LCAgIDEyOTMxNjAzLCAgIDEyODk2NzU2LCAgIDEyODYyMDAzLCAgIDEyODI3MzQ0LCAgIDEyNzkyNzc4LCAgIDEyNzU4MzA1LCAgIDEyNzIzOTI1LCAgIDEyNjg5NjM4LCAgIDEyNjU1NDQzLCANCi0gICAgICAxMjYyMTM0MSwgICAxMjU4NzMzMCwgICAxMjU1MzQxMSwgICAxMjUxOTU4MywgICAxMjQ4NTg0NiwgICAxMjQ1MjIwMSwgICAxMjQxODY0NiwgICAxMjM4NTE4MSwgICAxMjM1MTgwNywgICAxMjMxODUyMiwgICAxMjI4NTMyNywgDQotICAgICAgMTIyNTIyMjIsICAgMTIyMTkyMDYsICAgMTIxODYyNzksICAgMTIxNTM0NDAsICAgMTIxMjA2OTAsICAgMTIwODgwMjksICAgMTIwNTU0NTUsICAgMTIwMjI5NjksICAgMTE5OTA1NzEsICAgMTE5NTgyNjAsICAgMTE5MjYwMzYsIA0KLSAgICAgIDExODkzODk5LCAgIDExODYxODQ4LCAgIDExODI5ODg0LCAgIDExNzk4MDA2LCAgIDExNzY2MjE0LCAgIDExNzM0NTA3LCAgIDExNzAyODg2LCAgIDExNjcxMzUwLCAgIDExNjM5OTAwLCAgIDExNjA4NTMzLCAgIDExNTc3MjUyLCANCi0gICAgICAxMTU0NjA1NSwgICAxMTUxNDk0MSwgICAxMTQ4MzkxMiwgICAxMTQ1Mjk2NiwgICAxMTQyMjEwNCwgICAxMTM5MTMyNSwgICAxMTM2MDYyOCwgICAxMTMzMDAxNSwgICAxMTI5OTQ4NCwgICAxMTI2OTAzNSwgICAxMTIzODY2OCwgDQotICAgICAgMTEyMDgzODQsICAgMTExNzgxODAsICAgMTExNDgwNTgsICAgMTExMTgwMTgsICAgMTEwODgwNTgsICAgMTEwNTgxNzksICAgMTEwMjgzODAsICAgMTA5OTg2NjIsICAgMTA5NjkwMjQsICAgMTA5Mzk0NjYsICAgMTA5MDk5ODcsIA0KLSAgICAgIDEwODgwNTg4LCAgIDEwODUxMjY4LCAgIDEwODIyMDI3LCAgIDEwNzkyODY1LCAgIDEwNzYzNzgxLCAgIDEwNzM0Nzc2LCAgIDEwNzA1ODQ5LCAgIDEwNjc3MDAwLCAgIDEwNjQ4MjI4LCAgIDEwNjE5NTM1LCAgIDEwNTkwOTE4LCANCi0gICAgICAxMDU2MjM3OSwgICAxMDUzMzkxNiwgICAxMDUwNTUzMCwgICAxMDQ3NzIyMSwgICAxMDQ0ODk4OCwgICAxMDQyMDgzMSwgICAxMDM5Mjc1MCwgICAxMDM2NDc0NSwgICAxMDMzNjgxNSwgICAxMDMwODk2MCwgICAxMDI4MTE4MCwgDQotICAgICAgMTAyNTM0NzYsICAgMTAyMjU4NDYsICAgMTAxOTgyOTAsICAgMTAxNzA4MDksICAgMTAxNDM0MDEsICAgMTAxMTYwNjgsICAgMTAwODg4MDgsICAgMTAwNjE2MjIsICAgMTAwMzQ1MDksICAgMTAwMDc0NjgsICAgIDk5ODA1MDEsIA0KLSAgICAgICA5OTUzNjA3LCAgICA5OTI2Nzg1LCAgICA5OTAwMDM1LCAgICA5ODczMzU3LCAgICA5ODQ2NzUyLCAgICA5ODIwMjE3LCAgICA5NzkzNzU1LCAgICA5NzY3MzY0LCAgICA5NzQxMDQzLCAgICA5NzE0Nzk0LCAgICA5Njg4NjE2LCANCi0gICAgICAgOTY2MjUwOCwgICAgOTYzNjQ3MCwgICAgOTYxMDUwMywgICAgOTU4NDYwNSwgICAgOTU1ODc3OCwgICAgOTUzMzAxOSwgICAgOTUwNzMzMSwgICAgOTQ4MTcxMSwgICAgOTQ1NjE2MSwgICAgOTQzMDY3OSwgICAgOTQwNTI2NiwgDQotICAgICAgIDkzNzk5MjIsICAgIDkzNTQ2NDYsICAgIDkzMjk0MzgsICAgIDkzMDQyOTgsICAgIDkyNzkyMjUsICAgIDkyNTQyMjEsICAgIDkyMjkyODMsICAgIDkyMDQ0MTMsICAgIDkxNzk2MTAsICAgIDkxNTQ4NzQsICAgIDkxMzAyMDQsIA0KLSAgICAgICA5MTA1NjAxLCAgICA5MDgxMDY0LCAgICA5MDU2NTkzLCAgICA5MDMyMTg4LCAgICA5MDA3ODQ5LCAgICA4OTgzNTc2LCAgICA4OTU5MzY4LCAgICA4OTM1MjI1LCAgICA4OTExMTQ3LCAgICA4ODg3MTM0LCAgICA4ODYzMTg2LCANCi0gICAgICAgODgzOTMwMiwgICAgODgxNTQ4MywgICAgODc5MTcyOCwgICAgODc2ODAzNywgICAgODc0NDQwOSwgICAgODcyMDg0NiwgICAgODY5NzM0NiwgICAgODY3MzkwOSwgICAgODY1MDUzNSwgICAgODYyNzIyNSwgICAgODYwMzk3NywgDQotICAgICAgIDg1ODA3OTIsICAgIDg1NTc2NjksICAgIDg1MzQ2MDgsICAgIDg1MTE2MTAsICAgIDg0ODg2NzQsICAgIDg0NjU3OTksICAgIDg0NDI5ODcsICAgIDg0MjAyMzUsICAgIDgzOTc1NDUsICAgIDgzNzQ5MTYsICAgIDgzNTIzNDgsIA0KLSAgICAgICA4MzI5ODQxLCAgICA4MzA3Mzk1LCAgICA4Mjg1MDA5LCAgICA4MjYyNjgzLCAgICA4MjQwNDE4LCAgICA4MjE4MjEyLCAgICA4MTk2MDY3LCAgICA4MTczOTgxLCAgICA4MTUxOTU0LCAgICA4MTI5OTg3LCAgICA4MTA4MDc5LCANCi0gICAgICAgODA4NjIzMCwgICAgODA2NDQ0MCwgICAgODA0MjcwOSwgICAgODAyMTAzNiwgICAgNzk5OTQyMiwgICAgNzk3Nzg2NiwgICAgNzk1NjM2OCwgICAgNzkzNDkyOCwgICAgNzkxMzU0NSwgICAgNzg5MjIyMSwgICAgNzg3MDk1NCwgDQotICAgICAgIDc4NDk3NDQsICAgIDc4Mjg1OTEsICAgIDc4MDc0OTUsICAgIDc3ODY0NTYsICAgIDc3NjU0NzQsICAgIDc3NDQ1NDgsICAgIDc3MjM2NzksICAgIDc3MDI4NjYsICAgIDc2ODIxMDksICAgIDc2NjE0MDgsICAgIDc2NDA3NjMsIA0KLSAgICAgICA3NjIwMTczLCAgICA3NTk5NjM5LCAgICA3NTc5MTYwLCAgICA3NTU4NzM3LCAgICA3NTM4MzY4LCAgICA3NTE4MDU1LCAgICA3NDk3Nzk2LCAgICA3NDc3NTkxLCAgICA3NDU3NDQxLCAgICA3NDM3MzQ2LCAgICA3NDE3MzA0LCANCi0gICAgICAgNzM5NzMxNywgICAgNzM3NzM4MywgICAgNzM1NzUwMywgICAgNzMzNzY3NywgICAgNzMxNzkwNCwgICAgNzI5ODE4NSwgICAgNzI3ODUxOCwgICAgNzI1ODkwNSwgICAgNzIzOTM0NCwgICAgNzIxOTgzNiwgICAgNzIwMDM4MSwgDQotICAgICAgIDcxODA5NzgsICAgIDcxNjE2MjcsICAgIDcxNDIzMjksICAgIDcxMjMwODIsICAgIDcxMDM4ODgsICAgIDcwODQ3NDUsICAgIDcwNjU2NTQsICAgIDcwNDY2MTQsICAgIDcwMjc2MjUsICAgIDcwMDg2ODgsICAgIDY5ODk4MDIsIA0KLSAgICAgICA2OTcwOTY2LCAgICA2OTUyMTgxLCAgICA2OTMzNDQ3LCAgICA2OTE0NzY0LCAgICA2ODk2MTMwLCAgICA2ODc3NTQ3LCAgICA2ODU5MDE0LCAgICA2ODQwNTMxLCAgICA2ODIyMDk4LCAgICA2ODAzNzE1LCAgICA2Nzg1MzgxLCANCi0gICAgICAgNjc2NzA5NiwgICAgNjc0ODg2MSwgICAgNjczMDY3NSwgICAgNjcxMjUzNywgICAgNjY5NDQ0OSwgICAgNjY3NjQxMCwgICAgNjY1ODQxOSwgICAgNjY0MDQ3NiwgICAgNjYyMjU4MiwgICAgNjYwNDczNiwgICAgNjU4NjkzOCwgDQotICAgICAgIDY1NjkxODgsICAgIDY1NTE0ODYsICAgIDY1MzM4MzIsICAgIDY1MTYyMjUsICAgIDY0OTg2NjYsICAgIDY0ODExNTQsICAgIDY0NjM2ODksICAgIDY0NDYyNzIsICAgIDY0Mjg5MDEsICAgIDY0MTE1NzcsICAgIDYzOTQyOTksIA0KLSAgICAgICA2Mzc3MDY5LCAgICA2MzU5ODg0LCAgICA2MzQyNzQ2LCAgICA2MzI1NjU1LCAgICA2MzA4NjA5LCAgICA2MjkxNjA5LCAgICA2Mjc0NjU1LCAgICA2MjU3NzQ3LCAgICA2MjQwODg0LCAgICA2MjI0MDY2LCAgICA2MjA3Mjk0LCANCi0gICAgICAgNjE5MDU2OCwgICAgNjE3Mzg4NiwgICAgNjE1NzI0OSwgICAgNjE0MDY1NywgICAgNjEyNDExMCwgICAgNjEwNzYwNywgICAgNjA5MTE0OSwgICAgNjA3NDczNSwgICAgNjA1ODM2NSwgICAgNjA0MjA0MCwgICAgNjAyNTc1OCwgDQotICAgICAgIDYwMDk1MjEsICAgIDU5OTMzMjcsICAgIDU5NzcxNzcsICAgIDU5NjEwNzAsICAgIDU5NDUwMDcsICAgIDU5Mjg5ODcsICAgIDU5MTMwMTAsICAgIDU4OTcwNzYsICAgIDU4ODExODUsICAgIDU4NjUzMzcsICAgIDU4NDk1MzIsIA0KLSAgICAgICA1ODMzNzY5LCAgICA1ODE4MDQ5LCAgICA1ODAyMzcxLCAgICA1Nzg2NzM1LCAgICA1NzcxMTQxLCAgICA1NzU1NTkwLCAgICA1NzQwMDgwLCAgICA1NzI0NjEyLCAgICA1NzA5MTg2LCAgICA1NjkzODAyLCAgICA1Njc4NDU5LCANCi0gICAgICAgNTY2MzE1NywgICAgNTY0Nzg5NiwgICAgNTYzMjY3NywgICAgNTYxNzQ5OCwgICAgNTYwMjM2MSwgICAgNTU4NzI2NCwgICAgNTU3MjIwOCwgICAgNTU1NzE5MywgICAgNTU0MjIxOCwgICAgNTUyNzI4MywgICAgNTUxMjM4OSwgDQotICAgICAgIDU0OTc1MzQsICAgIDU0ODI3MjAsICAgIDU0Njc5NDYsICAgIDU0NTMyMTEsICAgIDU0Mzg1MTcsICAgIDU0MjM4NjEsICAgIDU0MDkyNDYsICAgIDUzOTQ2NjksICAgIDUzODAxMzIsICAgIDUzNjU2MzUsICAgIDUzNTExNzYsIA0KLSAgICAgICA1MzM2NzU2LCAgICA1MzIyMzc1LCAgICA1MzA4MDMzLCAgICA1MjkzNzI5LCAgICA1Mjc5NDY0LCAgICA1MjY1MjM3LCAgICA1MjUxMDQ5LCAgICA1MjM2ODk5LCAgICA1MjIyNzg3LCAgICA1MjA4NzEzLCAgICA1MTk0Njc3LCANCi0gICAgICAgNTE4MDY3OSwgICAgNTE2NjcxOSwgICAgNTE1Mjc5NiwgICAgNTEzODkxMSwgICAgNTEyNTA2MywgICAgNTExMTI1MiwgICAgNTA5NzQ3OSwgICAgNTA4Mzc0MywgICAgNTA3MDA0NCwgICAgNTA1NjM4MiwgICAgNTA0Mjc1NiwgDQotICAgICAgIDUwMjkxNjcsICAgIDUwMTU2MTUsICAgIDUwMDIxMDAsICAgIDQ5ODg2MjAsICAgIDQ5NzUxNzgsICAgIDQ5NjE3NzEsICAgIDQ5NDg0MDAsICAgIDQ5MzUwNjYsICAgIDQ5MjE3NjcsICAgIDQ5MDg1MDUsICAgIDQ4OTUyNzgsIA0KLSAgICAgICA0ODgyMDg2LCAgICA0ODY4OTMxLCAgICA0ODU1ODEwLCAgICA0ODQyNzI1LCAgICA0ODI5Njc2LCAgICA0ODE2NjYxLCAgICA0ODAzNjgyLCAgICA0NzkwNzM3LCAgICA0Nzc3ODI3LCAgICA0NzY0OTUzLCAgICA0NzUyMTEyLCANCi0gICAgICAgNDczOTMwNywgICAgNDcyNjUzNiwgICAgNDcxMzc5OSwgICAgNDcwMTA5NywgICAgNDY4ODQyOSwgICAgNDY3NTc5NSwgICAgNDY2MzE5NSwgICAgNDY1MDYyOSwgICAgNDYzODA5NywgICAgNDYyNTU5OSwgICAgNDYxMzEzNCwgDQotICAgICAgIDQ2MDA3MDMsICAgIDQ1ODgzMDYsICAgIDQ1NzU5NDEsICAgIDQ1NjM2MTEsICAgIDQ1NTEzMTMsICAgIDQ1MzkwNDksICAgIDQ1MjY4MTcsICAgIDQ1MTQ2MTksICAgIDQ1MDI0NTMsICAgIDQ0OTAzMjAsICAgIDQ0NzgyMjAsIA0KLSAgICAgICA0NDY2MTUzLCAgICA0NDU0MTE4LCAgICA0NDQyMTE1LCAgICA0NDMwMTQ1LCAgICA0NDE4MjA3LCAgICA0NDA2MzAxLCAgICA0Mzk0NDI4LCAgICA0MzgyNTg2LCAgICA0MzcwNzc2LCAgICA0MzU4OTk4LCAgICA0MzQ3MjUyLCANCi0gICAgICAgNDMzNTUzOCwgICAgNDMyMzg1NSwgICAgNDMxMjIwMywgICAgNDMwMDU4MywgICAgNDI4ODk5NCwgICAgNDI3NzQzNywgICAgNDI2NTkxMCwgICAgNDI1NDQxNSwgICAgNDI0Mjk1MCwgICAgNDIzMTUxNywgICAgNDIyMDExNCwgDQotICAgICAgIDQyMDg3NDIsICAgIDQxOTc0MDEsICAgIDQxODYwOTAsICAgIDQxNzQ4MTAsICAgIDQxNjM1NjAsICAgIDQxNTIzNDAsICAgIDQxNDExNTEsICAgIDQxMjk5OTIsICAgIDQxMTg4NjMsICAgIDQxMDc3NjQsICAgIDQwOTY2OTQsIA0KLSAgICAgICA0MDg1NjU1LCAgICA0MDc0NjQ1LCAgICA0MDYzNjY1LCAgICA0MDUyNzE1LCAgICA0MDQxNzk0LCAgICA0MDMwOTAzLCAgICA0MDIwMDQxLCAgICA0MDA5MjA4LCAgICAzOTk4NDA0LCAgICAzOTg3NjMwLCAgICAzOTc2ODg0LCANCi0gICAgICAgMzk2NjE2OCwgICAgMzk1NTQ4MCwgICAgMzk0NDgyMSwgICAgMzkzNDE5MSwgICAgMzkyMzU5MCwgICAgMzkxMzAxNywgICAgMzkwMjQ3MiwgICAgMzg5MTk1NiwgICAgMzg4MTQ2OSwgICAgMzg3MTAwOSwgICAgMzg2MDU3OCwgDQotICAgICAgIDM4NTAxNzUsICAgIDM4Mzk4MDAsICAgIDM4Mjk0NTMsICAgIDM4MTkxMzMsICAgIDM4MDg4NDIsICAgIDM3OTg1NzgsICAgIDM3ODgzNDIsICAgIDM3NzgxMzQsICAgIDM3Njc5NTMsICAgIDM3NTc3OTksICAgIDM3NDc2NzMsIA0KLSAgICAgICAzNzM3NTc0LCAgICAzNzI3NTAzLCAgICAzNzE3NDU4LCAgICAzNzA3NDQxLCAgICAzNjk3NDUwLCAgICAzNjg3NDg3LCAgICAzNjc3NTUwLCAgICAzNjY3NjQwLCAgICAzNjU3NzU3LCAgICAzNjQ3OTAwLCAgICAzNjM4MDcwLCANCi0gICAgICAgMzYyODI2NywgICAgMzYxODQ5MCwgICAgMzYwODczOSwgICAgMzU5OTAxNCwgICAgMzU4OTMxNiwgICAgMzU3OTY0NCwgICAgMzU2OTk5OCwgICAgMzU2MDM3OCwgICAgMzU1MDc4MywgICAgMzU0MTIxNSwgICAgMzUzMTY3MywgDQotICAgICAgIDM1MjIxNTYsICAgIDM1MTI2NjUsICAgIDM1MDMxOTksICAgIDM0OTM3NTksICAgIDM0ODQzNDQsICAgIDM0NzQ5NTUsICAgIDM0NjU1OTEsICAgIDM0NTYyNTIsICAgIDM0NDY5MzksICAgIDM0Mzc2NTAsICAgIDM0MjgzODcsIA0KLSAgICAgICAzNDE5MTQ4LCAgICAzNDA5OTM1LCAgICAzNDAwNzQ2LCAgICAzMzkxNTgyLCAgICAzMzgyNDQzLCAgICAzMzczMzI4LCAgICAzMzY0MjM4LCAgICAzMzU1MTcyLCAgICAzMzQ2MTMxLCAgICAzMzM3MTE0LCAgICAzMzI4MTIyLCANCi0gICAgICAgMzMxOTE1MywgICAgMzMxMDIwOSwgICAgMzMwMTI4OSwgICAgMzI5MjM5MywgICAgMzI4MzUyMSwgICAgMzI3NDY3MywgICAgMzI2NTg0OSwgICAgMzI1NzA0OCwgICAgMzI0ODI3MSwgICAgMzIzOTUxOCwgICAgMzIzMDc4OSwgDQotICAgICAgIDMyMjIwODMsICAgIDMyMTM0MDAsICAgIDMyMDQ3NDEsICAgIDMxOTYxMDUsICAgIDMxODc0OTMsICAgIDMxNzg5MDMsICAgIDMxNzAzMzcsICAgIDMxNjE3OTQsICAgIDMxNTMyNzQsICAgIDMxNDQ3NzcsICAgIDMxMzYzMDIsIA0KLSAgICAgICAzMTI3ODUxLCAgICAzMTE5NDIyLCAgICAzMTExMDE2LCAgICAzMTAyNjMzLCAgICAzMDk0MjcyLCAgICAzMDg1OTM0LCAgICAzMDc3NjE5LCAgICAzMDY5MzI1LCAgICAzMDYxMDU0LCAgICAzMDUyODA2LCAgICAzMDQ0NTc5LCANCi0gICAgICAgMzAzNjM3NSwgICAgMzAyODE5MywgICAgMzAyMDAzMywgICAgMzAxMTg5NSwgICAgMzAwMzc3OSwgICAgMjk5NTY4NCwgICAgMjk4NzYxMiwgICAgMjk3OTU2MSwgICAgMjk3MTUzMiwgICAgMjk2MzUyNSwgICAgMjk1NTUzOSwgDQotICAgICAgIDI5NDc1NzUsICAgIDI5Mzk2MzIsICAgIDI5MzE3MTAsICAgIDI5MjM4MTAsICAgIDI5MTU5MzEsICAgIDI5MDgwNzQsICAgIDI5MDAyMzcsICAgIDI4OTI0MjIsICAgIDI4ODQ2MjgsICAgIDI4NzY4NTUsICAgIDI4NjkxMDIsIA0KLSAgICAgICAyODYxMzcxLCAgICAyODUzNjYwLCAgICAyODQ1OTcxLCAgICAyODM4MzAyLCAgICAyODMwNjUzLCAgICAyODIzMDI1LCAgICAyODE1NDE4LCAgICAyODA3ODMyLCAgICAyODAwMjY1LCAgICAyNzkyNzE5LCAgICAyNzg1MTk0LCANCi0gICAgICAgMjc3NzY4OSwgICAgMjc3MDIwMywgICAgMjc2MjczOSwgICAgMjc1NTI5NCwgICAgMjc0Nzg2OSwgICAgMjc0MDQ2NCwgICAgMjczMzA4MCwgICAgMjcyNTcxNSwgICAgMjcxODM3MCwgICAgMjcxMTA0NSwgICAgMjcwMzczOSwgDQotICAgICAgIDI2OTY0NTMsICAgIDI2ODkxODcsICAgIDI2ODE5NDEsICAgIDI2NzQ3MTQsICAgIDI2Njc1MDYsICAgIDI2NjAzMTgsICAgIDI2NTMxNDksICAgIDI2NDYwMDAsICAgIDI2Mzg4NzAsICAgIDI2MzE3NTksICAgIDI2MjQ2NjcsIA0KLSAgICAgICAyNjE3NTk0LCAgICAyNjEwNTQwLCAgICAyNjAzNTA2LCAgICAyNTk2NDkwLCAgICAyNTg5NDkzLCAgICAyNTgyNTE1LCAgICAyNTc1NTU2LCAgICAyNTY4NjE2LCAgICAyNTYxNjk0LCAgICAyNTU0NzkxLCAgICAyNTQ3OTA3LCANCi0gICAgICAgMjU0MTA0MSwgICAgMjUzNDE5NCwgICAgMjUyNzM2NSwgICAgMjUyMDU1NCwgICAgMjUxMzc2MiwgICAgMjUwNjk4OCwgICAgMjUwMDIzMywgICAgMjQ5MzQ5NSwgICAgMjQ4Njc3NiwgICAgMjQ4MDA3NSwgICAgMjQ3MzM5MiwgDQotICAgICAgIDI0NjY3MjcsICAgIDI0NjAwODAsICAgIDI0NTM0NTAsICAgIDI0NDY4MzksICAgIDI0NDAyNDYsICAgIDI0MzM2NzAsICAgIDI0MjcxMTIsICAgIDI0MjA1NzEsICAgIDI0MTQwNDksICAgIDI0MDc1NDQsICAgIDI0MDEwNTYsIA0KLSAgICAgICAyMzk0NTg2LCAgICAyMzg4MTMzLCAgICAyMzgxNjk4LCAgICAyMzc1MjgwLCAgICAyMzY4ODc5LCAgICAyMzYyNDk2LCAgICAyMzU2MTMwLCAgICAyMzQ5NzgwLCAgICAyMzQzNDQ4LCAgICAyMzM3MTM0LCAgICAyMzMwODM2LCANCi0gICAgICAgMjMyNDU1NSwgICAgMjMxODI5MSwgICAgMjMxMjA0NCwgICAgMjMwNTgxMywgICAgMjI5OTYwMCwgICAgMjI5MzQwMywgICAgMjI4NzIyMywgICAgMjI4MTA2MCwgICAgMjI3NDkxMywgICAgMjI2ODc4MywgICAgMjI2MjY2OSwgDQotICAgICAgIDIyNTY1NzIsICAgIDIyNTA0OTEsICAgIDIyNDQ0MjcsICAgIDIyMzgzNzksICAgIDIyMzIzNDcsICAgIDIyMjYzMzEsICAgIDIyMjAzMzIsICAgIDIyMTQzNDksICAgIDIyMDgzODIsICAgIDIyMDI0MzEsICAgIDIxOTY0OTYsIA0KLSAgICAgICAyMTkwNTc3LCAgICAyMTg0Njc0LCAgICAyMTc4Nzg3LCAgICAyMTcyOTE2LCAgICAyMTY3MDYwLCAgICAyMTYxMjIxLCAgICAyMTU1Mzk3LCAgICAyMTQ5NTg5LCAgICAyMTQzNzk2LCAgICAyMTM4MDE5LCAgICAyMTMyMjU4LCANCi0gICAgICAgMjEyNjUxMiwgICAgMjEyMDc4MiwgICAgMjExNTA2NywgICAgMjEwOTM2OCwgICAgMjEwMzY4MywgICAgMjA5ODAxNSwgICAgMjA5MjM2MSwgICAgMjA4NjcyMywgICAgMjA4MTEwMCwgICAgMjA3NTQ5MiwgICAgMjA2OTg5OSwgDQotICAgICAgIDIwNjQzMjEsICAgIDIwNTg3NTgsICAgIDIwNTMyMTEsICAgIDIwNDc2NzgsICAgIDIwNDIxNjAsICAgIDIwMzY2NTcsICAgIDIwMzExNjksICAgIDIwMjU2OTUsICAgIDIwMjAyMzcsICAgIDIwMTQ3OTMsICAgIDIwMDkzNjQsIA0KLSAgICAgICAyMDAzOTQ5LCAgICAxOTk4NTQ5LCAgICAxOTkzMTYzLCAgICAxOTg3NzkyLCAgICAxOTgyNDM2LCAgICAxOTc3MDk0LCAgICAxOTcxNzY2LCAgICAxOTY2NDUzLCAgICAxOTYxMTU0LCAgICAxOTU1ODY5LCAgICAxOTUwNTk5LCANCi0gICAgICAgMTk0NTM0MiwgICAgMTk0MDEwMCwgICAgMTkzNDg3MiwgICAgMTkyOTY1OCwgICAgMTkyNDQ1OCwgICAgMTkxOTI3MiwgICAgMTkxNDEwMSwgICAgMTkwODk0MywgICAgMTkwMzc5OSwgICAgMTg5ODY2OCwgICAgMTg5MzU1MiwgDQotICAgICAgIDE4ODg0NTAsICAgIDE4ODMzNjEsICAgIDE4NzgyODYsICAgIDE4NzMyMjQsICAgIDE4NjgxNzYsICAgIDE4NjMxNDIsICAgIDE4NTgxMjIsICAgIDE4NTMxMTUsICAgIDE4NDgxMjEsICAgIDE4NDMxNDEsICAgIDE4MzgxNzQsIA0KLSAgICAgICAxODMzMjIxLCAgICAxODI4MjgxLCAgICAxODIzMzU0LCAgICAxODE4NDQxLCAgICAxODEzNTQwLCAgICAxODA4NjU0LCAgICAxODAzNzgwLCAgICAxNzk4OTE5LCAgICAxNzk0MDcyLCAgICAxNzg5MjM3LCAgICAxNzg0NDE2LCANCi0gICAgICAgMTc3OTYwNywgICAgMTc3NDgxMiwgICAgMTc3MDAyOSwgICAgMTc2NTI1OSwgICAgMTc2MDUwMiwgICAgMTc1NTc1OCwgICAgMTc1MTAyNywgICAgMTc0NjMwOSwgICAgMTc0MTYwMywgICAgMTczNjkxMCwgICAgMTczMjIyOSwgDQotICAgICAgIDE3Mjc1NjEsICAgIDE3MjI5MDYsICAgIDE3MTgyNjMsICAgIDE3MTM2MzMsICAgIDE3MDkwMTUsICAgIDE3MDQ0MTAsICAgIDE2OTk4MTcsICAgIDE2OTUyMzcsICAgIDE2OTA2NjksICAgIDE2ODYxMTMsICAgIDE2ODE1NjksIA0KLSAgICAgICAxNjc3MDM4LCAgICAxNjcyNTE5LCAgICAxNjY4MDEyLCAgICAxNjYzNTE3LCAgICAxNjU5MDM0LCAgICAxNjU0NTY0LCAgICAxNjUwMTA1LCAgICAxNjQ1NjU5LCAgICAxNjQxMjI0LCAgICAxNjM2ODAxLCAgICAxNjMyMzkxLCANCi0gICAgICAgMTYyNzk5MiwgICAgMTYyMzYwNSwgICAgMTYxOTIzMCwgICAgMTYxNDg2NiwgICAgMTYxMDUxNSwgICAgMTYwNjE3NSwgICAgMTYwMTg0NywgICAgMTU5NzUzMCwgICAgMTU5MzIyNSwgICAgMTU4ODkzMiwgICAgMTU4NDY1MCwgDQotICAgICAgIDE1ODAzODAsICAgIDE1NzYxMjIsICAgIDE1NzE4NzQsICAgIDE1Njc2MzksICAgIDE1NjM0MTQsICAgIDE1NTkyMDEsICAgIDE1NTUwMDAsICAgIDE1NTA4MTAsICAgIDE1NDY2MzEsICAgIDE1NDI0NjMsICAgIDE1MzgzMDYsIA0KLSAgICAgICAxNTM0MTYxLCAgICAxNTMwMDI3LCAgICAxNTI1OTA0LCAgICAxNTIxNzkyLCAgICAxNTE3NjkxLCAgICAxNTEzNjAyLCAgICAxNTA5NTIzLCAgICAxNTA1NDU1LCAgICAxNTAxMzk5LCAgICAxNDk3MzUzLCAgICAxNDkzMzE4LCANCi0gICAgICAgMTQ4OTI5NCwgICAgMTQ4NTI4MSwgICAgMTQ4MTI3OCwgICAgMTQ3NzI4NywgICAgMTQ3MzMwNiwgICAgMTQ2OTMzNiwgICAgMTQ2NTM3NiwgICAgMTQ2MTQyNywgICAgMTQ1NzQ4OSwgICAgMTQ1MzU2MiwgICAgMTQ0OTY0NSwgDQotICAgICAgIDE0NDU3MzgsICAgIDE0NDE4NDMsICAgIDE0Mzc5NTcsICAgIDE0MzQwODIsICAgIDE0MzAyMTgsICAgIDE0MjYzNjQsICAgIDE0MjI1MjAsICAgIDE0MTg2ODcsICAgIDE0MTQ4NjQsICAgIDE0MTEwNTEsICAgIDE0MDcyNDksIA0KLSAgICAgICAxNDAzNDU3LCAgICAxMzk5Njc1LCAgICAxMzk1OTAzLCAgICAxMzkyMTQyLCAgICAxMzg4MzkwLCAgICAxMzg0NjQ5LCAgICAxMzgwOTE4LCAgICAxMzc3MTk3LCAgICAxMzczNDg2LCAgICAxMzY5Nzg0LCAgICAxMzY2MDkzLCANCi0gICAgICAgMTM2MjQxMiwgICAgMTM1ODc0MSwgICAgMTM1NTA3OSwgICAgMTM1MTQyOCwgICAgMTM0Nzc4NiwgICAgMTM0NDE1NCwgICAgMTM0MDUzMiwgICAgMTMzNjkyMCwgICAgMTMzMzMxNywgICAgMTMyOTcyNCwgICAgMTMyNjE0MSwgDQotICAgICAgIDEzMjI1NjcsICAgIDEzMTkwMDQsICAgIDEzMTU0NDksICAgIDEzMTE5MDQsICAgIDEzMDgzNjksICAgIDEzMDQ4NDQsICAgIDEzMDEzMjcsICAgIDEyOTc4MjEsICAgIDEyOTQzMjMsICAgIDEyOTA4MzYsICAgIDEyODczNTcsIA0KLSAgICAgICAxMjgzODg4LCAgICAxMjgwNDI5LCAgICAxMjc2OTc4LCAgICAxMjczNTM3LCAgICAxMjcwMTA1LCAgICAxMjY2NjgzLCAgICAxMjYzMjY5LCAgICAxMjU5ODY1LCAgICAxMjU2NDcwLCAgICAxMjUzMDg0LCAgICAxMjQ5NzA4LCANCi0gICAgICAgMTI0NjM0MCwgICAgMTI0Mjk4MiwgICAgMTIzOTYzMiwgICAgMTIzNjI5MiwgICAgMTIzMjk2MCwgICAgMTIyOTYzOCwgICAgMTIyNjMyNCwgICAgMTIyMzAyMCwgICAgMTIxOTcyNCwgICAgMTIxNjQzNywgICAgMTIxMzE1OSwgDQotICAgICAgIDEyMDk4OTAsICAgIDEyMDY2MzAsICAgIDEyMDMzNzgsICAgIDEyMDAxMzYsICAgIDExOTY5MDIsICAgIDExOTM2NzYsICAgIDExOTA0NjAsICAgIDExODcyNTIsICAgIDExODQwNTIsICAgIDExODA4NjIsICAgIDExNzc2ODAsIA0KLSAgICAgICAxMTc0NTA2LCAgICAxMTcxMzQxLCAgICAxMTY4MTg1LCAgICAxMTY1MDM3LCAgICAxMTYxODk3LCAgICAxMTU4NzY3LCAgICAxMTU1NjQ0LCAgICAxMTUyNTMwLCAgICAxMTQ5NDI0LCAgICAxMTQ2MzI3LCAgICAxMTQzMjM4LCANCi0gICAgICAgMTE0MDE1NywgICAgMTEzNzA4NSwgICAgMTEzNDAyMSwgICAgMTEzMDk2NSwgICAgMTEyNzkxNywgICAgMTEyNDg3OCwgICAgMTEyMTg0NiwgICAgMTExODgyMywgICAgMTExNTgwOSwgICAgMTExMjgwMiwgICAgMTEwOTgwMywgDQotICAgICAgIDExMDY4MTMsICAgIDExMDM4MzAsICAgIDExMDA4NTUsICAgIDEwOTc4ODksICAgIDEwOTQ5MzEsICAgIDEwOTE5ODAsICAgIDEwODkwMzcsICAgIDEwODYxMDMsICAgIDEwODMxNzYsICAgIDEwODAyNTcsICAgIDEwNzczNDYsIA0KLSAgICAgICAxMDc0NDQzLCAgICAxMDcxNTQ4LCAgICAxMDY4NjYwLCAgICAxMDY1NzgxLCAgICAxMDYyOTA5LCAgICAxMDYwMDQ0LCAgICAxMDU3MTg4LCAgICAxMDU0MzM5LCAgICAxMDUxNDk4LCAgICAxMDQ4NjY0LCAgICAxMDQ1ODM5LCANCi0gICAgICAgMTA0MzAyMCwgICAgMTA0MDIxMCwgICAgMTAzNzQwNywgICAgMTAzNDYxMSwgICAgMTAzMTgyMywgICAgMTAyOTA0MywgICAgMTAyNjI3MCwgICAgMTAyMzUwNCwgICAgMTAyMDc0NiwgICAgMTAxNzk5NiwgICAgMTAxNTI1MiwgDQotICAgICAgIDEwMTI1MTcsICAgIDEwMDk3ODgsICAgIDEwMDcwNjcsICAgIDEwMDQzNTMsICAgIDEwMDE2NDcsICAgICA5OTg5NDgsICAgICA5OTYyNTYsICAgICA5OTM1NzEsICAgICA5OTA4OTQsICAgICA5ODgyMjQsICAgICA5ODU1NjEsIA0KLSAgICAgICAgOTgyOTA1LCAgICAgOTgwMjU2LCAgICAgOTc3NjE1LCAgICAgOTc0OTgwLCAgICAgOTcyMzUzLCAgICAgOTY5NzMzLCAgICAgOTY3MTIwLCAgICAgOTY0NTE0LCAgICAgOTYxOTE1LCAgICAgOTU5MzIzLCAgICAgOTU2NzM3LCANCi0gICAgICAgIDk1NDE1OSwgICAgIDk1MTU4OCwgICAgIDk0OTAyNCwgICAgIDk0NjQ2NywgICAgIDk0MzkxNiwgICAgIDk0MTM3MywgICAgIDkzODgzNiwgICAgIDkzNjMwNiwgICAgIDkzMzc4MywgICAgIDkzMTI2NywgICAgIDkyODc1NywgDQotICAgICAgICA5MjYyNTQsICAgICA5MjM3NTgsICAgICA5MjEyNjksICAgICA5MTg3ODcsICAgICA5MTYzMTEsICAgICA5MTM4NDIsICAgICA5MTEzNzksICAgICA5MDg5MjMsICAgICA5MDY0NzQsICAgICA5MDQwMzEsICAgICA5MDE1OTUsIA0KLSAgICAgICAgODk5MTY2LCAgICAgODk2NzQzLCAgICAgODk0MzI2LCAgICAgODkxOTE2LCAgICAgODg5NTEzLCAgICAgODg3MTE2LCAgICAgODg0NzI1LCAgICAgODgyMzQxLCAgICAgODc5OTYzLCAgICAgODc3NTkyLCAgICAgODc1MjI3LCANCi0gICAgICAgIDg3Mjg2OSwgICAgIDg3MDUxNywgICAgIDg2ODE3MSwgICAgIDg2NTgzMSwgICAgIDg2MzQ5OCwgICAgIDg2MTE3MSwgICAgIDg1ODg1MSwgICAgIDg1NjUzNiwgICAgIDg1NDIyOCwgICAgIDg1MTkyNiwgICAgIDg0OTYzMSwgDQotICAgICAgICA4NDczNDEsICAgICA4NDUwNTgsICAgICA4NDI3ODEsICAgICA4NDA1MTAsICAgICA4MzgyNDUsICAgICA4MzU5ODYsICAgICA4MzM3MzMsICAgICA4MzE0ODcsICAgICA4MjkyNDYsICAgICA4MjcwMTEsICAgICA4MjQ3ODMsIA0KLSAgICAgICAgODIyNTYwLCAgICAgODIwMzQ0LCAgICAgODE4MTMzLCAgICAgODE1OTI5LCAgICAgODEzNzMwLCAgICAgODExNTM3LCAgICAgODA5MzUwLCAgICAgODA3MTY5LCAgICAgODA0OTk0LCAgICAgODAyODI1LCAgICAgODAwNjYyLCANCi0gICAgICAgIDc5ODUwNCwgICAgIDc5NjM1MiwgICAgIDc5NDIwNiwgICAgIDc5MjA2NiwgICAgIDc4OTkzMiwgICAgIDc4NzgwMywgICAgIDc4NTY4MCwgICAgIDc4MzU2MywgICAgIDc4MTQ1MiwgICAgIDc3OTM0NiwgICAgIDc3NzI0NiwgDQotICAgICAgICA3NzUxNTEsICAgICA3NzMwNjIsICAgICA3NzA5NzksICAgICA3Njg5MDIsICAgICA3NjY4MzAsICAgICA3NjQ3NjMsICAgICA3NjI3MDMsICAgICA3NjA2NDcsICAgICA3NTg1OTgsICAgICA3NTY1NTMsICAgICA3NTQ1MTUsIA0KLSAgICAgICAgNzUyNDgyLCAgICAgNzUwNDU0LCAgICAgNzQ4NDMyLCAgICAgNzQ2NDE1LCAgICAgNzQ0NDAzLCAgICAgNzQyMzk3LCAgICAgNzQwMzk3LCAgICAgNzM4NDAyLCAgICAgNzM2NDEyLCAgICAgNzM0NDI4LCAgICAgNzMyNDQ4LCANCi0gICAgICAgIDczMDQ3NSwgICAgIDcyODUwNiwgICAgIDcyNjU0MywgICAgIDcyNDU4NSwgICAgIDcyMjYzMywgICAgIDcyMDY4NiwgICAgIDcxODc0NCwgICAgIDcxNjgwNywgICAgIDcxNDg3NSwgICAgIDcxMjk0OSwgICAgIDcxMTAyOCwgDQotICAgICAgICA3MDkxMTIsICAgICA3MDcyMDEsICAgICA3MDUyOTUsICAgICA3MDMzOTQsICAgICA3MDE0OTksICAgICA2OTk2MDksICAgICA2OTc3MjMsICAgICA2OTU4NDMsICAgICA2OTM5NjgsICAgICA2OTIwOTgsICAgICA2OTAyMzMsIA0KLSAgICAgICAgNjg4MzczLCAgICAgNjg2NTE4LCAgICAgNjg0NjY4LCAgICAgNjgyODIzLCAgICAgNjgwOTgzLCAgICAgNjc5MTQ4LCAgICAgNjc3MzE4LCAgICAgNjc1NDkzLCAgICAgNjczNjczLCAgICAgNjcxODU3LCAgICAgNjcwMDQ3LCANCi0gICAgICAgIDY2ODI0MSwgICAgIDY2NjQ0MSwgICAgIDY2NDY0NSwgICAgIDY2Mjg1NCwgICAgIDY2MTA2NywgICAgIDY1OTI4NiwgICAgIDY1NzUxMCwgICAgIDY1NTczOCwgICAgIDY1Mzk3MSwgICAgIDY1MjIwOCwgICAgIDY1MDQ1MSwgDQotICAgICAgICA2NDg2OTgsICAgICA2NDY5NTAsICAgICA2NDUyMDcsICAgICA2NDM0NjgsICAgICA2NDE3MzQsICAgICA2NDAwMDUsICAgICA2MzgyODAsICAgICA2MzY1NjAsICAgICA2MzQ4NDUsICAgICA2MzMxMzQsICAgICA2MzE0MjgsIA0KLSAgICAgICAgNjI5NzI3LCAgICAgNjI4MDMwLCAgICAgNjI2MzM3LCAgICAgNjI0NjUwLCAgICAgNjIyOTY2LCAgICAgNjIxMjg4LCAgICAgNjE5NjEzLCAgICAgNjE3OTQ0LCAgICAgNjE2Mjc5LCAgICAgNjE0NjE4LCAgICAgNjEyOTYyLCANCi0gICAgICAgIDYxMTMxMCwgICAgIDYwOTY2MywgICAgIDYwODAyMCwgICAgIDYwNjM4MSwgICAgIDYwNDc0NywgICAgIDYwMzExOCwgICAgIDYwMTQ5MiwgICAgIDU5OTg3MiwgICAgIDU5ODI1NSwgICAgIDU5NjY0MywgICAgIDU5NTAzNSwgDQotICAgICAgICA1OTM0MzIsICAgICA1OTE4MzMsICAgICA1OTAyMzgsICAgICA1ODg2NDcsICAgICA1ODcwNjEsICAgICA1ODU0NzksICAgICA1ODM5MDEsICAgICA1ODIzMjgsICAgICA1ODA3NTksICAgICA1NzkxOTQsICAgICA1Nzc2MzMsIA0KLSAgICAgICAgNTc2MDc2LCAgICAgNTc0NTI0LCAgICAgNTcyOTc2LCAgICAgNTcxNDMyLCAgICAgNTY5ODkyLCAgICAgNTY4MzU2LCAgICAgNTY2ODI1LCAgICAgNTY1Mjk3LCAgICAgNTYzNzc0LCAgICAgNTYyMjU1LCAgICAgNTYwNzQwLCANCi0gICAgICAgIDU1OTIyOSwgICAgIDU1NzcyMiwgICAgIDU1NjIxOSwgICAgIDU1NDcyMCwgICAgIDU1MzIyNSwgICAgIDU1MTczNCwgICAgIDU1MDI0OCwgICAgIDU0ODc2NSwgICAgIDU0NzI4NiwgICAgIDU0NTgxMSwgICAgIDU0NDM0MSwgDQotICAgICAgICA1NDI4NzQsICAgICA1NDE0MTEsICAgICA1Mzk5NTIsICAgICA1Mzg0OTcsICAgICA1MzcwNDYsICAgICA1MzU1OTksICAgICA1MzQxNTUsICAgICA1MzI3MTYsICAgICA1MzEyODAsICAgICA1Mjk4NDksICAgICA1Mjg0MjEsIA0KLSAgICAgICAgNTI2OTk3LCAgICAgNTI1NTc3LCAgICAgNTI0MTYxLCAgICAgNTIyNzQ4LCAgICAgNTIxMzQwLCAgICAgNTE5OTM1LCAgICAgNTE4NTM0LCAgICAgNTE3MTM2LCAgICAgNTE1NzQzLCAgICAgNTE0MzUzLCAgICAgNTEyOTY3LCANCi0gICAgICAgIDUxMTU4NSwgICAgIDUxMDIwNiwgICAgIDUwODgzMSwgICAgIDUwNzQ2MCwgICAgIDUwNjA5MywgICAgIDUwNDcyOSwgICAgIDUwMzM2OSwgICAgIDUwMjAxMiwgICAgIDUwMDY2MCwgICAgIDQ5OTMxMCwgICAgIDQ5Nzk2NSwgDQotICAgICAgICA0OTY2MjMsICAgICA0OTUyODUsICAgICA0OTM5NTAsICAgICA0OTI2MTksICAgICA0OTEyOTIsICAgICA0ODk5NjgsICAgICA0ODg2NDgsICAgICA0ODczMzEsICAgICA0ODYwMTgsICAgICA0ODQ3MDgsICAgICA0ODM0MDIsIA0KLSAgICAgICAgNDgyMDk5LCAgICAgNDgwODAwLCAgICAgNDc5NTA0LCAgICAgNDc4MjEyLCAgICAgNDc2OTI0LCAgICAgNDc1NjM4LCAgICAgNDc0MzU3LCAgICAgNDczMDc4LCAgICAgNDcxODA0LCAgICAgNDcwNTMyLCAgICAgNDY5MjY0LCANCi0gICAgICAgIDQ2ODAwMCwgICAgIDQ2NjczOSwgICAgIDQ2NTQ4MSwgICAgIDQ2NDIyNywgICAgIDQ2Mjk3NiwgICAgIDQ2MTcyOCwgICAgIDQ2MDQ4NCwgICAgIDQ1OTI0MywgICAgIDQ1ODAwNSwgICAgIDQ1Njc3MSwgICAgIDQ1NTU0MCwgDQotICAgICAgICA0NTQzMTMsICAgICA0NTMwODksICAgICA0NTE4NjgsICAgICA0NTA2NTAsICAgICA0NDk0MzYsICAgICA0NDgyMjUsICAgICA0NDcwMTcsICAgICA0NDU4MTIsICAgICA0NDQ2MTEsICAgICA0NDM0MTMsICAgICA0NDIyMTgsIA0KLSAgICAgICAgNDQxMDI2LCAgICAgNDM5ODM4LCAgICAgNDM4NjUzLCAgICAgNDM3NDcwLCAgICAgNDM2MjkyLCAgICAgNDM1MTE2LCAgICAgNDMzOTQzLCAgICAgNDMyNzc0LCAgICAgNDMxNjA4LCAgICAgNDMwNDQ1LCAgICAgNDI5Mjg1LCANCi0gICAgICAgIDQyODEyOCwgICAgIDQyNjk3NCwgICAgIDQyNTgyNCwgICAgIDQyNDY3NiwgICAgIDQyMzUzMiwgICAgIDQyMjM5MSwgICAgIDQyMTI1MiwgICAgIDQyMDExNywgICAgIDQxODk4NSwgICAgIDQxNzg1NiwgICAgIDQxNjczMCwgDQotICAgICAgICA0MTU2MDcsICAgICA0MTQ0ODcsICAgICA0MTMzNzAsICAgICA0MTIyNTYsICAgICA0MTExNDYsICAgICA0MTAwMzgsICAgICA0MDg5MzMsICAgICA0MDc4MzEsICAgICA0MDY3MzIsICAgICA0MDU2MzYsICAgICA0MDQ1NDMsIA0KLSAgICAgICAgNDAzNDUzLCAgICAgNDAyMzY1LCAgICAgNDAxMjgxLCAgICAgNDAwMjAwLCAgICAgMzk5MTIxLCAgICAgMzk4MDQ2LCAgICAgMzk2OTczLCAgICAgMzk1OTAzLCAgICAgMzk0ODM3LCAgICAgMzkzNzczLCAgICAgMzkyNzEyLCANCi0gICAgICAgIDM5MTY1MywgICAgIDM5MDU5OCwgICAgIDM4OTU0NSwgICAgIDM4ODQ5NiwgICAgIDM4NzQ0OSwgICAgIDM4NjQwNSwgICAgIDM4NTM2MywgICAgIDM4NDMyNSwgICAgIDM4MzI4OSwgICAgIDM4MjI1NywgICAgIDM4MTIyNiwgDQotICAgICAgICAzODAxOTksICAgICAzNzkxNzUsICAgICAzNzgxNTMsICAgICAzNzcxMzQsICAgICAzNzYxMTgsICAgICAzNzUxMDQsICAgICAzNzQwOTMsICAgICAzNzMwODUsICAgICAzNzIwODAsICAgICAzNzEwNzcsICAgICAzNzAwNzcsIA0KLSAgICAgICAgMzY5MDgwLCAgICAgMzY4MDg1LCAgICAgMzY3MDk0LCAgICAgMzY2MTA0LCAgICAgMzY1MTE4LCAgICAgMzY0MTM0LCAgICAgMzYzMTUzLCAgICAgMzYyMTc0LCAgICAgMzYxMTk4LCAgICAgMzYwMjI1LCAgICAgMzU5MjU0LCANCi0gICAgICAgIDM1ODI4NiwgICAgIDM1NzMyMSwgICAgIDM1NjM1OCwgICAgIDM1NTM5NywgICAgIDM1NDQ0MCwgICAgIDM1MzQ4NSwgICAgIDM1MjUzMiwgICAgIDM1MTU4MiwgICAgIDM1MDYzNSwgICAgIDM0OTY5MCwgICAgIDM0ODc0OCwgDQotICAgICAgICAzNDc4MDgsICAgICAzNDY4NzEsICAgICAzNDU5MzYsICAgICAzNDUwMDQsICAgICAzNDQwNzQsICAgICAzNDMxNDcsICAgICAzNDIyMjIsICAgICAzNDEzMDAsICAgICAzNDAzODAsICAgICAzMzk0NjMsICAgICAzMzg1NDgsIA0KLSAgICAgICAgMzM3NjM2LCAgICAgMzM2NzI2LCAgICAgMzM1ODE5LCAgICAgMzM0OTE0LCAgICAgMzM0MDExLCAgICAgMzMzMTExLCAgICAgMzMyMjE0LCAgICAgMzMxMzE4LCAgICAgMzMwNDI2LCAgICAgMzI5NTM1LCAgICAgMzI4NjQ3LCANCi0gICAgICAgIDMyNzc2MiwgICAgIDMyNjg3OCwgICAgIDMyNTk5NywgICAgIDMyNTExOSwgICAgIDMyNDI0MywgICAgIDMyMzM2OSwgICAgIDMyMjQ5OCwgICAgIDMyMTYyOSwgICAgIDMyMDc2MiwgICAgIDMxOTg5OCwgICAgIDMxOTAzNiwgDQotICAgICAgICAzMTgxNzYsICAgICAzMTczMTksICAgICAzMTY0NjMsICAgICAzMTU2MTEsICAgICAzMTQ3NjAsICAgICAzMTM5MTIsICAgICAzMTMwNjYsICAgICAzMTIyMjIsICAgICAzMTEzODEsICAgICAzMTA1NDIsICAgICAzMDk3MDUsIA0KLSAgICAgICAgMzA4ODcxLCAgICAgMzA4MDM4LCAgICAgMzA3MjA4LCAgICAgMzA2MzgwLCAgICAgMzA1NTU1LCAgICAgMzA0NzMxLCAgICAgMzAzOTEwLCAgICAgMzAzMDkxLCAgICAgMzAyMjc1LCAgICAgMzAxNDYwLCAgICAgMzAwNjQ4LCANCi0gICAgICAgIDI5OTgzOCwgICAgIDI5OTAzMCwgICAgIDI5ODIyNCwgICAgIDI5NzQyMCwgICAgIDI5NjYxOSwgICAgIDI5NTgxOSwgICAgIDI5NTAyMiwgICAgIDI5NDIyNywgICAgIDI5MzQzNCwgICAgIDI5MjY0NCwgICAgIDI5MTg1NSwgDQotICAgICAgICAyOTEwNjksICAgICAyOTAyODQsICAgICAyODk1MDIsICAgICAyODg3MjIsICAgICAyODc5NDQsICAgICAyODcxNjgsICAgICAyODYzOTQsICAgICAyODU2MjIsICAgICAyODQ4NTMsICAgICAyODQwODUsICAgICAyODMzMjAsIA0KLSAgICAgICAgMjgyNTU2LCAgICAgMjgxNzk1LCAgICAgMjgxMDM1LCAgICAgMjgwMjc4LCAgICAgMjc5NTIzLCAgICAgMjc4NzcwLCAgICAgMjc4MDE4LCAgICAgMjc3MjY5LCAgICAgMjc2NTIyLCAgICAgMjc1Nzc3LCAgICAgMjc1MDM0LCANCi0gICAgICAgIDI3NDI5MywgICAgIDI3MzU1MywgICAgIDI3MjgxNiwgICAgIDI3MjA4MSwgICAgIDI3MTM0OCwgICAgIDI3MDYxNywgICAgIDI2OTg4OCwgICAgIDI2OTE2MCwgICAgIDI2ODQzNSwgICAgIDI2NzcxMiwgICAgIDI2Njk5MCwgDQotICAgICAgICAyNjYyNzEsICAgICAyNjU1NTMsICAgICAyNjQ4MzgsICAgICAyNjQxMjQsICAgICAyNjM0MTIsICAgICAyNjI3MDIsICAgICAyNjE5OTQsICAgICAyNjEyODksICAgICAyNjA1ODQsICAgICAyNTk4ODIsICAgICAyNTkxODIsIA0KLSAgICAgICAgMjU4NDgzLCAgICAgMjU3Nzg3LCAgICAgMjU3MDkyLCAgICAgMjU2Mzk5LCAgICAgMjU1NzA5LCAgICAgMjU1MDIwLCAgICAgMjU0MzMyLCAgICAgMjUzNjQ3LCAgICAgMjUyOTYzLCAgICAgMjUyMjgyLCAgICAgMjUxNjAyLCANCi0gICAgICAgIDI1MDkyNCwgICAgIDI1MDI0OCwgICAgIDI0OTU3MywgICAgIDI0ODkwMSwgICAgIDI0ODIzMCwgICAgIDI0NzU2MSwgICAgIDI0Njg5NCwgICAgIDI0NjIyOSwgICAgIDI0NTU2NSwgICAgIDI0NDkwNCwgICAgIDI0NDI0NCwgDQotICAgICAgICAyNDM1ODYsICAgICAyNDI5MjksICAgICAyNDIyNzUsICAgICAyNDE2MjIsICAgICAyNDA5NzEsICAgICAyNDAzMjEsICAgICAyMzk2NzQsICAgICAyMzkwMjgsICAgICAyMzgzODQsICAgICAyMzc3NDEsICAgICAyMzcxMDEsIA0KLSAgICAgICAgMjM2NDYyLCAgICAgMjM1ODI1LCAgICAgMjM1MTg5LCAgICAgMjM0NTU1LCAgICAgMjMzOTIzLCAgICAgMjMzMjkzLCAgICAgMjMyNjY0LCAgICAgMjMyMDM3LCAgICAgMjMxNDEyLCAgICAgMjMwNzg4LCAgICAgMjMwMTY2LCANCi0gICAgICAgIDIyOTU0NiwgICAgIDIyODkyOCwgICAgIDIyODMxMSwgICAgIDIyNzY5NiwgICAgIDIyNzA4MiwgICAgIDIyNjQ3MCwgICAgIDIyNTg2MCwgICAgIDIyNTI1MSwgICAgIDIyNDY0NCwgICAgIDIyNDAzOSwgICAgIDIyMzQzNSwgDQotICAgICAgICAyMjI4MzMsICAgICAyMjIyMzMsICAgICAyMjE2MzQsICAgICAyMjEwMzYsICAgICAyMjA0NDEsICAgICAyMTk4NDcsICAgICAyMTkyNTQsICAgICAyMTg2NjQsICAgICAyMTgwNzQsICAgICAyMTc0ODcsICAgICAyMTY5MDEsIA0KLSAgICAgICAgMjE2MzE2LCAgICAgMjE1NzMzLCAgICAgMjE1MTUyLCAgICAgMjE0NTcyLCAgICAgMjEzOTk0LCAgICAgMjEzNDE3LCAgICAgMjEyODQyLCAgICAgMjEyMjY5LCAgICAgMjExNjk3LCAgICAgMjExMTI2LCAgICAgMjEwNTU3LCANCi0gICAgICAgIDIwOTk5MCwgICAgIDIwOTQyNCwgICAgIDIwODg2MCwgICAgIDIwODI5NywgICAgIDIwNzczNSwgICAgIDIwNzE3NiwgICAgIDIwNjYxNywgICAgIDIwNjA2MSwgICAgIDIwNTUwNSwgICAgIDIwNDk1MiwgICAgIDIwNDM5OSwgDQotICAgICAgICAyMDM4NDksICAgICAyMDMyOTksICAgICAyMDI3NTEsICAgICAyMDIyMDUsICAgICAyMDE2NjAsICAgICAyMDExMTcsICAgICAyMDA1NzUsICAgICAyMDAwMzQsICAgICAxOTk0OTUsICAgICAxOTg5NTgsICAgICAxOTg0MjIsIA0KLSAgICAgICAgMTk3ODg3LCAgICAgMTk3MzU0LCAgICAgMTk2ODIyLCAgICAgMTk2MjkxLCAgICAgMTk1NzYyLCAgICAgMTk1MjM1LCAgICAgMTk0NzA5LCAgICAgMTk0MTg0LCAgICAgMTkzNjYxLCAgICAgMTkzMTM5LCAgICAgMTkyNjE5LCANCi0gICAgICAgIDE5MjEwMCwgICAgIDE5MTU4MiwgICAgIDE5MTA2NiwgICAgIDE5MDU1MSwgICAgIDE5MDAzNywgICAgIDE4OTUyNSwgICAgIDE4OTAxNCwgICAgIDE4ODUwNSwgICAgIDE4Nzk5NywgICAgIDE4NzQ5MSwgICAgIDE4Njk4NSwgDQotICAgICAgICAxODY0ODEsICAgICAxODU5NzksICAgICAxODU0NzgsICAgICAxODQ5NzgsICAgICAxODQ0NzksICAgICAxODM5ODIsICAgICAxODM0ODcsICAgICAxODI5OTIsICAgICAxODI0OTksICAgICAxODIwMDcsICAgICAxODE1MTcsIA0KLSAgICAgICAgMTgxMDI4LCAgICAgMTgwNTQwLCAgICAgMTgwMDUzLCAgICAgMTc5NTY4LCAgICAgMTc5MDg0LCAgICAgMTc4NjAyLCAgICAgMTc4MTIwLCAgICAgMTc3NjQwLCAgICAgMTc3MTYyLCAgICAgMTc2Njg0LCAgICAgMTc2MjA4LCANCi0gICAgICAgIDE3NTczMywgICAgIDE3NTI2MCwgICAgIDE3NDc4OCwgICAgIDE3NDMxNywgICAgIDE3Mzg0NywgICAgIDE3MzM3OCwgICAgIDE3MjkxMSwgICAgIDE3MjQ0NSwgICAgIDE3MTk4MSwgICAgIDE3MTUxNywgICAgIDE3MTA1NSwgDQotICAgICAgICAxNzA1OTQsICAgICAxNzAxMzQsICAgICAxNjk2NzYsICAgICAxNjkyMTksICAgICAxNjg3NjMsICAgICAxNjgzMDgsICAgICAxNjc4NTQsICAgICAxNjc0MDIsICAgICAxNjY5NTEsICAgICAxNjY1MDEsICAgICAxNjYwNTIsIA0KLSAgICAgICAgMTY1NjA1LCAgICAgMTY1MTU5LCAgICAgMTY0NzEzLCAgICAgMTY0MjcwLCAgICAgMTYzODI3LCAgICAgMTYzMzg2LCAgICAgMTYyOTQ1LCAgICAgMTYyNTA2LCAgICAgMTYyMDY4LCAgICAgMTYxNjMyLCAgICAgMTYxMTk2LCANCi0gICAgICAgIDE2MDc2MiwgICAgIDE2MDMyOCwgICAgIDE1OTg5NiwgICAgIDE1OTQ2NSwgICAgIDE1OTAzNiwgICAgIDE1ODYwNywgICAgIDE1ODE4MCwgICAgIDE1Nzc1NCwgICAgIDE1NzMyOCwgICAgIDE1NjkwNCwgICAgIDE1NjQ4MiwgDQotICAgICAgICAxNTYwNjAsICAgICAxNTU2MzksICAgICAxNTUyMjAsICAgICAxNTQ4MDIsICAgICAxNTQzODUsICAgICAxNTM5NjksICAgICAxNTM1NTQsICAgICAxNTMxNDAsICAgICAxNTI3MjcsICAgICAxNTIzMTYsICAgICAxNTE5MDUsIA0KLSAgICAgICAgMTUxNDk2LCAgICAgMTUxMDg4LCAgICAgMTUwNjgxLCAgICAgMTUwMjc1LCAgICAgMTQ5ODcwLCAgICAgMTQ5NDY2LCAgICAgMTQ5MDYzLCAgICAgMTQ4NjYxLCAgICAgMTQ4MjYxLCAgICAgMTQ3ODYxLCAgICAgMTQ3NDYzLCANCi0gICAgICAgIDE0NzA2NSwgICAgIDE0NjY2OSwgICAgIDE0NjI3NCwgICAgIDE0NTg4MCwgICAgIDE0NTQ4NywgICAgIDE0NTA5NCwgICAgIDE0NDcwMywgICAgIDE0NDMxNCwgICAgIDE0MzkyNSwgICAgIDE0MzUzNywgICAgIDE0MzE1MCwgDQotICAgICAgICAxNDI3NjQsICAgICAxNDIzODAsICAgICAxNDE5OTYsICAgICAxNDE2MTMsICAgICAxNDEyMzIsICAgICAxNDA4NTEsICAgICAxNDA0NzIsICAgICAxNDAwOTMsICAgICAxMzk3MTUsICAgICAxMzkzMzksICAgICAxMzg5NjQsIA0KLSAgICAgICAgMTM4NTg5LCAgICAgMTM4MjE2LCAgICAgMTM3ODQzLCAgICAgMTM3NDcyLCAgICAgMTM3MTAxLCAgICAgMTM2NzMyLCAgICAgMTM2MzYzLCAgICAgMTM1OTk2LCAgICAgMTM1NjI5LCAgICAgMTM1MjY0LCAgICAgMTM0ODk5LCANCi0gICAgICAgIDEzNDUzNiwgICAgIDEzNDE3MywgICAgIDEzMzgxMiwgICAgIDEzMzQ1MSwgICAgIDEzMzA5MiwgICAgIDEzMjczMywgICAgIDEzMjM3NSwgICAgIDEzMjAxOSwgICAgIDEzMTY2MywgICAgIDEzMTMwOCwgICAgIDEzMDk1NCwgDQotICAgICAgICAxMzA2MDEsICAgICAxMzAyNDksICAgICAxMjk4OTgsICAgICAxMjk1NDgsICAgICAxMjkxOTksICAgICAxMjg4NTEsICAgICAxMjg1MDQsICAgICAxMjgxNTgsICAgICAxMjc4MTIsICAgICAxMjc0NjgsICAgICAxMjcxMjQsIA0KLSAgICAgICAgMTI2NzgyLCAgICAgMTI2NDQwLCAgICAgMTI2MDk5LCAgICAgMTI1NzYwLCAgICAgMTI1NDIxLCAgICAgMTI1MDgzLCAgICAgMTI0NzQ2LCAgICAgMTI0NDEwLCAgICAgMTI0MDc0LCAgICAgMTIzNzQwLCAgICAgMTIzNDA3LCANCi0gICAgICAgIDEyMzA3NCwgICAgIDEyMjc0MiwgICAgIDEyMjQxMiwgICAgIDEyMjA4MiwgICAgIDEyMTc1MywgICAgIDEyMTQyNSwgICAgIDEyMTA5NywgICAgIDEyMDc3MSwgICAgIDEyMDQ0NiwgICAgIDEyMDEyMSwgICAgIDExOTc5NywgDQotICAgICAgICAxMTk0NzUsICAgICAxMTkxNTMsICAgICAxMTg4MzIsICAgICAxMTg1MTEsICAgICAxMTgxOTIsICAgICAxMTc4NzMsICAgICAxMTc1NTYsICAgICAxMTcyMzksICAgICAxMTY5MjMsICAgICAxMTY2MDgsICAgICAxMTYyOTQsIA0KLSAgICAgICAgMTE1OTgwLCAgICAgMTE1NjY4LCAgICAgMTE1MzU2LCAgICAgMTE1MDQ1LCAgICAgMTE0NzM1LCAgICAgMTE0NDI2LCAgICAgMTE0MTE4LCAgICAgMTEzODEwLCAgICAgMTEzNTA0LCAgICAgMTEzMTk4LCAgICAgMTEyODkzLCANCi0gICAgICAgIDExMjU4OSwgICAgIDExMjI4NSwgICAgIDExMTk4MywgICAgIDExMTY4MSwgICAgIDExMTM4MCwgICAgIDExMTA4MCwgICAgIDExMDc4MCwgICAgIDExMDQ4MiwgICAgIDExMDE4NCwgICAgIDEwOTg4NywgICAgIDEwOTU5MSwgDQotICAgICAgICAxMDkyOTYsICAgICAxMDkwMDEsICAgICAxMDg3MDgsICAgICAxMDg0MTUsICAgICAxMDgxMjIsICAgICAxMDc4MzEsICAgICAxMDc1NDEsICAgICAxMDcyNTEsICAgICAxMDY5NjIsICAgICAxMDY2NzQsICAgICAxMDYzODYsIA0KLSAgICAgICAgMTA2MDk5LCAgICAgMTA1ODEzLCAgICAgMTA1NTI4LCAgICAgMTA1MjQ0LCAgICAgMTA0OTYwLCAgICAgMTA0Njc4LCAgICAgMTA0Mzk1LCAgICAgMTA0MTE0LCAgICAgMTAzODM0LCAgICAgMTAzNTU0LCAgICAgMTAzMjc1LCANCi0gICAgICAgIDEwMjk5NiwgICAgIDEwMjcxOSwgICAgIDEwMjQ0MiwgICAgIDEwMjE2NiwgICAgIDEwMTg5MSwgICAgIDEwMTYxNiwgICAgIDEwMTM0MiwgICAgIDEwMTA2OSwgICAgIDEwMDc5NywgICAgIDEwMDUyNSwgICAgIDEwMDI1NCwgDQotICAgICAgICAgOTk5ODQsICAgICAgOTk3MTUsICAgICAgOTk0NDYsICAgICAgOTkxNzgsICAgICAgOTg5MTEsICAgICAgOTg2NDQsICAgICAgOTgzNzgsICAgICAgOTgxMTMsICAgICAgOTc4NDksICAgICAgOTc1ODUsICAgICAgOTczMjIsIA0KLSAgICAgICAgIDk3MDYwLCAgICAgIDk2Nzk5LCAgICAgIDk2NTM4LCAgICAgIDk2Mjc4LCAgICAgIDk2MDE4LCAgICAgIDk1NzU5LCAgICAgIDk1NTAxLCAgICAgIDk1MjQ0LCAgICAgIDk0OTg3LCAgICAgIDk0NzMxLCAgICAgIDk0NDc2LCANCi0gICAgICAgICA5NDIyMiwgICAgICA5Mzk2OCwgICAgICA5MzcxNCwgICAgICA5MzQ2MiwgICAgICA5MzIxMCwgICAgICA5Mjk1OSwgICAgICA5MjcwOCwgICAgICA5MjQ1OSwgICAgICA5MjIwOSwgICAgICA5MTk2MSwgICAgICA5MTcxMywgDQotICAgICAgICAgOTE0NjYsICAgICAgOTEyMTksICAgICAgOTA5NzQsICAgICAgOTA3MjksICAgICAgOTA0ODQsICAgICAgOTAyNDAsICAgICAgODk5OTcsICAgICAgODk3NTQsICAgICAgODk1MTMsICAgICAgODkyNzEsICAgICAgODkwMzEsIA0KLSAgICAgICAgIDg4NzkxLCAgICAgIDg4NTUyLCAgICAgIDg4MzEzLCAgICAgIDg4MDc1LCAgICAgIDg3ODM4LCAgICAgIDg3NjAxLCAgICAgIDg3MzY1LCAgICAgIDg3MTMwLCAgICAgIDg2ODk1LCAgICAgIDg2NjYxLCAgICAgIDg2NDI3LCANCi0gICAgICAgICA4NjE5NCwgICAgICA4NTk2MiwgICAgICA4NTczMCwgICAgICA4NTQ5OSwgICAgICA4NTI2OSwgICAgICA4NTAzOSwgICAgICA4NDgxMCwgICAgICA4NDU4MSwgICAgICA4NDM1MywgICAgICA4NDEyNiwgICAgICA4Mzg5OSwgDQotICAgICAgICAgODM2NzMsICAgICAgODM0NDgsICAgICAgODMyMjMsICAgICAgODI5OTksICAgICAgODI3NzUsICAgICAgODI1NTIsICAgICAgODIzMzAsICAgICAgODIxMDgsICAgICAgODE4ODYsICAgICAgODE2NjYsICAgICAgODE0NDYsIA0KLSAgICAgICAgIDgxMjI2LCAgICAgIDgxMDA3LCAgICAgIDgwNzg5LCAgICAgIDgwNTcxLCAgICAgIDgwMzU0LCAgICAgIDgwMTM4LCAgICAgIDc5OTIyLCAgICAgIDc5NzA2LCAgICAgIDc5NDkyLCAgICAgIDc5Mjc3LCAgICAgIDc5MDY0LCANCi0gICAgICAgICA3ODg1MSwgICAgICA3ODYzOCwgICAgICA3ODQyNiwgICAgICA3ODIxNSwgICAgICA3ODAwNCwgICAgICA3Nzc5NCwgICAgICA3NzU4NCwgICAgICA3NzM3NSwgICAgICA3NzE2NywgICAgICA3Njk1OSwgICAgICA3Njc1MiwgDQotICAgICAgICAgNzY1NDUsICAgICAgNzYzMzgsICAgICAgNzYxMzMsICAgICAgNzU5MjgsICAgICAgNzU3MjMsICAgICAgNzU1MTksICAgICAgNzUzMTUsICAgICAgNzUxMTIsICAgICAgNzQ5MTAsICAgICAgNzQ3MDgsICAgICAgNzQ1MDcsIA0KLSAgICAgICAgIDc0MzA2LCAgICAgIDc0MTA2LCAgICAgIDczOTA2LCAgICAgIDczNzA3LCAgICAgIDczNTA4LCAgICAgIDczMzEwLCAgICAgIDczMTEzLCAgICAgIDcyOTE2LCAgICAgIDcyNzE5LCAgICAgIDcyNTIzLCAgICAgIDcyMzI4LCANCi0gICAgICAgICA3MjEzMywgICAgICA3MTkzOSwgICAgICA3MTc0NSwgICAgICA3MTU1MSwgICAgICA3MTM1OSwgICAgICA3MTE2NiwgICAgICA3MDk3NSwgICAgICA3MDc4MywgICAgICA3MDU5MywgICAgICA3MDQwMiwgICAgICA3MDIxMywgDQotICAgICAgICAgNzAwMjMsICAgICAgNjk4MzUsICAgICAgNjk2NDYsICAgICAgNjk0NTksICAgICAgNjkyNzIsICAgICAgNjkwODUsICAgICAgNjg4OTksICAgICAgNjg3MTMsICAgICAgNjg1MjgsICAgICAgNjgzNDMsICAgICAgNjgxNTksIA0KLSAgICAgICAgIDY3OTc1LCAgICAgIDY3NzkyLCAgICAgIDY3NjEwLCAgICAgIDY3NDI3LCAgICAgIDY3MjQ2LCAgICAgIDY3MDY1LCAgICAgIDY2ODg0LCAgICAgIDY2NzA0LCAgICAgIDY2NTI0LCAgICAgIDY2MzQ1LCAgICAgIDY2MTY2LCANCi0gICAgICAgICA2NTk4NywgICAgICA2NTgxMCwgICAgICA2NTYzMiwgICAgICA2NTQ1NSwgICAgICA2NTI3OSwgICAgICA2NTEwMywgICAgICA2NDkyOCwgICAgICA2NDc1MywgICAgICA2NDU3OCwgICAgICA2NDQwNCwgICAgICA2NDIzMSwgDQotICAgICAgICAgNjQwNTgsICAgICAgNjM4ODUsICAgICAgNjM3MTMsICAgICAgNjM1NDEsICAgICAgNjMzNzAsICAgICAgNjMxOTksICAgICAgNjMwMjksICAgICAgNjI4NTksICAgICAgNjI2OTAsICAgICAgNjI1MjEsICAgICAgNjIzNTIsIA0KLSAgICAgICAgIDYyMTg0LCAgICAgIDYyMDE3LCAgICAgIDYxODUwLCAgICAgIDYxNjgzLCAgICAgIDYxNTE3LCAgICAgIDYxMzUxLCAgICAgIDYxMTg2LCAgICAgIDYxMDIxLCAgICAgIDYwODU2LCAgICAgIDYwNjkyLCAgICAgIDYwNTI5LCANCi0gICAgICAgICA2MDM2NiwgICAgICA2MDIwMywgICAgICA2MDA0MSwgICAgICA1OTg3OSwgICAgICA1OTcxOCwgICAgICA1OTU1NywgICAgICA1OTM5NiwgICAgICA1OTIzNiwgICAgICA1OTA3NiwgICAgICA1ODkxNywgICAgICA1ODc1OCwgDQotICAgICAgICAgNTg2MDAsICAgICAgNTg0NDIsICAgICAgNTgyODUsICAgICAgNTgxMjgsICAgICAgNTc5NzEsICAgICAgNTc4MTUsICAgICAgNTc2NTksICAgICAgNTc1MDQsICAgICAgNTczNDksICAgICAgNTcxOTQsICAgICAgNTcwNDAsIA0KLSAgICAgICAgIDU2ODg2LCAgICAgIDU2NzMzLCAgICAgIDU2NTgwLCAgICAgIDU2NDI4LCAgICAgIDU2Mjc2LCAgICAgIDU2MTI0LCAgICAgIDU1OTczLCAgICAgIDU1ODIyLCAgICAgIDU1NjcxLCAgICAgIDU1NTIxLCAgICAgIDU1MzcyLCANCi0gICAgICAgICA1NTIyMywgICAgICA1NTA3NCwgICAgICA1NDkyNSwgICAgICA1NDc3NywgICAgICA1NDYzMCwgICAgICA1NDQ4MywgICAgICA1NDMzNiwgICAgICA1NDE4OSwgICAgICA1NDA0MywgICAgICA1Mzg5OCwgICAgICA1Mzc1MiwgDQotICAgICAgICAgNTM2MDgsICAgICAgNTM0NjMsICAgICAgNTMzMTksICAgICAgNTMxNzUsICAgICAgNTMwMzIsICAgICAgNTI4ODksICAgICAgNTI3NDcsICAgICAgNTI2MDUsICAgICAgNTI0NjMsICAgICAgNTIzMjEsICAgICAgNTIxODAsIA0KLSAgICAgICAgIDUyMDQwLCAgICAgIDUxOTAwLCAgICAgIDUxNzYwLCAgICAgIDUxNjIwLCAgICAgIDUxNDgxLCAgICAgIDUxMzQyLCAgICAgIDUxMjA0LCAgICAgIDUxMDY2LCAgICAgIDUwOTI4LCAgICAgIDUwNzkxLCAgICAgIDUwNjU0LCANCi0gICAgICAgICA1MDUxOCwgICAgICA1MDM4MiwgICAgICA1MDI0NiwgICAgICA1MDExMSwgICAgICA0OTk3NiwgICAgICA0OTg0MSwgICAgICA0OTcwNywgICAgICA0OTU3MywgICAgICA0OTQzOSwgICAgICA0OTMwNiwgICAgICA0OTE3MywgDQotICAgICAgICAgNDkwNDAsICAgICAgNDg5MDgsICAgICAgNDg3NzYsICAgICAgNDg2NDUsICAgICAgNDg1MTQsICAgICAgNDgzODMsICAgICAgNDgyNTMsICAgICAgNDgxMjMsICAgICAgNDc5OTMsICAgICAgNDc4NjQsICAgICAgNDc3MzUsIA0KLSAgICAgICAgIDQ3NjA2LCAgICAgIDQ3NDc4LCAgICAgIDQ3MzUwLCAgICAgIDQ3MjIyLCAgICAgIDQ3MDk1LCAgICAgIDQ2OTY4LCAgICAgIDQ2ODQyLCAgICAgIDQ2NzE1LCAgICAgIDQ2NTkwLCAgICAgIDQ2NDY0LCAgICAgIDQ2MzM5LCANCi0gICAgICAgICA0NjIxNCwgICAgICA0NjA4OSwgICAgICA0NTk2NSwgICAgICA0NTg0MSwgICAgICA0NTcxOCwgICAgICA0NTU5NSwgICAgICA0NTQ3MiwgICAgICA0NTM0OSwgICAgICA0NTIyNywgICAgICA0NTEwNSwgICAgICA0NDk4NCwgDQotICAgICAgICAgNDQ4NjIsICAgICAgNDQ3NDEsICAgICAgNDQ2MjEsICAgICAgNDQ1MDEsICAgICAgNDQzODEsICAgICAgNDQyNjEsICAgICAgNDQxNDIsICAgICAgNDQwMjMsICAgICAgNDM5MDQsICAgICAgNDM3ODYsICAgICAgNDM2NjgsIA0KLSAgICAgICAgIDQzNTUwLCAgICAgIDQzNDMzLCAgICAgIDQzMzE2LCAgICAgIDQzMTk5LCAgICAgIDQzMDgzLCAgICAgIDQyOTY3LCAgICAgIDQyODUxLCAgICAgIDQyNzM1LCAgICAgIDQyNjIwLCAgICAgIDQyNTA1LCAgICAgIDQyMzkxLCANCi0gICAgICAgICA0MjI3NywgICAgICA0MjE2MywgICAgICA0MjA0OSwgICAgICA0MTkzNiwgICAgICA0MTgyMywgICAgICA0MTcxMCwgICAgICA0MTU5OCwgICAgICA0MTQ4NiwgICAgICA0MTM3NCwgICAgICA0MTI2MiwgICAgICA0MTE1MSwgDQotICAgICAgICAgNDEwNDAsICAgICAgNDA5MzAsICAgICAgNDA4MTksICAgICAgNDA3MDksICAgICAgNDA2MDAsICAgICAgNDA0OTAsICAgICAgNDAzODEsICAgICAgNDAyNzIsICAgICAgNDAxNjQsICAgICAgNDAwNTYsICAgICAgMzk5NDgsIA0KLSAgICAgICAgIDM5ODQwLCAgICAgIDM5NzMzLCAgICAgIDM5NjI2LCAgICAgIDM5NTE5LCAgICAgIDM5NDEyLCAgICAgIDM5MzA2LCAgICAgIDM5MjAwLCAgICAgIDM5MDk0LCAgICAgIDM4OTg5LCAgICAgIDM4ODg0LCAgICAgIDM4Nzc5LCANCi0gICAgICAgICAzODY3NSwgICAgICAzODU3MSwgICAgICAzODQ2NywgICAgICAzODM2MywgICAgICAzODI2MCwgICAgICAzODE1NywgICAgICAzODA1NCwgICAgICAzNzk1MSwgICAgICAzNzg0OSwgICAgICAzNzc0NywgICAgICAzNzY0NSwgDQotICAgICAgICAgMzc1NDQsICAgICAgMzc0NDMsICAgICAgMzczNDIsICAgICAgMzcyNDEsICAgICAgMzcxNDEsICAgICAgMzcwNDEsICAgICAgMzY5NDEsICAgICAgMzY4NDEsICAgICAgMzY3NDIsICAgICAgMzY2NDMsICAgICAgMzY1NDQsIA0KLSAgICAgICAgIDM2NDQ2LCAgICAgIDM2MzQ3LCAgICAgIDM2MjUwLCAgICAgIDM2MTUyLCAgICAgIDM2MDU0LCAgICAgIDM1OTU3LCAgICAgIDM1ODYwLCAgICAgIDM1NzY0LCAgICAgIDM1NjY3LCAgICAgIDM1NTcxLCAgICAgIDM1NDc1LCANCi0gICAgICAgICAzNTM4MCwgICAgICAzNTI4NCwgICAgICAzNTE4OSwgICAgICAzNTA5NSwgICAgICAzNTAwMCwgICAgICAzNDkwNiwgICAgICAzNDgxMiwgICAgICAzNDcxOCwgICAgICAzNDYyNCwgICAgICAzNDUzMSwgICAgICAzNDQzOCwgDQotICAgICAgICAgMzQzNDUsICAgICAgMzQyNTMsICAgICAgMzQxNjAsICAgICAgMzQwNjgsICAgICAgMzM5NzYsICAgICAgMzM4ODUNCi19Ow0KLQ0KLXN0YXRpYyBjb25zdCBzaG9ydCBzaW5kYl9jb2VmZltdID0gew0KLQkyNDAxLCAyMTQ0LCAxOTk0LCAxODg3LCAxODA0LCAxNzM3LCAxNjgwLCAxNjMwLCAxNTg3LCAxNTQ4LCAxNTEyLCAxNDgwLCAxNDUwLCANCi0gICAgMTQyMywgMTM5NywgMTM3MywgMTM1MSwgMTMzMCwgMTMxMCwgMTI5MSwgMTI3MywgMTI1NSwgMTIzOSwgMTIyMywgMTIwOCwgMTE5NCwgDQotICAgIDExODAsIDExNjYsIDExNTMsIDExNDEsIDExMjgsIDExMTcsIDExMDUsIDEwOTQsIDEwODQsIDEwNzMsIDEwNjMsIDEwNTMsIDEwNDMsIA0KLSAgICAxMDM0LCAxMDI1LCAxMDE2LCAxMDA3LCAgOTk5LCAgOTkwLCAgOTgyLCAgOTc0LCAgOTY3LCAgOTU5LCAgOTUyLCAgOTQ0LCAgOTM3LCANCi0gICAgIDkzMCwgIDkyMywgIDkxNiwgIDkxMCwgIDkwMywgIDg5NywgIDg5MCwgIDg4NCwgIDg3OCwgIDg3MiwgIDg2NiwgIDg2MCwgIDg1NSwgDQotICAgICA4NDksICA4NDMsICA4MzgsICA4MzIsICA4MjcsICA4MjIsICA4MTcsICA4MTIsICA4MDcsICA4MDIsICA3OTcsICA3OTIsICA3ODcsIA0KLSAgICAgNzgzLCAgNzc4LCAgNzczLCAgNzY5LCAgNzY0LCAgNzYwLCAgNzU2LCAgNzUxLCAgNzQ3LCAgNzQzLCAgNzM5LCAgNzM0LCAgNzMwLCANCi0gICAgIDcyNiwgIDcyMiwgIDcxOCwgIDcxNSwgIDcxMSwgIDcwNywgIDcwMywgIDY5OSwgIDY5NiwgIDY5MiwgIDY4OCwgIDY4NSwgIDY4MSwgDQotICAgICA2NzgsICA2NzQsICA2NzEsICA2NjcsICA2NjQsICA2NjEsICA2NTcsICA2NTQsICA2NTEsICA2NDgsICA2NDQsICA2NDEsICA2MzgsIA0KLSAgICAgNjM1LCAgNjMyLCAgNjI5LCAgNjI2LCAgNjIzLCAgNjIwLCAgNjE3LCAgNjE0LCAgNjExLCAgNjA4LCAgNjA1LCAgNjAyLCAgNTk5LCANCi0gICAgIDU5NywgIDU5NCwgIDU5MSwgIDU4OCwgIDU4NiwgIDU4MywgIDU4MCwgIDU3OCwgIDU3NSwgIDU3MiwgIDU3MCwgIDU2NywgIDU2NSwgDQotICAgICA1NjIsICA1NjAsICA1NTcsICA1NTUsICA1NTIsICA1NTAsICA1NDcsICA1NDUsICA1NDIsICA1NDAsICA1MzgsICA1MzUsICA1MzMsIA0KLSAgICAgNTMxLCAgNTI4LCAgNTI2LCAgNTI0LCAgNTIyLCAgNTE5LCAgNTE3LCAgNTE1LCAgNTEzLCAgNTEwLCAgNTA4LCAgNTA2LCAgNTA0LCANCi0gICAgIDUwMiwgIDUwMCwgIDQ5OCwgIDQ5NSwgIDQ5MywgIDQ5MSwgIDQ4OSwgIDQ4NywgIDQ4NSwgIDQ4MywgIDQ4MSwgIDQ3OSwgIDQ3NywgDQotICAgICA0NzUsICA0NzMsICA0NzEsICA0NjksICA0NjcsICA0NjUsICA0NjQsICA0NjIsICA0NjAsICA0NTgsICA0NTYsICA0NTQsICA0NTIsIA0KLSAgICAgNDUwLCAgNDQ5LCAgNDQ3LCAgNDQ1LCAgNDQzLCAgNDQxLCAgNDQwLCAgNDM4LCAgNDM2LCAgNDM0LCAgNDMzLCAgNDMxLCAgNDI5LCANCi0gICAgIDQyNywgIDQyNiwgIDQyNCwgIDQyMiwgIDQyMSwgIDQxOSwgIDQxNywgIDQxNiwgIDQxNCwgIDQxMiwgIDQxMSwgIDQwOSwgIDQwOCwgDQotICAgICA0MDYsICA0MDQsICA0MDMsICA0MDEsICA0MDAsICAzOTgsICAzOTYsICAzOTUsICAzOTMsICAzOTIsICAzOTAsICAzODksICAzODcsIA0KLSAgICAgMzg2LCAgMzg0LCAgMzgzLCAgMzgxLCAgMzgwLCAgMzc4LCAgMzc3LCAgMzc1LCAgMzc0LCAgMzcyLCAgMzcxLCAgMzcwLCAgMzY4LCANCi0gICAgIDM2NywgIDM2NSwgIDM2NCwgIDM2MiwgIDM2MSwgIDM2MCwgIDM1OCwgIDM1NywgIDM1NSwgIDM1NCwgIDM1MywgIDM1MSwgIDM1MCwgDQotICAgICAzNDksICAzNDcsICAzNDYsICAzNDUsICAzNDMsICAzNDIsICAzNDEsICAzMzksICAzMzgsICAzMzcsICAzMzYsICAzMzQsICAzMzMsIA0KLSAgICAgMzMyLCAgMzMwLCAgMzI5LCAgMzI4LCAgMzI3LCAgMzI1LCAgMzI0LCAgMzIzLCAgMzIyLCAgMzIwLCAgMzE5LCAgMzE4LCAgMzE3LCANCi0gICAgIDMxNiwgIDMxNCwgIDMxMywgIDMxMiwgIDMxMSwgIDMxMCwgIDMwOCwgIDMwNywgIDMwNiwgIDMwNSwgIDMwNCwgIDMwMywgIDMwMSwgDQotICAgICAzMDAsICAyOTksICAyOTgsICAyOTcsICAyOTYsICAyOTUsICAyOTMsICAyOTIsICAyOTEsICAyOTAsICAyODksICAyODgsICAyODcsIA0KLSAgICAgMjg2LCAgMjg1LCAgMjg0LCAgMjgyLCAgMjgxLCAgMjgwLCAgMjc5LCAgMjc4LCAgMjc3LCAgMjc2LCAgMjc1LCAgMjc0LCAgMjczLCANCi0gICAgIDI3MiwgIDI3MSwgIDI3MCwgIDI2OSwgIDI2OCwgIDI2NywgIDI2NiwgIDI2NSwgIDI2NCwgIDI2MywgIDI2MiwgIDI2MSwgIDI2MCwgDQotICAgICAyNTksICAyNTgsICAyNTcsICAyNTYsICAyNTUsICAyNTQsICAyNTMsICAyNTIsICAyNTEsICAyNTAsICAyNDksICAyNDgsICAyNDcsIA0KLSAgICAgMjQ2LCAgMjQ1LCAgMjQ0LCAgMjQzLCAgMjQyLCAgMjQxLCAgMjQwLCAgMjQwLCAgMjM5LCAgMjM4LCAgMjM3LCAgMjM2LCAgMjM1LCANCi0gICAgIDIzNCwgIDIzMywgIDIzMiwgIDIzMSwgIDIzMCwgIDIzMCwgIDIyOSwgIDIyOCwgIDIyNywgIDIyNiwgIDIyNSwgIDIyNCwgIDIyMywgDQotICAgICAyMjIsICAyMjIsICAyMjEsICAyMjAsICAyMTksICAyMTgsICAyMTcsICAyMTYsICAyMTYsICAyMTUsICAyMTQsICAyMTMsICAyMTIsIA0KLSAgICAgMjExLCAgMjExLCAgMjEwLCAgMjA5LCAgMjA4LCAgMjA3LCAgMjA2LCAgMjA2LCAgMjA1LCAgMjA0LCAgMjAzLCAgMjAyLCAgMjAyLCANCi0gICAgIDIwMSwgIDIwMCwgIDE5OSwgIDE5OCwgIDE5OCwgIDE5NywgIDE5NiwgIDE5NSwgIDE5NSwgIDE5NCwgIDE5MywgIDE5MiwgIDE5MSwgDQotICAgICAxOTEsICAxOTAsICAxODksICAxODgsICAxODgsICAxODcsICAxODYsICAxODUsICAxODUsICAxODQsICAxODMsICAxODIsICAxODIsIA0KLSAgICAgMTgxLCAgMTgwLCAgMTgwLCAgMTc5LCAgMTc4LCAgMTc3LCAgMTc3LCAgMTc2LCAgMTc1LCAgMTc0LCAgMTc0LCAgMTczLCAgMTcyLCANCi0gICAgIDE3MiwgIDE3MSwgIDE3MCwgIDE3MCwgIDE2OSwgIDE2OCwgIDE2NywgIDE2NywgIDE2NiwgIDE2NSwgIDE2NSwgIDE2NCwgIDE2MywgDQotICAgICAxNjMsICAxNjIsICAxNjEsICAxNjEsICAxNjAsICAxNTksICAxNTksICAxNTgsICAxNTcsICAxNTcsICAxNTYsICAxNTUsICAxNTUsIA0KLSAgICAgMTU0LCAgMTUzLCAgMTUzLCAgMTUyLCAgMTUxLCAgMTUxLCAgMTUwLCAgMTUwLCAgMTQ5LCAgMTQ4LCAgMTQ4LCAgMTQ3LCAgMTQ2LCANCi0gICAgIDE0NiwgIDE0NSwgIDE0NSwgIDE0NCwgIDE0MywgIDE0MywgIDE0MiwgIDE0MSwgIDE0MSwgIDE0MCwgIDE0MCwgIDEzOSwgIDEzOCwgDQotICAgICAxMzgsICAxMzcsICAxMzcsICAxMzYsICAxMzUsICAxMzUsICAxMzQsICAxMzQsICAxMzMsICAxMzMsICAxMzIsICAxMzEsICAxMzEsIA0KLSAgICAgMTMwLCAgMTMwLCAgMTI5LCAgMTI5LCAgMTI4LCAgMTI3LCAgMTI3LCAgMTI2LCAgMTI2LCAgMTI1LCAgMTI1LCAgMTI0LCAgMTIzLCANCi0gICAgIDEyMywgIDEyMiwgIDEyMiwgIDEyMSwgIDEyMSwgIDEyMCwgIDEyMCwgIDExOSwgIDExOSwgIDExOCwgIDExNywgIDExNywgIDExNiwgDQotICAgICAxMTYsICAxMTUsICAxMTUsICAxMTQsICAxMTQsICAxMTMsICAxMTMsICAxMTIsICAxMTIsICAxMTEsICAxMTEsICAxMTAsICAxMTAsIA0KLSAgICAgMTA5LCAgMTA5LCAgMTA4LCAgMTA4LCAgMTA3LCAgMTA3LCAgMTA2LCAgMTA2LCAgMTA1LCAgMTA1LCAgMTA0LCAgMTA0LCAgMTAzLCANCi0gICAgIDEwMywgIDEwMiwgIDEwMiwgIDEwMSwgIDEwMSwgIDEwMCwgIDEwMCwgICA5OSwgICA5OSwgICA5OCwgICA5OCwgICA5NywgICA5NywgDQotICAgICAgOTYsICAgOTYsICAgOTUsICAgOTUsICAgOTQsICAgOTQsICAgOTQsICAgOTMsICAgOTMsICAgOTIsICAgOTIsICAgOTEsICAgOTEsIA0KLSAgICAgIDkwLCAgIDkwLCAgIDg5LCAgIDg5LCAgIDg5LCAgIDg4LCAgIDg4LCAgIDg3LCAgIDg3LCAgIDg2LCAgIDg2LCAgIDg1LCAgIDg1LCANCi0gICAgICA4NSwgICA4NCwgICA4NCwgICA4MywgICA4MywgICA4MiwgICA4MiwgICA4MiwgICA4MSwgICA4MSwgICA4MCwgICA4MCwgICA3OSwgDQotICAgICAgNzksICAgNzksICAgNzgsICAgNzgsICAgNzcsICAgNzcsICAgNzcsICAgNzYsICAgNzYsICAgNzUsICAgNzUsICAgNzUsICAgNzQsIA0KLSAgICAgIDc0LCAgIDczLCAgIDczLCAgIDczLCAgIDcyLCAgIDcyLCAgIDcxLCAgIDcxLCAgIDcxLCAgIDcwLCAgIDcwLCAgIDY5LCAgIDY5LCANCi0gICAgICA2OSwgICA2OCwgICA2OCwgICA2OCwgICA2NywgICA2NywgICA2NiwgICA2NiwgICA2NiwgICA2NSwgICA2NSwgICA2NSwgICA2NCwgDQotICAgICAgNjQsICAgNjMsICAgNjMsICAgNjMsICAgNjIsICAgNjIsICAgNjIsICAgNjEsICAgNjEsICAgNjEsICAgNjAsICAgNjAsICAgNTksIA0KLSAgICAgIDU5LCAgIDU5LCAgIDU4LCAgIDU4LCAgIDU4LCAgIDU3LCAgIDU3LCAgIDU3LCAgIDU2LCAgIDU2LCAgIDU2LCAgIDU1LCAgIDU1LCANCi0gICAgICA1NSwgICA1NCwgICA1NCwgICA1NCwgICA1MywgICA1MywgICA1MywgICA1MiwgICA1MiwgICA1MiwgICA1MSwgICA1MSwgICA1MSwgDQotICAgICAgNTAsICAgNTAsICAgNTAsICAgNDksICAgNDksICAgNDksICAgNDksICAgNDgsICAgNDgsICAgNDgsICAgNDcsICAgNDcsICAgNDcsIA0KLSAgICAgIDQ2LCAgIDQ2LCAgIDQ2LCAgIDQ1LCAgIDQ1LCAgIDQ1LCAgIDQ1LCAgIDQ0LCAgIDQ0LCAgIDQ0LCAgIDQzLCAgIDQzLCAgIDQzLCANCi0gICAgICA0MywgICA0MiwgICA0MiwgICA0MiwgICA0MSwgICA0MSwgICA0MSwgICA0MCwgICA0MCwgICA0MCwgICA0MCwgICAzOSwgICAzOSwgDQotICAgICAgMzksICAgMzksICAgMzgsICAgMzgsICAgMzgsICAgMzcsICAgMzcsICAgMzcsICAgMzcsICAgMzYsICAgMzYsICAgMzYsICAgMzYsIA0KLSAgICAgIDM1LCAgIDM1LCAgIDM1LCAgIDM1LCAgIDM0LCAgIDM0LCAgIDM0LCAgIDM0LCAgIDMzLCAgIDMzLCAgIDMzLCAgIDMyLCAgIDMyLCANCi0gICAgICAzMiwgICAzMiwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMSwgICAzMCwgICAzMCwgICAzMCwgICAzMCwgICAyOSwgICAyOSwgDQotICAgICAgMjksICAgMjksICAgMjgsICAgMjgsICAgMjgsICAgMjgsICAgMjcsICAgMjcsICAgMjcsICAgMjcsICAgMjcsICAgMjYsICAgMjYsIA0KLSAgICAgIDI2LCAgIDI2LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDIzLCAgIDIzLCANCi0gICAgICAyMywgICAyMywgICAyMywgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMiwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgICAyMSwgDQotICAgICAgMjAsICAgMjAsICAgMjAsICAgMjAsICAgMjAsICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTksICAgMTgsICAgMTgsIA0KLSAgICAgIDE4LCAgIDE4LCAgIDE4LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE2LCAgIDE2LCAgIDE2LCAgIDE2LCANCi0gICAgICAxNiwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNSwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgICAxNCwgDQotICAgICAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTMsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsIA0KLSAgICAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCANCi0gICAgICAxMCwgICAxMCwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOSwgICAgOCwgICAgOCwgICAgOCwgICAgOCwgDQotICAgICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDgsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsICAgIDcsIA0KLSAgICAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA1LCAgICA1LCAgICA1LCANCi0gICAgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgICAgNCwgDQotICAgICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDMsIA0KLSAgICAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCANCi0gICAgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMiwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgDQotICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLSAgICAgICAxLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0gICAgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotICAgICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIA0KLSAgICAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwDQotfTsNCi0NCi0NCi1zdGF0aWMgY29uc3Qgc2hvcnQgbGZvX2ZyZXFfY29lZmZbXSA9IHsNCi0gICAgICAgIDAsICAgIDMsICAgIDYsICAgIDksICAgMTIsICAgMTUsICAgMTgsICAgMjEsICAgMjUsICAgMjgsICAgMzEsICAgMzQsICAgMzcsIA0KLSAgICAgIDQwLCAgIDQzLCAgIDQ2LCAgIDUwLCAgIDUzLCAgIDU2LCAgIDU5LCAgIDYyLCAgIDY1LCAgIDY4LCAgIDcxLCAgIDc0LCAgIDc4LCANCi0gICAgICA4MSwgICA4NCwgICA4NywgICA5MCwgICA5MywgICA5NiwgICA5OSwgIDEwMiwgIDEwNSwgIDEwOCwgIDExMSwgIDExNSwgIDExOCwgDQotICAgICAxMjEsICAxMjQsICAxMjcsICAxMzAsICAxMzMsICAxMzYsICAxMzksICAxNDIsICAxNDUsICAxNDgsICAxNTEsICAxNTQsICAxNTcsIA0KLSAgICAgMTYwLCAgMTYzLCAgMTY2LCAgMTY5LCAgMTcyLCAgMTc1LCAgMTc4LCAgMTgwLCAgMTgzLCAgMTg2LCAgMTg5LCAgMTkyLCAgMTk1LCANCi0gICAgIDE5OCwgIDIwMSwgIDIwNCwgIDIwNywgIDIwOSwgIDIxMiwgIDIxNSwgIDIxOCwgIDIyMSwgIDIyNCwgIDIyNiwgIDIyOSwgIDIzMiwgDQotICAgICAyMzUsICAyMzgsICAyNDAsICAyNDMsICAyNDYsICAyNDksICAyNTEsICAyNTQsICAyNTcsICAyNjAsICAyNjIsICAyNjUsICAyNjgsIA0KLSAgICAgMjcwLCAgMjczLCAgMjc2LCAgMjc4LCAgMjgxLCAgMjgzLCAgMjg2LCAgMjg5LCAgMjkxLCAgMjk0LCAgMjk2LCAgMjk5LCAgMzAxLCANCi0gICAgIDMwNCwgIDMwNiwgIDMwOSwgIDMxMSwgIDMxNCwgIDMxNiwgIDMxOSwgIDMyMSwgIDMyNCwgIDMyNiwgIDMyOCwgIDMzMSwgIDMzMywgDQotICAgICAzMzYsICAzMzgsICAzNDAsICAzNDMsICAzNDUsICAzNDcsICAzNTAsICAzNTIsICAzNTQsICAzNTYsICAzNTksICAzNjEsICAzNjMsIA0KLSAgICAgMzY1LCAgMzY3LCAgMzcwLCAgMzcyLCAgMzc0LCAgMzc2LCAgMzc4LCAgMzgwLCAgMzgyLCAgMzg0LCAgMzg2LCAgMzg4LCAgMzkxLCANCi0gICAgIDM5MywgIDM5NSwgIDM5NiwgIDM5OCwgIDQwMCwgIDQwMiwgIDQwNCwgIDQwNiwgIDQwOCwgIDQxMCwgIDQxMiwgIDQxNCwgIDQxNSwgDQotICAgICA0MTcsICA0MTksICA0MjEsICA0MjMsICA0MjQsICA0MjYsICA0MjgsICA0MzAsICA0MzEsICA0MzMsICA0MzUsICA0MzYsICA0MzgsIA0KLSAgICAgNDM5LCAgNDQxLCAgNDQzLCAgNDQ0LCAgNDQ2LCAgNDQ3LCAgNDQ5LCAgNDUwLCAgNDUyLCAgNDUzLCAgNDU1LCAgNDU2LCAgNDU3LCANCi0gICAgIDQ1OSwgIDQ2MCwgIDQ2MSwgIDQ2MywgIDQ2NCwgIDQ2NSwgIDQ2NywgIDQ2OCwgIDQ2OSwgIDQ3MCwgIDQ3MiwgIDQ3MywgIDQ3NCwgDQotICAgICA0NzUsICA0NzYsICA0NzcsICA0NzgsICA0ODAsICA0ODEsICA0ODIsICA0ODMsICA0ODQsICA0ODUsICA0ODYsICA0ODcsICA0ODgsIA0KLSAgICAgNDg4LCAgNDg5LCAgNDkwLCAgNDkxLCAgNDkyLCAgNDkzLCAgNDk0LCAgNDk0LCAgNDk1LCAgNDk2LCAgNDk3LCAgNDk3LCAgNDk4LCANCi0gICAgIDQ5OSwgIDQ5OSwgIDUwMCwgIDUwMSwgIDUwMSwgIDUwMiwgIDUwMiwgIDUwMywgIDUwNCwgIDUwNCwgIDUwNCwgIDUwNSwgIDUwNSwgDQotICAgICA1MDYsICA1MDYsICA1MDcsICA1MDcsICA1MDcsICA1MDgsICA1MDgsICA1MDgsICA1MDksICA1MDksICA1MDksICA1MDksICA1MTAsIA0KLSAgICAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTExLCAgNTEwLCAgNTEwLCAgNTEwLCANCi0gICAgIDUxMCwgIDUxMCwgIDUxMCwgIDUxMCwgIDUxMCwgIDUxMCwgIDUxMCwgIDUwOSwgIDUwOSwgIDUwOSwgIDUwOSwgIDUwOCwgIDUwOCwgDQotICAgICA1MDgsICA1MDcsICA1MDcsICA1MDcsICA1MDYsICA1MDYsICA1MDUsICA1MDUsICA1MDQsICA1MDQsICA1MDQsICA1MDMsICA1MDIsIA0KLSAgICAgNTAyLCAgNTAxLCAgNTAxLCAgNTAwLCAgNDk5LCAgNDk5LCAgNDk4LCAgNDk3LCAgNDk3LCAgNDk2LCAgNDk1LCAgNDk0LCAgNDk0LCANCi0gICAgIDQ5MywgIDQ5MiwgIDQ5MSwgIDQ5MCwgIDQ4OSwgIDQ4OCwgIDQ4OCwgIDQ4NywgIDQ4NiwgIDQ4NSwgIDQ4NCwgIDQ4MywgIDQ4MiwgDQotICAgICA0ODEsICA0ODAsICA0NzgsICA0NzcsICA0NzYsICA0NzUsICA0NzQsICA0NzMsICA0NzIsICA0NzAsICA0NjksICA0NjgsICA0NjcsIA0KLSAgICAgNDY1LCAgNDY0LCAgNDYzLCAgNDYxLCAgNDYwLCAgNDU5LCAgNDU3LCAgNDU2LCAgNDU1LCAgNDUzLCAgNDUyLCAgNDUwLCAgNDQ5LCANCi0gICAgIDQ0NywgIDQ0NiwgIDQ0NCwgIDQ0MywgIDQ0MSwgIDQzOSwgIDQzOCwgIDQzNiwgIDQzNSwgIDQzMywgIDQzMSwgIDQzMCwgIDQyOCwgDQotICAgICA0MjYsICA0MjQsICA0MjMsICA0MjEsICA0MTksICA0MTcsICA0MTUsICA0MTQsICA0MTIsICA0MTAsICA0MDgsICA0MDYsICA0MDQsIA0KLSAgICAgNDAyLCAgNDAwLCAgMzk4LCAgMzk2LCAgMzk1LCAgMzkzLCAgMzkxLCAgMzg4LCAgMzg2LCAgMzg0LCAgMzgyLCAgMzgwLCAgMzc4LCANCi0gICAgIDM3NiwgIDM3NCwgIDM3MiwgIDM3MCwgIDM2NywgIDM2NSwgIDM2MywgIDM2MSwgIDM1OSwgIDM1NiwgIDM1NCwgIDM1MiwgIDM1MCwgDQotICAgICAzNDcsICAzNDUsICAzNDMsICAzNDAsICAzMzgsICAzMzYsICAzMzMsICAzMzEsICAzMjgsICAzMjYsICAzMjQsICAzMjEsICAzMTksIA0KLSAgICAgMzE2LCAgMzE0LCAgMzExLCAgMzA5LCAgMzA2LCAgMzA0LCAgMzAxLCAgMjk5LCAgMjk2LCAgMjk0LCAgMjkxLCAgMjg5LCAgMjg2LCANCi0gICAgIDI4MywgIDI4MSwgIDI3OCwgIDI3NiwgIDI3MywgIDI3MCwgIDI2OCwgIDI2NSwgIDI2MiwgIDI2MCwgIDI1NywgIDI1NCwgIDI1MSwgDQotICAgICAyNDksICAyNDYsICAyNDMsICAyNDAsICAyMzgsICAyMzUsICAyMzIsICAyMjksICAyMjYsICAyMjQsICAyMjEsICAyMTgsICAyMTUsIA0KLSAgICAgMjEyLCAgMjA5LCAgMjA3LCAgMjA0LCAgMjAxLCAgMTk4LCAgMTk1LCAgMTkyLCAgMTg5LCAgMTg2LCAgMTgzLCAgMTgwLCAgMTc4LCANCi0gICAgIDE3NSwgIDE3MiwgIDE2OSwgIDE2NiwgIDE2MywgIDE2MCwgIDE1NywgIDE1NCwgIDE1MSwgIDE0OCwgIDE0NSwgIDE0MiwgIDEzOSwgDQotICAgICAxMzYsICAxMzMsICAxMzAsICAxMjcsICAxMjQsICAxMjEsICAxMTgsICAxMTUsICAxMTEsICAxMDgsICAxMDUsICAxMDIsICAgOTksIA0KLSAgICAgIDk2LCAgIDkzLCAgIDkwLCAgIDg3LCAgIDg0LCAgIDgxLCAgIDc4LCAgIDc0LCAgIDcxLCAgIDY4LCAgIDY1LCAgIDYyLCAgIDU5LCANCi0gICAgICA1NiwgICA1MywgICA1MCwgICA0NiwgICA0MywgICA0MCwgICAzNywgICAzNCwgICAzMSwgICAyOCwgICAyNSwgICAyMSwgICAxOCwgDQotICAgICAgMTUsICAgMTIsICAgIDksICAgIDYsICAgIDMsICAgIDAsICAgLTMsICAgLTYsICAgLTksICAtMTIsICAtMTUsICAtMTgsICAtMjEsIA0KLSAgICAgLTI1LCAgLTI4LCAgLTMxLCAgLTM0LCAgLTM3LCAgLTQwLCAgLTQzLCAgLTQ2LCAgLTUwLCAgLTUzLCAgLTU2LCAgLTU5LCAgLTYyLCANCi0gICAgIC02NSwgIC02OCwgIC03MSwgIC03NCwgIC03OCwgIC04MSwgIC04NCwgIC04NywgIC05MCwgIC05MywgIC05NiwgIC05OSwgLTEwMiwgDQotICAgIC0xMDUsIC0xMDgsIC0xMTEsIC0xMTUsIC0xMTgsIC0xMjEsIC0xMjQsIC0xMjcsIC0xMzAsIC0xMzMsIC0xMzYsIC0xMzksIC0xNDIsIA0KLSAgICAtMTQ1LCAtMTQ4LCAtMTUxLCAtMTU0LCAtMTU3LCAtMTYwLCAtMTYzLCAtMTY2LCAtMTY5LCAtMTcyLCAtMTc1LCAtMTc4LCAtMTgwLCANCi0gICAgLTE4MywgLTE4NiwgLTE4OSwgLTE5MiwgLTE5NSwgLTE5OCwgLTIwMSwgLTIwNCwgLTIwNywgLTIwOSwgLTIxMiwgLTIxNSwgLTIxOCwgDQotICAgIC0yMjEsIC0yMjQsIC0yMjYsIC0yMjksIC0yMzIsIC0yMzUsIC0yMzgsIC0yNDAsIC0yNDMsIC0yNDYsIC0yNDksIC0yNTEsIC0yNTQsIA0KLSAgICAtMjU3LCAtMjYwLCAtMjYyLCAtMjY1LCAtMjY4LCAtMjcwLCAtMjczLCAtMjc2LCAtMjc4LCAtMjgxLCAtMjgzLCAtMjg2LCAtMjg5LCANCi0gICAgLTI5MSwgLTI5NCwgLTI5NiwgLTI5OSwgLTMwMSwgLTMwNCwgLTMwNiwgLTMwOSwgLTMxMSwgLTMxNCwgLTMxNiwgLTMxOSwgLTMyMSwgDQotICAgIC0zMjQsIC0zMjYsIC0zMjgsIC0zMzEsIC0zMzMsIC0zMzYsIC0zMzgsIC0zNDAsIC0zNDMsIC0zNDUsIC0zNDcsIC0zNTAsIC0zNTIsIA0KLSAgICAtMzU0LCAtMzU2LCAtMzU5LCAtMzYxLCAtMzYzLCAtMzY1LCAtMzY3LCAtMzcwLCAtMzcyLCAtMzc0LCAtMzc2LCAtMzc4LCAtMzgwLCANCi0gICAgLTM4MiwgLTM4NCwgLTM4NiwgLTM4OCwgLTM5MSwgLTM5MywgLTM5NSwgLTM5NiwgLTM5OCwgLTQwMCwgLTQwMiwgLTQwNCwgLTQwNiwgDQotICAgIC00MDgsIC00MTAsIC00MTIsIC00MTQsIC00MTUsIC00MTcsIC00MTksIC00MjEsIC00MjMsIC00MjQsIC00MjYsIC00MjgsIC00MzAsIA0KLSAgICAtNDMxLCAtNDMzLCAtNDM1LCAtNDM2LCAtNDM4LCAtNDM5LCAtNDQxLCAtNDQzLCAtNDQ0LCAtNDQ2LCAtNDQ3LCAtNDQ5LCAtNDUwLCANCi0gICAgLTQ1MiwgLTQ1MywgLTQ1NSwgLTQ1NiwgLTQ1NywgLTQ1OSwgLTQ2MCwgLTQ2MSwgLTQ2MywgLTQ2NCwgLTQ2NSwgLTQ2NywgLTQ2OCwgDQotICAgIC00NjksIC00NzAsIC00NzIsIC00NzMsIC00NzQsIC00NzUsIC00NzYsIC00NzcsIC00NzgsIC00ODAsIC00ODEsIC00ODIsIC00ODMsIA0KLSAgICAtNDg0LCAtNDg1LCAtNDg2LCAtNDg3LCAtNDg4LCAtNDg4LCAtNDg5LCAtNDkwLCAtNDkxLCAtNDkyLCAtNDkzLCAtNDk0LCAtNDk0LCANCi0gICAgLTQ5NSwgLTQ5NiwgLTQ5NywgLTQ5NywgLTQ5OCwgLTQ5OSwgLTQ5OSwgLTUwMCwgLTUwMSwgLTUwMSwgLTUwMiwgLTUwMiwgLTUwMywgDQotICAgIC01MDQsIC01MDQsIC01MDQsIC01MDUsIC01MDUsIC01MDYsIC01MDYsIC01MDcsIC01MDcsIC01MDcsIC01MDgsIC01MDgsIC01MDgsIA0KLSAgICAtNTA5LCAtNTA5LCAtNTA5LCAtNTA5LCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCANCi0gICAgLTUxMCwgLTUxMSwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUxMCwgLTUwOSwgDQotICAgIC01MDksIC01MDksIC01MDksIC01MDgsIC01MDgsIC01MDgsIC01MDcsIC01MDcsIC01MDcsIC01MDYsIC01MDYsIC01MDUsIC01MDUsIA0KLSAgICAtNTA0LCAtNTA0LCAtNTA0LCAtNTAzLCAtNTAyLCAtNTAyLCAtNTAxLCAtNTAxLCAtNTAwLCAtNDk5LCAtNDk5LCAtNDk4LCAtNDk3LCANCi0gICAgLTQ5NywgLTQ5NiwgLTQ5NSwgLTQ5NCwgLTQ5NCwgLTQ5MywgLTQ5MiwgLTQ5MSwgLTQ5MCwgLTQ4OSwgLTQ4OCwgLTQ4OCwgLTQ4NywgDQotICAgIC00ODYsIC00ODUsIC00ODQsIC00ODMsIC00ODIsIC00ODEsIC00ODAsIC00NzgsIC00NzcsIC00NzYsIC00NzUsIC00NzQsIC00NzMsIA0KLSAgICAtNDcyLCAtNDcwLCAtNDY5LCAtNDY4LCAtNDY3LCAtNDY1LCAtNDY0LCAtNDYzLCAtNDYxLCAtNDYwLCAtNDU5LCAtNDU3LCAtNDU2LCANCi0gICAgLTQ1NSwgLTQ1MywgLTQ1MiwgLTQ1MCwgLTQ0OSwgLTQ0NywgLTQ0NiwgLTQ0NCwgLTQ0MywgLTQ0MSwgLTQzOSwgLTQzOCwgLTQzNiwgDQotICAgIC00MzUsIC00MzMsIC00MzEsIC00MzAsIC00MjgsIC00MjYsIC00MjQsIC00MjMsIC00MjEsIC00MTksIC00MTcsIC00MTUsIC00MTQsIA0KLSAgICAtNDEyLCAtNDEwLCAtNDA4LCAtNDA2LCAtNDA0LCAtNDAyLCAtNDAwLCAtMzk4LCAtMzk2LCAtMzk1LCAtMzkzLCAtMzkxLCAtMzg4LCANCi0gICAgLTM4NiwgLTM4NCwgLTM4MiwgLTM4MCwgLTM3OCwgLTM3NiwgLTM3NCwgLTM3MiwgLTM3MCwgLTM2NywgLTM2NSwgLTM2MywgLTM2MSwgDQotICAgIC0zNTksIC0zNTYsIC0zNTQsIC0zNTIsIC0zNTAsIC0zNDcsIC0zNDUsIC0zNDMsIC0zNDAsIC0zMzgsIC0zMzYsIC0zMzMsIC0zMzEsIA0KLSAgICAtMzI4LCAtMzI2LCAtMzI0LCAtMzIxLCAtMzE5LCAtMzE2LCAtMzE0LCAtMzExLCAtMzA5LCAtMzA2LCAtMzA0LCAtMzAxLCAtMjk5LCANCi0gICAgLTI5NiwgLTI5NCwgLTI5MSwgLTI4OSwgLTI4NiwgLTI4MywgLTI4MSwgLTI3OCwgLTI3NiwgLTI3MywgLTI3MCwgLTI2OCwgLTI2NSwgDQotICAgIC0yNjIsIC0yNjAsIC0yNTcsIC0yNTQsIC0yNTEsIC0yNDksIC0yNDYsIC0yNDMsIC0yNDAsIC0yMzgsIC0yMzUsIC0yMzIsIC0yMjksIA0KLSAgICAtMjI2LCAtMjI0LCAtMjIxLCAtMjE4LCAtMjE1LCAtMjEyLCAtMjA5LCAtMjA3LCAtMjA0LCAtMjAxLCAtMTk4LCAtMTk1LCAtMTkyLCANCi0gICAgLTE4OSwgLTE4NiwgLTE4MywgLTE4MCwgLTE3OCwgLTE3NSwgLTE3MiwgLTE2OSwgLTE2NiwgLTE2MywgLTE2MCwgLTE1NywgLTE1NCwgDQotICAgIC0xNTEsIC0xNDgsIC0xNDUsIC0xNDIsIC0xMzksIC0xMzYsIC0xMzMsIC0xMzAsIC0xMjcsIC0xMjQsIC0xMjEsIC0xMTgsIC0xMTUsIA0KLSAgICAtMTExLCAtMTA4LCAtMTA1LCAtMTAyLCAgLTk5LCAgLTk2LCAgLTkzLCAgLTkwLCAgLTg3LCAgLTg0LCAgLTgxLCAgLTc4LCAgLTc0LCANCi0gICAgIC03MSwgIC02OCwgIC02NSwgIC02MiwgIC01OSwgIC01NiwgIC01MywgIC01MCwgIC00NiwgIC00MywgIC00MCwgIC0zNywgIC0zNCwgDQotICAgICAtMzEsICAtMjgsICAtMjUsICAtMjEsICAtMTgsICAtMTUsICAtMTIsICAgLTksICAgLTYsICAgLTMNCi19Ow0KLQ0KLXN0YXRpYyBjb25zdCBzaG9ydCBsZm9fZW52X2NvZWZmW10gPSB7DQotICAgICAyNTEsICAyNTMsICAyNTQsICAyNTYsICAyNTcsICAyNTksICAyNjAsICAyNjIsICAyNjQsICAyNjUsICAyNjcsICAyNjgsICAyNzAsIA0KLSAgICAgMjcxLCAgMjczLCAgMjc0LCAgMjc2LCAgMjc3LCAgMjc5LCAgMjgxLCAgMjgyLCAgMjg0LCAgMjg1LCAgMjg3LCAgMjg4LCAgMjkwLCANCi0gICAgIDI5MSwgIDI5MywgIDI5NCwgIDI5NiwgIDI5NywgIDI5OSwgIDMwMCwgIDMwMiwgIDMwMywgIDMwNSwgIDMwNiwgIDMwOCwgIDMwOSwgDQotICAgICAzMTEsICAzMTIsICAzMTQsICAzMTUsICAzMTcsICAzMTgsICAzMjAsICAzMjEsICAzMjMsICAzMjQsICAzMjYsICAzMjcsICAzMjksIA0KLSAgICAgMzMwLCAgMzMyLCAgMzMzLCAgMzM1LCAgMzM2LCAgMzM3LCAgMzM5LCAgMzQwLCAgMzQyLCAgMzQzLCAgMzQ1LCAgMzQ2LCAgMzQ4LCANCi0gICAgIDM0OSwgIDM1MCwgIDM1MiwgIDM1MywgIDM1NSwgIDM1NiwgIDM1NywgIDM1OSwgIDM2MCwgIDM2MiwgIDM2MywgIDM2NCwgIDM2NiwgDQotICAgICAzNjcsICAzNjksICAzNzAsICAzNzEsICAzNzMsICAzNzQsICAzNzUsICAzNzcsICAzNzgsICAzNzksICAzODEsICAzODIsICAzODMsIA0KLSAgICAgMzg1LCAgMzg2LCAgMzg3LCAgMzg5LCAgMzkwLCAgMzkxLCAgMzkyLCAgMzk0LCAgMzk1LCAgMzk2LCAgMzk3LCAgMzk5LCAgNDAwLCANCi0gICAgIDQwMSwgIDQwMiwgIDQwNCwgIDQwNSwgIDQwNiwgIDQwNywgIDQwOSwgIDQxMCwgIDQxMSwgIDQxMiwgIDQxMywgIDQxNCwgIDQxNiwgDQotICAgICA0MTcsICA0MTgsICA0MTksICA0MjAsICA0MjEsICA0MjMsICA0MjQsICA0MjUsICA0MjYsICA0MjcsICA0MjgsICA0MjksICA0MzAsIA0KLSAgICAgNDMxLCAgNDMyLCAgNDM0LCAgNDM1LCAgNDM2LCAgNDM3LCAgNDM4LCAgNDM5LCAgNDQwLCAgNDQxLCAgNDQyLCAgNDQzLCAgNDQ0LCANCi0gICAgIDQ0NSwgIDQ0NiwgIDQ0NywgIDQ0OCwgIDQ0OSwgIDQ1MCwgIDQ1MSwgIDQ1MiwgIDQ1MywgIDQ1MywgIDQ1NCwgIDQ1NSwgIDQ1NiwgDQotICAgICA0NTcsICA0NTgsICA0NTksICA0NjAsICA0NjEsICA0NjEsICA0NjIsICA0NjMsICA0NjQsICA0NjUsICA0NjYsICA0NjYsICA0NjcsIA0KLSAgICAgNDY4LCAgNDY5LCAgNDY5LCAgNDcwLCAgNDcxLCAgNDcyLCAgNDczLCAgNDczLCAgNDc0LCAgNDc1LCAgNDc1LCAgNDc2LCAgNDc3LCANCi0gICAgIDQ3NywgIDQ3OCwgIDQ3OSwgIDQ3OSwgIDQ4MCwgIDQ4MSwgIDQ4MSwgIDQ4MiwgIDQ4MywgIDQ4MywgIDQ4NCwgIDQ4NCwgIDQ4NSwgDQotICAgICA0ODYsICA0ODYsICA0ODcsICA0ODcsICA0ODgsICA0ODgsICA0ODksICA0ODksICA0OTAsICA0OTAsICA0OTEsICA0OTEsICA0OTIsIA0KLSAgICAgNDkyLCAgNDkzLCAgNDkzLCAgNDkzLCAgNDk0LCAgNDk0LCAgNDk1LCAgNDk1LCAgNDk1LCAgNDk2LCAgNDk2LCAgNDk3LCAgNDk3LCANCi0gICAgIDQ5NywgIDQ5OCwgIDQ5OCwgIDQ5OCwgIDQ5OCwgIDQ5OSwgIDQ5OSwgIDQ5OSwgIDUwMCwgIDUwMCwgIDUwMCwgIDUwMCwgIDUwMCwgDQotICAgICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsIA0KLSAgICAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCAgNTAzLCANCi0gICAgIDUwMywgIDUwMywgIDUwMywgIDUwMywgIDUwMywgIDUwMywgIDUwMiwgIDUwMiwgIDUwMiwgIDUwMiwgIDUwMiwgIDUwMiwgIDUwMiwgDQotICAgICA1MDIsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDAsICA1MDAsICA1MDAsICA1MDAsICA1MDAsICA0OTksICA0OTksIA0KLSAgICAgNDk5LCAgNDk4LCAgNDk4LCAgNDk4LCAgNDk4LCAgNDk3LCAgNDk3LCAgNDk3LCAgNDk2LCAgNDk2LCAgNDk1LCAgNDk1LCAgNDk1LCANCi0gICAgIDQ5NCwgIDQ5NCwgIDQ5MywgIDQ5MywgIDQ5MywgIDQ5MiwgIDQ5MiwgIDQ5MSwgIDQ5MSwgIDQ5MCwgIDQ5MCwgIDQ4OSwgIDQ4OSwgDQotICAgICA0ODgsICA0ODgsICA0ODcsICA0ODcsICA0ODYsICA0ODYsICA0ODUsICA0ODQsICA0ODQsICA0ODMsICA0ODMsICA0ODIsICA0ODEsIA0KLSAgICAgNDgxLCAgNDgwLCAgNDc5LCAgNDc5LCAgNDc4LCAgNDc3LCAgNDc3LCAgNDc2LCAgNDc1LCAgNDc1LCAgNDc0LCAgNDczLCAgNDczLCANCi0gICAgIDQ3MiwgIDQ3MSwgIDQ3MCwgIDQ2OSwgIDQ2OSwgIDQ2OCwgIDQ2NywgIDQ2NiwgIDQ2NiwgIDQ2NSwgIDQ2NCwgIDQ2MywgIDQ2MiwgDQotICAgICA0NjEsICA0NjEsICA0NjAsICA0NTksICA0NTgsICA0NTcsICA0NTYsICA0NTUsICA0NTQsICA0NTMsICA0NTMsICA0NTIsICA0NTEsIA0KLSAgICAgNDUwLCAgNDQ5LCAgNDQ4LCAgNDQ3LCAgNDQ2LCAgNDQ1LCAgNDQ0LCAgNDQzLCAgNDQyLCAgNDQxLCAgNDQwLCAgNDM5LCAgNDM4LCANCi0gICAgIDQzNywgIDQzNiwgIDQzNSwgIDQzNCwgIDQzMiwgIDQzMSwgIDQzMCwgIDQyOSwgIDQyOCwgIDQyNywgIDQyNiwgIDQyNSwgIDQyNCwgDQotICAgICA0MjMsICA0MjEsICA0MjAsICA0MTksICA0MTgsICA0MTcsICA0MTYsICA0MTQsICA0MTMsICA0MTIsICA0MTEsICA0MTAsICA0MDksIA0KLSAgICAgNDA3LCAgNDA2LCAgNDA1LCAgNDA0LCAgNDAyLCAgNDAxLCAgNDAwLCAgMzk5LCAgMzk3LCAgMzk2LCAgMzk1LCAgMzk0LCAgMzkyLCANCi0gICAgIDM5MSwgIDM5MCwgIDM4OSwgIDM4NywgIDM4NiwgIDM4NSwgIDM4MywgIDM4MiwgIDM4MSwgIDM3OSwgIDM3OCwgIDM3NywgIDM3NSwgDQotICAgICAzNzQsICAzNzMsICAzNzEsICAzNzAsICAzNjksICAzNjcsICAzNjYsICAzNjQsICAzNjMsICAzNjIsICAzNjAsICAzNTksICAzNTcsIA0KLSAgICAgMzU2LCAgMzU1LCAgMzUzLCAgMzUyLCAgMzUwLCAgMzQ5LCAgMzQ4LCAgMzQ2LCAgMzQ1LCAgMzQzLCAgMzQyLCAgMzQwLCAgMzM5LCANCi0gICAgIDMzNywgIDMzNiwgIDMzNSwgIDMzMywgIDMzMiwgIDMzMCwgIDMyOSwgIDMyNywgIDMyNiwgIDMyNCwgIDMyMywgIDMyMSwgIDMyMCwgDQotICAgICAzMTgsICAzMTcsICAzMTUsICAzMTQsICAzMTIsICAzMTEsICAzMDksICAzMDgsICAzMDYsICAzMDUsICAzMDMsICAzMDIsICAzMDAsIA0KLSAgICAgMjk5LCAgMjk3LCAgMjk2LCAgMjk0LCAgMjkzLCAgMjkxLCAgMjkwLCAgMjg4LCAgMjg3LCAgMjg1LCAgMjg0LCAgMjgyLCAgMjgxLCANCi0gICAgIDI3OSwgIDI3NywgIDI3NiwgIDI3NCwgIDI3MywgIDI3MSwgIDI3MCwgIDI2OCwgIDI2NywgIDI2NSwgIDI2NCwgIDI2MiwgIDI2MCwgDQotICAgICAyNTksICAyNTcsICAyNTYsICAyNTQsICAyNTMsICAyNTEsICAyNTAsICAyNDgsICAyNDcsICAyNDUsICAyNDQsICAyNDIsICAyNDAsIA0KLSAgICAgMjM5LCAgMjM3LCAgMjM2LCAgMjM0LCAgMjMzLCAgMjMxLCAgMjMwLCAgMjI4LCAgMjI3LCAgMjI1LCAgMjIzLCAgMjIyLCAgMjIwLCANCi0gICAgIDIxOSwgIDIxNywgIDIxNiwgIDIxNCwgIDIxMywgIDIxMSwgIDIxMCwgIDIwOCwgIDIwNywgIDIwNSwgIDIwNCwgIDIwMiwgIDIwMSwgDQotICAgICAxOTksICAxOTgsICAxOTYsICAxOTUsICAxOTMsICAxOTIsICAxOTAsICAxODksICAxODcsICAxODYsICAxODQsICAxODMsICAxODEsIA0KLSAgICAgMTgwLCAgMTc4LCAgMTc3LCAgMTc1LCAgMTc0LCAgMTcyLCAgMTcxLCAgMTY5LCAgMTY4LCAgMTY2LCAgMTY1LCAgMTY0LCAgMTYyLCANCi0gICAgIDE2MSwgIDE1OSwgIDE1OCwgIDE1NiwgIDE1NSwgIDE1MywgIDE1MiwgIDE1MSwgIDE0OSwgIDE0OCwgIDE0NiwgIDE0NSwgIDE0NCwgDQotICAgICAxNDIsICAxNDEsICAxMzksICAxMzgsICAxMzcsICAxMzUsICAxMzQsICAxMzMsICAxMzEsICAxMzAsICAxMjksICAxMjcsICAxMjYsIA0KLSAgICAgMTI0LCAgMTIzLCAgMTIyLCAgMTIwLCAgMTE5LCAgMTE4LCAgMTE3LCAgMTE1LCAgMTE0LCAgMTEzLCAgMTExLCAgMTEwLCAgMTA5LCANCi0gICAgIDEwOCwgIDEwNiwgIDEwNSwgIDEwNCwgIDEwMywgIDEwMSwgIDEwMCwgICA5OSwgICA5OCwgICA5NiwgICA5NSwgICA5NCwgICA5MywgDQotICAgICAgOTIsICAgOTAsICAgODksICAgODgsICAgODcsICAgODYsICAgODQsICAgODMsICAgODIsICAgODEsICAgODAsICAgNzksICAgNzgsIA0KLSAgICAgIDc3LCAgIDc1LCAgIDc0LCAgIDczLCAgIDcyLCAgIDcxLCAgIDcwLCAgIDY5LCAgIDY4LCAgIDY3LCAgIDY2LCAgIDY1LCAgIDY0LCANCi0gICAgICA2MywgICA2MiwgICA2MSwgICA2MCwgICA1OSwgICA1OCwgICA1NywgICA1NiwgICA1NSwgICA1NCwgICA1MywgICA1MiwgICA1MSwgDQotICAgICAgNTAsICAgNDksICAgNDgsICAgNDcsICAgNDYsICAgNDUsICAgNDUsICAgNDQsICAgNDMsICAgNDIsICAgNDEsICAgNDAsICAgMzksIA0KLSAgICAgIDM5LCAgIDM4LCAgIDM3LCAgIDM2LCAgIDM1LCAgIDM1LCAgIDM0LCAgIDMzLCAgIDMyLCAgIDMxLCAgIDMxLCAgIDMwLCAgIDI5LCANCi0gICAgICAyOSwgICAyOCwgICAyNywgICAyNiwgICAyNiwgICAyNSwgICAyNCwgICAyNCwgICAyMywgICAyMiwgICAyMiwgICAyMSwgICAyMCwgDQotICAgICAgMjAsICAgMTksICAgMTksICAgMTgsICAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTUsICAgMTUsICAgMTQsICAgMTQsICAgMTMsIA0KLSAgICAgIDEzLCAgIDEyLCAgIDEyLCAgIDExLCAgIDExLCAgIDEwLCAgIDEwLCAgICA5LCAgICA5LCAgICA5LCAgICA4LCAgICA4LCAgICA3LCANCi0gICAgICAgNywgICAgNywgICAgNiwgICAgNiwgICAgNiwgICAgNSwgICAgNSwgICAgNSwgICAgNCwgICAgNCwgICAgNCwgICAgMywgICAgMywgDQotICAgICAgIDMsICAgIDMsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIA0KLSAgICAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCANCi0gICAgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgDQotICAgICAgIDAsICAgIDAsICAgIDAsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIA0KLSAgICAgICAyLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICA0LCAgICA0LCAgICA0LCAgICA1LCAgICA1LCAgICA1LCAgICA2LCAgICA2LCANCi0gICAgICAgNiwgICAgNywgICAgNywgICAgNywgICAgOCwgICAgOCwgICAgOSwgICAgOSwgICAgOSwgICAxMCwgICAxMCwgICAxMSwgICAxMSwgDQotICAgICAgMTIsICAgMTIsICAgMTMsICAgMTMsICAgMTQsICAgMTQsICAgMTUsICAgMTUsICAgMTYsICAgMTYsICAgMTcsICAgMTcsICAgMTgsIA0KLSAgICAgIDE5LCAgIDE5LCAgIDIwLCAgIDIwLCAgIDIxLCAgIDIyLCAgIDIyLCAgIDIzLCAgIDI0LCAgIDI0LCAgIDI1LCAgIDI2LCAgIDI2LCANCi0gICAgICAyNywgICAyOCwgICAyOSwgICAyOSwgICAzMCwgICAzMSwgICAzMSwgICAzMiwgICAzMywgICAzNCwgICAzNSwgICAzNSwgICAzNiwgDQotICAgICAgMzcsICAgMzgsICAgMzksICAgMzksICAgNDAsICAgNDEsICAgNDIsICAgNDMsICAgNDQsICAgNDUsICAgNDUsICAgNDYsICAgNDcsIA0KLSAgICAgIDQ4LCAgIDQ5LCAgIDUwLCAgIDUxLCAgIDUyLCAgIDUzLCAgIDU0LCAgIDU1LCAgIDU2LCAgIDU3LCAgIDU4LCAgIDU5LCAgIDYwLCANCi0gICAgICA2MSwgICA2MiwgICA2MywgICA2NCwgICA2NSwgICA2NiwgICA2NywgICA2OCwgICA2OSwgICA3MCwgICA3MSwgICA3MiwgICA3MywgDQotICAgICAgNzQsICAgNzUsICAgNzcsICAgNzgsICAgNzksICAgODAsICAgODEsICAgODIsICAgODMsICAgODQsICAgODYsICAgODcsICAgODgsIA0KLSAgICAgIDg5LCAgIDkwLCAgIDkyLCAgIDkzLCAgIDk0LCAgIDk1LCAgIDk2LCAgIDk4LCAgIDk5LCAgMTAwLCAgMTAxLCAgMTAzLCAgMTA0LCANCi0gICAgIDEwNSwgIDEwNiwgIDEwOCwgIDEwOSwgIDExMCwgIDExMSwgIDExMywgIDExNCwgIDExNSwgIDExNywgIDExOCwgIDExOSwgIDEyMCwgDQotICAgICAxMjIsICAxMjMsICAxMjQsICAxMjYsICAxMjcsICAxMjksICAxMzAsICAxMzEsICAxMzMsICAxMzQsICAxMzUsICAxMzcsICAxMzgsIA0KLSAgICAgMTM5LCAgMTQxLCAgMTQyLCAgMTQ0LCAgMTQ1LCAgMTQ2LCAgMTQ4LCAgMTQ5LCAgMTUxLCAgMTUyLCAgMTUzLCAgMTU1LCAgMTU2LCANCi0gICAgIDE1OCwgIDE1OSwgIDE2MSwgIDE2MiwgIDE2NCwgIDE2NSwgIDE2NiwgIDE2OCwgIDE2OSwgIDE3MSwgIDE3MiwgIDE3NCwgIDE3NSwgDQotICAgICAxNzcsICAxNzgsICAxODAsICAxODEsICAxODMsICAxODQsICAxODYsICAxODcsICAxODksICAxOTAsICAxOTIsICAxOTMsICAxOTUsIA0KLSAgICAgMTk2LCAgMTk4LCAgMTk5LCAgMjAxLCAgMjAyLCAgMjA0LCAgMjA1LCAgMjA3LCAgMjA4LCAgMjEwLCAgMjExLCAgMjEzLCAgMjE0LCANCi0gICAgIDIxNiwgIDIxNywgIDIxOSwgIDIyMCwgIDIyMiwgIDIyMywgIDIyNSwgIDIyNywgIDIyOCwgIDIzMCwgIDIzMSwgIDIzMywgIDIzNCwgDQotICAgICAyMzYsICAyMzcsICAyMzksICAyNDAsICAyNDIsICAyNDQsICAyNDUsICAyNDcsICAyNDgsICAyNTANCi19Ow0KLQ0KLSNlbmRpZg0KKyNpZm5kZWYgX0VNVVRBQkxFU19IXworI2RlZmluZSBfRU1VVEFCTEVTX0hfCisKKy8qIFByZWNvbXBpbGVkIHltMjYxMiB0YWJsZXMgZm9yIHVzZSBpbiBSb2NrYm94ICovCisgICAKK3N0YXRpYyBjb25zdCBpbnQgdGxfY29lZmZbXSA9IHsKKwkgMjY4NDM1NDU1LCAgMjY3NzEyMTAwLCAgMjY2OTkwNjk1LCAgMjY2MjcxMjM0LCAgMjY1NTUzNzEyLCAgMjY0ODM4MTIzLCAgMjY0MTI0NDYyLCAgMjYzNDEyNzI1LCAgMjYyNzAyOTA2LCAgMjYxOTk0OTk5LCAgMjYxMjg5MDAwLCAKKyAgICAgMjYwNTg0OTAzLCAgMjU5ODgyNzA0LCAgMjU5MTgyMzk2LCAgMjU4NDgzOTc2LCAgMjU3Nzg3NDM4LCAgMjU3MDkyNzc3LCAgMjU2Mzk5OTg4LCAgMjU1NzA5MDY2LCAgMjU1MDIwMDA2LCAgMjU0MzMyODAyLCAgMjUzNjQ3NDUwLCAKKyAgICAgMjUyOTYzOTQ1LCAgMjUyMjgyMjgyLCAgMjUxNjAyNDU2LCAgMjUwOTI0NDYyLCAgMjUwMjQ4Mjk0LCAgMjQ5NTczOTQ5LCAgMjQ4OTAxNDIxLCAgMjQ4MjMwNzA1LCAgMjQ3NTYxNzk3LCAgMjQ2ODk0NjkxLCAgMjQ2MjI5MzgzLCAKKyAgICAgMjQ1NTY1ODY3LCAgMjQ0OTA0MTQwLCAgMjQ0MjQ0MTk1LCAgMjQzNTg2MDI5LCAgMjQyOTI5NjM3LCAgMjQyMjc1MDEzLCAgMjQxNjIyMTU0LCAgMjQwOTcxMDUzLCAgMjQwMzIxNzA4LCAgMjM5Njc0MTEyLCAgMjM5MDI4MjYxLCAKKyAgICAgMjM4Mzg0MTUwLCAgMjM3NzQxNzc1LCAgMjM3MTAxMTMxLCAgMjM2NDYyMjE0LCAgMjM1ODI1MDE4LCAgMjM1MTg5NTM5LCAgMjM0NTU1NzczLCAgMjMzOTIzNzE0LCAgMjMzMjkzMzU5LCAgMjMyNjY0NzAyLCAgMjMyMDM3NzQwLCAKKyAgICAgMjMxNDEyNDY2LCAgMjMwNzg4ODc4LCAgMjMwMTY2OTcwLCAgMjI5NTQ2NzM4LCAgMjI4OTI4MTc4LCAgMjI4MzExMjg0LCAgMjI3Njk2MDUyLCAgMjI3MDgyNDc5LCAgMjI2NDcwNTU4LCAgMjI1ODYwMjg3LCAgMjI1MjUxNjYwLCAKKyAgICAgMjI0NjQ0Njc0LCAgMjI0MDM5MzIzLCAgMjIzNDM1NjAzLCAgMjIyODMzNTEwLCAgMjIyMjMzMDM5LCAgMjIxNjM0MTg3LCAgMjIxMDM2OTQ4LCAgMjIwNDQxMzE5LCAgMjE5ODQ3Mjk1LCAgMjE5MjU0ODcxLCAgMjE4NjY0MDQ0LCAKKyAgICAgMjE4MDc0ODA5LCAgMjE3NDg3MTYyLCAgMjE2OTAxMDk4LCAgMjE2MzE2NjE0LCAgMjE1NzMzNzA0LCAgMjE1MTUyMzY2LCAgMjE0NTcyNTk0LCAgMjEzOTk0Mzg0LCAgMjEzNDE3NzMyLCAgMjEyODQyNjM1LCAgMjEyMjY5MDg3LCAKKyAgICAgMjExNjk3MDg0LCAgMjExMTI2NjIzLCAgMjEwNTU3Njk5LCAgMjA5OTkwMzA4LCAgMjA5NDI0NDQ2LCAgMjA4ODYwMTA5LCAgMjA4Mjk3MjkzLCAgMjA3NzM1OTkzLCAgMjA3MTc2MjA2LCAgMjA2NjE3OTI3LCAgMjA2MDYxMTUzLCAKKyAgICAgMjA1NTA1ODc5LCAgMjA0OTUyMTAyLCAgMjA0Mzk5ODE2LCAgMjAzODQ5MDE5LCAgMjAzMjk5NzA2LCAgMjAyNzUxODczLCAgMjAyMjA1NTE3LCAgMjAxNjYwNjMzLCAgMjAxMTE3MjE3LCAgMjAwNTc1MjY2LCAgMjAwMDM0Nzc0LCAKKyAgICAgMTk5NDk1NzQwLCAgMTk4OTU4MTU4LCAgMTk4NDIyMDI0LCAgMTk3ODg3MzM1LCAgMTk3MzU0MDg4LCAgMTk2ODIyMjc3LCAgMTk2MjkxODk5LCAgMTk1NzYyOTUwLCAgMTk1MjM1NDI3LCAgMTk0NzA5MzI1LCAgMTk0MTg0NjQxLCAKKyAgICAgMTkzNjYxMzcwLCAgMTkzMTM5NTEwLCAgMTkyNjE5MDU2LCAgMTkyMTAwMDA1LCAgMTkxNTgyMzUyLCAgMTkxMDY2MDk0LCAgMTkwNTUxMjI4LCAgMTkwMDM3NzQ4LCAgMTg5NTI1NjUzLCAgMTg5MDE0OTM3LCAgMTg4NTA1NTk4LCAKKyAgICAgMTg3OTk3NjMxLCAgMTg3NDkxMDMzLCAgMTg2OTg1ODAwLCAgMTg2NDgxOTI4LCAgMTg1OTc5NDE0LCAgMTg1NDc4MjU1LCAgMTg0OTc4NDQ2LCAgMTg0NDc5OTgzLCAgMTgzOTgyODY0LCAgMTgzNDg3MDg1LCAgMTgyOTkyNjQxLCAKKyAgICAgMTgyNDk5NTMwLCAgMTgyMDA3NzQ4LCAgMTgxNTE3MjkxLCAgMTgxMDI4MTU1LCAgMTgwNTQwMzM4LCAgMTgwMDUzODM1LCAgMTc5NTY4NjQzLCAgMTc5MDg0NzU5LCAgMTc4NjAyMTc4LCAgMTc4MTIwODk4LCAgMTc3NjQwOTE1LCAKKyAgICAgMTc3MTYyMjI1LCAgMTc2Njg0ODI1LCAgMTc2MjA4NzEyLCAgMTc1NzMzODgxLCAgMTc1MjYwMzMwLCAgMTc0Nzg4MDU1LCAgMTc0MzE3MDUzLCAgMTczODQ3MzIwLCAgMTczMzc4ODUzLCAgMTcyOTExNjQ4LCAgMTcyNDQ1NzAyLCAKKyAgICAgMTcxOTgxMDEyLCAgMTcxNTE3NTc0LCAgMTcxMDU1Mzg1LCAgMTcwNTk0NDQxLCAgMTcwMTM0NzQwLCAgMTY5Njc2Mjc3LCAgMTY5MjE5MDQ5LCAgMTY4NzYzMDU0LCAgMTY4MzA4Mjg3LCAgMTY3ODU0NzQ2LCAgMTY3NDAyNDI3LCAKKyAgICAgMTY2OTUxMzI3LCAgMTY2NTAxNDQzLCAgMTY2MDUyNzcwLCAgMTY1NjA1MzA3LCAgMTY1MTU5MDUwLCAgMTY0NzEzOTk1LCAgMTY0MjcwMTM5LCAgMTYzODI3NDgwLCAgMTYzMzg2MDEzLCAgMTYyOTQ1NzM2LCAgMTYyNTA2NjQ2LCAKKyAgICAgMTYyMDY4NzM4LCAgMTYxNjMyMDExLCAgMTYxMTk2NDYwLCAgMTYwNzYyMDgzLCAgMTYwMzI4ODc3LCAgMTU5ODk2ODM4LCAgMTU5NDY1OTYzLCAgMTU5MDM2MjUwLCAgMTU4NjA3Njk0LCAgMTU4MTgwMjkzLCAgMTU3NzU0MDQ0LCAKKyAgICAgMTU3MzI4OTQzLCAgMTU2OTA0OTg4LCAgMTU2NDgyMTc2LCAgMTU2MDYwNTAyLCAgMTU1NjM5OTY1LCAgMTU1MjIwNTYyLCAgMTU0ODAyMjg4LCAgMTU0Mzg1MTQyLCAgMTUzOTY5MTE5LCAgMTUzNTU0MjE4LCAgMTUzMTQwNDM1LCAKKyAgICAgMTUyNzI3NzY2LCAgMTUyMzE2MjEwLCAgMTUxOTA1NzYzLCAgMTUxNDk2NDIyLCAgMTUxMDg4MTg0LCAgMTUwNjgxMDQ2LCAgMTUwMjc1MDA1LCAgMTQ5ODcwMDU4LCAgMTQ5NDY2MjAzLCAgMTQ5MDYzNDM1LCAgMTQ4NjYxNzUzLCAKKyAgICAgMTQ4MjYxMTU0LCAgMTQ3ODYxNjM0LCAgMTQ3NDYzMTkwLCAgMTQ3MDY1ODIxLCAgMTQ2NjY5NTIyLCAgMTQ2Mjc0MjkxLCAgMTQ1ODgwMTI1LCAgMTQ1NDg3MDIxLCAgMTQ1MDk0OTc2LCAgMTQ0NzAzOTg4LCAgMTQ0MzE0MDU0LCAKKyAgICAgMTQzOTI1MTcwLCAgMTQzNTM3MzM0LCAgMTQzMTUwNTQzLCAgMTQyNzY0Nzk1LCAgMTQyMzgwMDg2LCAgMTQxOTk2NDE0LCAgMTQxNjEzNzc1LCAgMTQxMjMyMTY4LCAgMTQwODUxNTg5LCAgMTQwNDcyMDM1LCAgMTQwMDkzNTA1LCAKKyAgICAgMTM5NzE1OTk0LCAgMTM5MzM5NTAxLCAgMTM4OTY0MDIyLCAgMTM4NTg5NTU1LCAgMTM4MjE2MDk3LCAgMTM3ODQzNjQ2LCAgMTM3NDcyMTk4LCAgMTM3MTAxNzUxLCAgMTM2NzMyMzAyLCAgMTM2MzYzODQ5LCAgMTM1OTk2Mzg4LCAKKyAgICAgMTM1NjI5OTE4LCAgMTM1MjY0NDM2LCAgMTM0ODk5OTM4LCAgMTM0NTM2NDIzLCAgMTM0MTczODg3LCAgMTMzODEyMzI4LCAgMTMzNDUxNzQzLCAgMTMzMDkyMTMwLCAgMTMyNzMzNDg2LCAgMTMyMzc1ODA4LCAgMTMyMDE5MDk1LCAKKyAgICAgMTMxNjYzMzQyLCAgMTMxMzA4NTQ4LCAgMTMwOTU0NzExLCAgMTMwNjAxODI2LCAgMTMwMjQ5ODkzLCAgMTI5ODk4OTA4LCAgMTI5NTQ4ODY5LCAgMTI5MTk5NzczLCAgMTI4ODUxNjE4LCAgMTI4NTA0NDAxLCAgMTI4MTU4MTE5LCAKKyAgICAgMTI3ODEyNzcxLCAgMTI3NDY4MzUzLCAgMTI3MTI0ODY0LCAgMTI2NzgyMzAwLCAgMTI2NDQwNjU5LCAgMTI2MDk5OTM5LCAgMTI1NzYwMTM3LCAgMTI1NDIxMjUwLCAgMTI1MDgzMjc3LCAgMTI0NzQ2MjE0LCAgMTI0NDEwMDYwLCAKKyAgICAgMTI0MDc0ODEyLCAgMTIzNzQwNDY3LCAgMTIzNDA3MDIzLCAgMTIzMDc0NDc3LCAgMTIyNzQyODI4LCAgMTIyNDEyMDcyLCAgMTIyMDgyMjA4LCAgMTIxNzUzMjMyLCAgMTIxNDI1MTQzLCAgMTIxMDk3OTM5LCAgMTIwNzcxNjE1LCAKKyAgICAgMTIwNDQ2MTcyLCAgMTIwMTIxNjA1LCAgMTE5Nzk3OTEyLCAgMTE5NDc1MDkyLCAgMTE5MTUzMTQyLCAgMTE4ODMyMDYwLCAgMTE4NTExODQzLCAgMTE4MTkyNDg4LCAgMTE3ODczOTk0LCAgMTE3NTU2MzU5LCAgMTE3MjM5NTc5LCAKKyAgICAgMTE2OTIzNjUzLCAgMTE2NjA4NTc4LCAgMTE2Mjk0MzUzLCAgMTE1OTgwOTc0LCAgMTE1NjY4NDM5LCAgMTE1MzU2NzQ3LCAgMTE1MDQ1ODk0LCAgMTE0NzM1ODgwLCAgMTE0NDI2NzAwLCAgMTE0MTE4MzU0LCAgMTEzODEwODM5LCAKKyAgICAgMTEzNTA0MTUyLCAgMTEzMTk4MjkyLCAgMTEyODkzMjU2LCAgMTEyNTg5MDQyLCAgMTEyMjg1NjQ4LCAgMTExOTgzMDcxLCAgMTExNjgxMzEwLCAgMTExMzgwMzYyLCAgMTExMDgwMjI1LCAgMTEwNzgwODk2LCAgMTEwNDgyMzc1LCAKKyAgICAgMTEwMTg0NjU3LCAgMTA5ODg3NzQyLCAgMTA5NTkxNjI3LCAgMTA5Mjk2MzEwLCAgMTA5MDAxNzg5LCAgMTA4NzA4MDYxLCAgMTA4NDE1MTI1LCAgMTA4MTIyOTc4LCAgMTA3ODMxNjE5LCAgMTA3NTQxMDQ0LCAgMTA3MjUxMjUzLCAKKyAgICAgMTA2OTYyMjQzLCAgMTA2Njc0MDExLCAgMTA2Mzg2NTU2LCAgMTA2MDk5ODc2LCAgMTA1ODEzOTY4LCAgMTA1NTI4ODMwLCAgMTA1MjQ0NDYxLCAgMTA0OTYwODU5LCAgMTA0Njc4MDIwLCAgMTA0Mzk1OTQ0LCAgMTA0MTE0NjI4LCAKKyAgICAgMTAzODM0MDY5LCAgMTAzNTU0MjY3LCAgMTAzMjc1MjE5LCAgMTAyOTk2OTIzLCAgMTAyNzE5Mzc3LCAgMTAyNDQyNTc4LCAgMTAyMTY2NTI2LCAgMTAxODkxMjE3LCAgMTAxNjE2NjUwLCAgMTAxMzQyODIzLCAgMTAxMDY5NzM0LCAKKyAgICAgMTAwNzk3MzgxLCAgMTAwNTI1NzYyLCAgMTAwMjU0ODc1LCAgIDk5OTg0NzE4LCAgIDk5NzE1Mjg4LCAgIDk5NDQ2NTg1LCAgIDk5MTc4NjA2LCAgIDk4OTExMzQ5LCAgIDk4NjQ0ODEyLCAgIDk4Mzc4OTkzLCAgIDk4MTEzODkxLCAKKyAgICAgIDk3ODQ5NTAzLCAgIDk3NTg1ODI4LCAgIDk3MzIyODYzLCAgIDk3MDYwNjA2LCAgIDk2Nzk5MDU3LCAgIDk2NTM4MjEyLCAgIDk2Mjc4MDcwLCAgIDk2MDE4NjI5LCAgIDk1NzU5ODg3LCAgIDk1NTAxODQyLCAgIDk1MjQ0NDkzLCAKKyAgICAgIDk0OTg3ODM3LCAgIDk0NzMxODczLCAgIDk0NDc2NTk5LCAgIDk0MjIyMDEyLCAgIDkzOTY4MTEyLCAgIDkzNzE0ODk1LCAgIDkzNDYyMzYxLCAgIDkzMjEwNTA4LCAgIDkyOTU5MzMzLCAgIDkyNzA4ODM1LCAgIDkyNDU5MDEyLCAKKyAgICAgIDkyMjA5ODYzLCAgIDkxOTYxMzg0LCAgIDkxNzEzNTc1LCAgIDkxNDY2NDM0LCAgIDkxMjE5OTU5LCAgIDkwOTc0MTQ5LCAgIDkwNzI5MDAwLCAgIDkwNDg0NTEyLCAgIDkwMjQwNjgzLCAgIDg5OTk3NTExLCAgIDg5NzU0OTk0LCAKKyAgICAgIDg5NTEzMTMxLCAgIDg5MjcxOTIwLCAgIDg5MDMxMzU4LCAgIDg4NzkxNDQ1LCAgIDg4NTUyMTc4LCAgIDg4MzEzNTU2LCAgIDg4MDc1NTc4LCAgIDg3ODM4MjQwLCAgIDg3NjAxNTQyLCAgIDg3MzY1NDgxLCAgIDg3MTMwMDU3LCAKKyAgICAgIDg2ODk1MjY3LCAgIDg2NjYxMTEwLCAgIDg2NDI3NTg0LCAgIDg2MTk0Njg3LCAgIDg1OTYyNDE4LCAgIDg1NzMwNzc1LCAgIDg1NDk5NzU2LCAgIDg1MjY5MzU5LCAgIDg1MDM5NTgzLCAgIDg0ODEwNDI3LCAgIDg0NTgxODg4LCAKKyAgICAgIDg0MzUzOTY1LCAgIDg0MTI2NjU2LCAgIDgzODk5OTU5LCAgIDgzNjczODc0LCAgIDgzNDQ4Mzk3LCAgIDgzMjIzNTI4LCAgIDgyOTk5MjY2LCAgIDgyNzc1NjA3LCAgIDgyNTUyNTUxLCAgIDgyMzMwMDk2LCAgIDgyMTA4MjQxLCAKKyAgICAgIDgxODg2OTg0LCAgIDgxNjY2MzIyLCAgIDgxNDQ2MjU2LCAgIDgxMjI2NzgyLCAgIDgxMDA3OTAwLCAgIDgwNzg5NjA4LCAgIDgwNTcxOTA0LCAgIDgwMzU0Nzg2LCAgIDgwMTM4MjU0LCAgIDc5OTIyMzA1LCAgIDc5NzA2OTM4LCAKKyAgICAgIDc5NDkyMTUxLCAgIDc5Mjc3OTQzLCAgIDc5MDY0MzEzLCAgIDc4ODUxMjU4LCAgIDc4NjM4Nzc3LCAgIDc4NDI2ODY4LCAgIDc4MjE1NTMxLCAgIDc4MDA0NzYzLCAgIDc3Nzk0NTY0LCAgIDc3NTg0OTMwLCAgIDc3Mzc1ODYyLCAKKyAgICAgIDc3MTY3MzU3LCAgIDc2OTU5NDEzLCAgIDc2NzUyMDMxLCAgIDc2NTQ1MjA3LCAgIDc2MzM4OTQwLCAgIDc2MTMzMjI5LCAgIDc1OTI4MDcyLCAgIDc1NzIzNDY5LCAgIDc1NTE5NDE2LCAgIDc1MzE1OTE0LCAgIDc1MTEyOTYwLCAKKyAgICAgIDc0OTEwNTUyLCAgIDc0NzA4NjkwLCAgIDc0NTA3MzczLCAgIDc0MzA2NTk3LCAgIDc0MTA2MzYzLCAgIDczOTA2NjY4LCAgIDczNzA3NTEyLCAgIDczNTA4ODkyLCAgIDczMzEwODA3LCAgIDczMTEzMjU2LCAgIDcyOTE2MjM3LCAKKyAgICAgIDcyNzE5NzQ5LCAgIDcyNTIzNzkxLCAgIDcyMzI4MzYxLCAgIDcyMTMzNDU3LCAgIDcxOTM5MDc5LCAgIDcxNzQ1MjI1LCAgIDcxNTUxODkyLCAgIDcxMzU5MDgxLCAgIDcxMTY2Nzg5LCAgIDcwOTc1MDE2LCAgIDcwNzgzNzU5LCAKKyAgICAgIDcwNTkzMDE4LCAgIDcwNDAyNzkxLCAgIDcwMjEzMDc2LCAgIDcwMDIzODcyLCAgIDY5ODM1MTc5LCAgIDY5NjQ2OTk0LCAgIDY5NDU5MzE1LCAgIDY5MjcyMTQzLCAgIDY5MDg1NDc1LCAgIDY4ODk5MzEwLCAgIDY4NzEzNjQ3LCAKKyAgICAgIDY4NTI4NDg0LCAgIDY4MzQzODIwLCAgIDY4MTU5NjUzLCAgIDY3OTc1OTgzLCAgIDY3NzkyODA4LCAgIDY3NjEwMTI3LCAgIDY3NDI3OTM3LCAgIDY3MjQ2MjM5LCAgIDY3MDY1MDMwLCAgIDY2ODg0MzEwLCAgIDY2NzA0MDc2LCAKKyAgICAgIDY2NTI0MzI4LCAgIDY2MzQ1MDY1LCAgIDY2MTY2Mjg1LCAgIDY1OTg3OTg2LCAgIDY1ODEwMTY4LCAgIDY1NjMyODI5LCAgIDY1NDU1OTY4LCAgIDY1Mjc5NTgzLCAgIDY1MTAzNjc0LCAgIDY0OTI4MjM5LCAgIDY0NzUzMjc3LCAKKyAgICAgIDY0NTc4Nzg2LCAgIDY0NDA0NzY1LCAgIDY0MjMxMjEzLCAgIDY0MDU4MTI5LCAgIDYzODg1NTExLCAgIDYzNzEzMzU5LCAgIDYzNTQxNjcwLCAgIDYzMzcwNDQ0LCAgIDYzMTk5Njc5LCAgIDYzMDI5Mzc1LCAgIDYyODU5NTI5LCAKKyAgICAgIDYyNjkwMTQxLCAgIDYyNTIxMjEwLCAgIDYyMzUyNzM0LCAgIDYyMTg0NzExLCAgIDYyMDE3MTQyLCAgIDYxODUwMDI0LCAgIDYxNjgzMzU3LCAgIDYxNTE3MTM4LCAgIDYxMzUxMzY4LCAgIDYxMTg2MDQ0LCAgIDYxMDIxMTY2LCAKKyAgICAgIDYwODU2NzMxLCAgIDYwNjkyNzQxLCAgIDYwNTI5MTkyLCAgIDYwMzY2MDgzLCAgIDYwMjAzNDE0LCAgIDYwMDQxMTg0LCAgIDU5ODc5MzkxLCAgIDU5NzE4MDM0LCAgIDU5NTU3MTExLCAgIDU5Mzk2NjIyLCAgIDU5MjM2NTY2LCAKKyAgICAgIDU5MDc2OTQxLCAgIDU4OTE3NzQ2LCAgIDU4NzU4OTgwLCAgIDU4NjAwNjQyLCAgIDU4NDQyNzMwLCAgIDU4Mjg1MjQ1LCAgIDU4MTI4MTgzLCAgIDU3OTcxNTQ1LCAgIDU3ODE1MzI5LCAgIDU3NjU5NTMzLCAgIDU3NTA0MTU4LCAKKyAgICAgIDU3MzQ5MjAxLCAgIDU3MTk0NjYyLCAgIDU3MDQwNTM5LCAgIDU2ODg2ODMyLCAgIDU2NzMzNTM5LCAgIDU2NTgwNjU5LCAgIDU2NDI4MTkwLCAgIDU2Mjc2MTMzLCAgIDU2MTI0NDg2LCAgIDU1OTczMjQ3LCAgIDU1ODIyNDE1LCAKKyAgICAgIDU1NjcxOTkwLCAgIDU1NTIxOTcxLCAgIDU1MzcyMzU1LCAgIDU1MjIzMTQzLCAgIDU1MDc0MzMzLCAgIDU0OTI1OTI0LCAgIDU0Nzc3OTE1LCAgIDU0NjMwMzA1LCAgIDU0NDgzMDkyLCAgIDU0MzM2Mjc2LCAgIDU0MTg5ODU2LCAKKyAgICAgIDU0MDQzODMwLCAgIDUzODk4MTk4LCAgIDUzNzUyOTU5LCAgIDUzNjA4MTEwLCAgIDUzNDYzNjUyLCAgIDUzMzE5NTgzLCAgIDUzMTc1OTAzLCAgIDUzMDMyNjEwLCAgIDUyODg5NzAyLCAgIDUyNzQ3MTgwLCAgIDUyNjA1MDQyLCAKKyAgICAgIDUyNDYzMjg3LCAgIDUyMzIxOTE0LCAgIDUyMTgwOTIyLCAgIDUyMDQwMzEwLCAgIDUxOTAwMDc2LCAgIDUxNzYwMjIxLCAgIDUxNjIwNzQzLCAgIDUxNDgxNjQwLCAgIDUxMzQyOTEyLCAgIDUxMjA0NTU4LCAgIDUxMDY2NTc3LCAKKyAgICAgIDUwOTI4OTY4LCAgIDUwNzkxNzI5LCAgIDUwNjU0ODYwLCAgIDUwNTE4MzYwLCAgIDUwMzgyMjI4LCAgIDUwMjQ2NDYzLCAgIDUwMTExMDY0LCAgIDQ5OTc2MDI5LCAgIDQ5ODQxMzU5LCAgIDQ5NzA3MDUxLCAgIDQ5NTczMTA1LCAKKyAgICAgIDQ5NDM5NTIwLCAgIDQ5MzA2Mjk1LCAgIDQ5MTczNDI5LCAgIDQ5MDQwOTIyLCAgIDQ4OTA4NzcxLCAgIDQ4Nzc2OTc2LCAgIDQ4NjQ1NTM3LCAgIDQ4NTE0NDUxLCAgIDQ4MzgzNzE5LCAgIDQ4MjUzMzM5LCAgIDQ4MTIzMzExLCAKKyAgICAgIDQ3OTkzNjMzLCAgIDQ3ODY0MzA0LCAgIDQ3NzM1MzI0LCAgIDQ3NjA2NjkxLCAgIDQ3NDc4NDA1LCAgIDQ3MzUwNDY1LCAgIDQ3MjIyODY5LCAgIDQ3MDk1NjE4LCAgIDQ2OTY4NzA5LCAgIDQ2ODQyMTQyLCAgIDQ2NzE1OTE2LCAKKyAgICAgIDQ2NTkwMDMxLCAgIDQ2NDY0NDg0LCAgIDQ2MzM5Mjc2LCAgIDQ2MjE0NDA2LCAgIDQ2MDg5ODcxLCAgIDQ1OTY1NjczLCAgIDQ1ODQxODA5LCAgIDQ1NzE4Mjc5LCAgIDQ1NTk1MDgyLCAgIDQ1NDcyMjE2LCAgIDQ1MzQ5NjgyLCAKKyAgICAgIDQ1MjI3NDc4LCAgIDQ1MTA1NjAzLCAgIDQ0OTg0MDU3LCAgIDQ0ODYyODM4LCAgIDQ0NzQxOTQ2LCAgIDQ0NjIxMzgwLCAgIDQ0NTAxMTM5LCAgIDQ0MzgxMjIxLCAgIDQ0MjYxNjI3LCAgIDQ0MTQyMzU1LCAgIDQ0MDIzNDA0LCAKKyAgICAgIDQzOTA0Nzc0LCAgIDQzNzg2NDY0LCAgIDQzNjY4NDcyLCAgIDQzNTUwNzk4LCAgIDQzNDMzNDQyLCAgIDQzMzE2NDAyLCAgIDQzMTk5Njc3LCAgIDQzMDgzMjY2LCAgIDQyOTY3MTcwLCAgIDQyODUxMzg2LCAgIDQyNzM1OTE0LCAKKyAgICAgIDQyNjIwNzUzLCAgIDQyNTA1OTAzLCAgIDQyMzkxMzYyLCAgIDQyMjc3MTMwLCAgIDQyMTYzMjA2LCAgIDQyMDQ5NTg4LCAgIDQxOTM2Mjc3LCAgIDQxODIzMjcxLCAgIDQxNzEwNTcwLCAgIDQxNTk4MTcyLCAgIDQxNDg2MDc3LCAKKyAgICAgIDQxMzc0Mjg1LCAgIDQxMjYyNzkzLCAgIDQxMTUxNjAyLCAgIDQxMDQwNzExLCAgIDQwOTMwMTE4LCAgIDQwODE5ODIzLCAgIDQwNzA5ODI2LCAgIDQwNjAwMTI1LCAgIDQwNDkwNzIwLCAgIDQwMzgxNjA5LCAgIDQwMjcyNzkzLCAKKyAgICAgIDQwMTY0MjY5LCAgIDQwMDU2MDM5LCAgIDM5OTQ4MDk5LCAgIDM5ODQwNDUxLCAgIDM5NzMzMDkzLCAgIDM5NjI2MDI0LCAgIDM5NTE5MjQzLCAgIDM5NDEyNzUxLCAgIDM5MzA2NTQ1LCAgIDM5MjAwNjI1LCAgIDM5MDk0OTkxLCAKKyAgICAgIDM4OTg5NjQyLCAgIDM4ODg0NTc2LCAgIDM4Nzc5Nzk0LCAgIDM4Njc1Mjk0LCAgIDM4NTcxMDc1LCAgIDM4NDY3MTM4LCAgIDM4MzYzNDgwLCAgIDM4MjYwMTAyLCAgIDM4MTU3MDAyLCAgIDM4MDU0MTgwLCAgIDM3OTUxNjM1LCAKKyAgICAgIDM3ODQ5MzY3LCAgIDM3NzQ3Mzc0LCAgIDM3NjQ1NjU2LCAgIDM3NTQ0MjEyLCAgIDM3NDQzMDQyLCAgIDM3MzQyMTQ0LCAgIDM3MjQxNTE4LCAgIDM3MTQxMTYzLCAgIDM3MDQxMDc4LCAgIDM2OTQxMjY0LCAgIDM2ODQxNzE4LCAKKyAgICAgIDM2NzQyNDQwLCAgIDM2NjQzNDMwLCAgIDM2NTQ0Njg3LCAgIDM2NDQ2MjEwLCAgIDM2MzQ3OTk4LCAgIDM2MjUwMDUxLCAgIDM2MTUyMzY4LCAgIDM2MDU0OTQ4LCAgIDM1OTU3NzkwLCAgIDM1ODYwODk1LCAgIDM1NzY0MjYwLCAKKyAgICAgIDM1NjY3ODg2LCAgIDM1NTcxNzcyLCAgIDM1NDc1OTE2LCAgIDM1MzgwMzE5LCAgIDM1Mjg0OTgwLCAgIDM1MTg5ODk3LCAgIDM1MDk1MDcxLCAgIDM1MDAwNTAwLCAgIDM0OTA2MTg0LCAgIDM0ODEyMTIyLCAgIDM0NzE4MzE0LCAKKyAgICAgIDM0NjI0NzU4LCAgIDM0NTMxNDU0LCAgIDM0NDM4NDAyLCAgIDM0MzQ1NjAxLCAgIDM0MjUzMDUwLCAgIDM0MTYwNzQ4LCAgIDM0MDY4Njk1LCAgIDMzOTc2ODkwLCAgIDMzODg1MzMyLCAgIDMzNzk0MDIxLCAgIDMzNzAyOTU2LCAKKyAgICAgIDMzNjEyMTM3LCAgIDMzNTIxNTYyLCAgIDMzNDMxMjMxLCAgIDMzMzQxMTQ0LCAgIDMzMjUxMjk5LCAgIDMzMTYxNjk3LCAgIDMzMDcyMzM2LCAgIDMyOTgzMjE2LCAgIDMyODk0MzM2LCAgIDMyODA1Njk1LCAgIDMyNzE3Mjk0LCAKKyAgICAgIDMyNjI5MTMwLCAgIDMyNTQxMjA0LCAgIDMyNDUzNTE1LCAgIDMyMzY2MDYzLCAgIDMyMjc4ODQ2LCAgIDMyMTkxODY0LCAgIDMyMTA1MTE2LCAgIDMyMDE4NjAyLCAgIDMxOTMyMzIyLCAgIDMxODQ2MjczLCAgIDMxNzYwNDU3LCAKKyAgICAgIDMxNjc0ODcyLCAgIDMxNTg5NTE4LCAgIDMxNTA0MzkzLCAgIDMxNDE5NDk4LCAgIDMxMzM0ODMyLCAgIDMxMjUwMzk0LCAgIDMxMTY2MTgzLCAgIDMxMDgyMjAwLCAgIDMwOTk4NDQyLCAgIDMwOTE0OTExLCAgIDMwODMxNjA0LCAKKyAgICAgIDMwNzQ4NTIyLCAgIDMwNjY1NjY0LCAgIDMwNTgzMDI5LCAgIDMwNTAwNjE3LCAgIDMwNDE4NDI2LCAgIDMwMzM2NDU4LCAgIDMwMjU0NzEwLCAgIDMwMTczMTgzLCAgIDMwMDkxODc1LCAgIDMwMDEwNzg2LCAgIDI5OTI5OTE2LCAKKyAgICAgIDI5ODQ5MjYzLCAgIDI5NzY4ODI5LCAgIDI5Njg4NjEwLCAgIDI5NjA4NjA4LCAgIDI5NTI4ODIyLCAgIDI5NDQ5MjUwLCAgIDI5MzY5ODkzLCAgIDI5MjkwNzUwLCAgIDI5MjExODIwLCAgIDI5MTMzMTAzLCAgIDI5MDU0NTk4LCAKKyAgICAgIDI4OTc2MzA0LCAgIDI4ODk4MjIyLCAgIDI4ODIwMzUwLCAgIDI4NzQyNjg3LCAgIDI4NjY1MjM0LCAgIDI4NTg3OTkwLCAgIDI4NTEwOTU0LCAgIDI4NDM0MTI1LCAgIDI4MzU3NTAzLCAgIDI4MjgxMDg4LCAgIDI4MjA0ODc5LCAKKyAgICAgIDI4MTI4ODc1LCAgIDI4MDUzMDc2LCAgIDI3OTc3NDgyLCAgIDI3OTAyMDkxLCAgIDI3ODI2OTAzLCAgIDI3NzUxOTE3LCAgIDI3Njc3MTM0LCAgIDI3NjAyNTUyLCAgIDI3NTI4MTcyLCAgIDI3NDUzOTkxLCAgIDI3MzgwMDExLCAKKyAgICAgIDI3MzA2MjMwLCAgIDI3MjMyNjQ4LCAgIDI3MTU5MjY0LCAgIDI3MDg2MDc4LCAgIDI3MDEzMDg5LCAgIDI2OTQwMjk2LCAgIDI2ODY3NzAwLCAgIDI2Nzk1MzAwLCAgIDI2NzIzMDk0LCAgIDI2NjUxMDgzLCAgIDI2NTc5MjY3LCAKKyAgICAgIDI2NTA3NjQzLCAgIDI2NDM2MjEzLCAgIDI2MzY0OTc1LCAgIDI2MjkzOTI5LCAgIDI2MjIzMDc1LCAgIDI2MTUyNDEyLCAgIDI2MDgxOTM5LCAgIDI2MDExNjU2LCAgIDI1OTQxNTYyLCAgIDI1ODcxNjU3LCAgIDI1ODAxOTQwLCAKKyAgICAgIDI1NzMyNDEyLCAgIDI1NjYzMDcxLCAgIDI1NTkzOTE2LCAgIDI1NTI0OTQ4LCAgIDI1NDU2MTY2LCAgIDI1Mzg3NTY5LCAgIDI1MzE5MTU3LCAgIDI1MjUwOTI5LCAgIDI1MTgyODg2LCAgIDI1MTE1MDI1LCAgIDI1MDQ3MzQ4LCAKKyAgICAgIDI0OTc5ODUyLCAgIDI0OTEyNTM5LCAgIDI0ODQ1NDA3LCAgIDI0Nzc4NDU2LCAgIDI0NzExNjg2LCAgIDI0NjQ1MDk1LCAgIDI0NTc4Njg0LCAgIDI0NTEyNDUxLCAgIDI0NDQ2Mzk3LCAgIDI0MzgwNTIyLCAgIDI0MzE0ODIzLCAKKyAgICAgIDI0MjQ5MzAyLCAgIDI0MTgzOTU3LCAgIDI0MTE4Nzg5LCAgIDI0MDUzNzk2LCAgIDIzOTg4OTc4LCAgIDIzOTI0MzM1LCAgIDIzODU5ODY2LCAgIDIzNzk1NTcwLCAgIDIzNzMxNDQ4LCAgIDIzNjY3NDk5LCAgIDIzNjAzNzIyLCAKKyAgICAgIDIzNTQwMTE3LCAgIDIzNDc2NjgzLCAgIDIzNDEzNDIxLCAgIDIzMzUwMzI4LCAgIDIzMjg3NDA2LCAgIDIzMjI0NjUzLCAgIDIzMTYyMDcwLCAgIDIzMDk5NjU1LCAgIDIzMDM3NDA4LCAgIDIyOTc1MzI5LCAgIDIyOTEzNDE3LCAKKyAgICAgIDIyODUxNjczLCAgIDIyNzkwMDk0LCAgIDIyNzI4NjgxLCAgIDIyNjY3NDM0LCAgIDIyNjA2MzUyLCAgIDIyNTQ1NDM1LCAgIDIyNDg0NjgyLCAgIDIyNDI0MDkyLCAgIDIyMzYzNjY2LCAgIDIyMzAzNDAyLCAgIDIyMjQzMzAxLCAKKyAgICAgIDIyMTgzMzYyLCAgIDIyMTIzNTg0LCAgIDIyMDYzOTY4LCAgIDIyMDA0NTEyLCAgIDIxOTQ1MjE2LCAgIDIxODg2MDgwLCAgIDIxODI3MTA0LCAgIDIxNzY4Mjg2LCAgIDIxNzA5NjI3LCAgIDIxNjUxMTI2LCAgIDIxNTkyNzgzLCAKKyAgICAgIDIxNTM0NTk3LCAgIDIxNDc2NTY3LCAgIDIxNDE4Njk0LCAgIDIxMzYwOTc3LCAgIDIxMzAzNDE2LCAgIDIxMjQ2MDA5LCAgIDIxMTg4NzU4LCAgIDIxMTMxNjYwLCAgIDIxMDc0NzE3LCAgIDIxMDE3OTI2LCAgIDIwOTYxMjg5LCAKKyAgICAgIDIwOTA0ODA1LCAgIDIwODQ4NDczLCAgIDIwNzkyMjkyLCAgIDIwNzM2MjYzLCAgIDIwNjgwMzg1LCAgIDIwNjI0NjU3LCAgIDIwNTY5MDgwLCAgIDIwNTEzNjUyLCAgIDIwNDU4Mzc0LCAgIDIwNDAzMjQ1LCAgIDIwMzQ4MjY0LCAKKyAgICAgIDIwMjkzNDMyLCAgIDIwMjM4NzQ3LCAgIDIwMTg0MjA5LCAgIDIwMTI5ODE5LCAgIDIwMDc1NTc1LCAgIDIwMDIxNDc3LCAgIDE5OTY3NTI1LCAgIDE5OTEzNzE5LCAgIDE5ODYwMDU3LCAgIDE5ODA2NTQwLCAgIDE5NzUzMTY3LCAKKyAgICAgIDE5Njk5OTM4LCAgIDE5NjQ2ODUzLCAgIDE5NTkzOTEwLCAgIDE5NTQxMTExLCAgIDE5NDg4NDUzLCAgIDE5NDM1OTM3LCAgIDE5MzgzNTYzLCAgIDE5MzMxMzMwLCAgIDE5Mjc5MjM4LCAgIDE5MjI3Mjg2LCAgIDE5MTc1NDc0LCAKKyAgICAgIDE5MTIzODAyLCAgIDE5MDcyMjY5LCAgIDE5MDIwODc1LCAgIDE4OTY5NjE5LCAgIDE4OTE4NTAyLCAgIDE4ODY3NTIyLCAgIDE4ODE2NjgwLCAgIDE4NzY1OTc0LCAgIDE4NzE1NDA1LCAgIDE4NjY0OTczLCAgIDE4NjE0Njc2LCAKKyAgICAgIDE4NTY0NTE1LCAgIDE4NTE0NDg5LCAgIDE4NDY0NTk4LCAgIDE4NDE0ODQyLCAgIDE4MzY1MjE5LCAgIDE4MzE1NzMwLCAgIDE4MjY2Mzc1LCAgIDE4MjE3MTUyLCAgIDE4MTY4MDYyLCAgIDE4MTE5MTA1LCAgIDE4MDcwMjc5LCAKKyAgICAgIDE4MDIxNTg1LCAgIDE3OTczMDIyLCAgIDE3OTI0NTkwLCAgIDE3ODc2Mjg5LCAgIDE3ODI4MTE4LCAgIDE3NzgwMDc2LCAgIDE3NzMyMTY0LCAgIDE3Njg0MzgxLCAgIDE3NjM2NzI3LCAgIDE3NTg5MjAxLCAgIDE3NTQxODAzLCAKKyAgICAgIDE3NDk0NTMzLCAgIDE3NDQ3MzkxLCAgIDE3NDAwMzc1LCAgIDE3MzUzNDg2LCAgIDE3MzA2NzI0LCAgIDE3MjYwMDg3LCAgIDE3MjEzNTc3LCAgIDE3MTY3MTkxLCAgIDE3MTIwOTMwLCAgIDE3MDc0Nzk1LCAgIDE3MDI4NzgzLCAKKyAgICAgIDE2OTgyODk2LCAgIDE2OTM3MTMyLCAgIDE2ODkxNDkxLCAgIDE2ODQ1OTc0LCAgIDE2ODAwNTc5LCAgIDE2NzU1MzA2LCAgIDE2NzEwMTU1LCAgIDE2NjY1MTI2LCAgIDE2NjIwMjE5LCAgIDE2NTc1NDMyLCAgIDE2NTMwNzY2LCAKKyAgICAgIDE2NDg2MjIxLCAgIDE2NDQxNzk1LCAgIDE2Mzk3NDkwLCAgIDE2MzUzMzAzLCAgIDE2MzA5MjM2LCAgIDE2MjY1Mjg3LCAgIDE2MjIxNDU3LCAgIDE2MTc3NzQ1LCAgIDE2MTM0MTUxLCAgIDE2MDkwNjc0LCAgIDE2MDQ3MzE0LCAKKyAgICAgIDE2MDA0MDcyLCAgIDE1OTYwOTQ1LCAgIDE1OTE3OTM1LCAgIDE1ODc1MDQxLCAgIDE1ODMyMjYzLCAgIDE1Nzg5NTk5LCAgIDE1NzQ3MDUxLCAgIDE1NzA0NjE3LCAgIDE1NjYyMjk4LCAgIDE1NjIwMDkzLCAgIDE1NTc4MDAxLCAKKyAgICAgIDE1NTM2MDIzLCAgIDE1NDk0MTU4LCAgIDE1NDUyNDA2LCAgIDE1NDEwNzY2LCAgIDE1MzY5MjM5LCAgIDE1MzI3ODIzLCAgIDE1Mjg2NTE5LCAgIDE1MjQ1MzI3LCAgIDE1MjA0MjQ1LCAgIDE1MTYzMjc0LCAgIDE1MTIyNDE0LCAKKyAgICAgIDE1MDgxNjYzLCAgIDE1MDQxMDIzLCAgIDE1MDAwNDkxLCAgIDE0OTYwMDcwLCAgIDE0OTE5NzU3LCAgIDE0ODc5NTUyLCAgIDE0ODM5NDU2LCAgIDE0Nzk5NDY4LCAgIDE0NzU5NTg4LCAgIDE0NzE5ODE1LCAgIDE0NjgwMTUwLCAKKyAgICAgIDE0NjQwNTkxLCAgIDE0NjAxMTM5LCAgIDE0NTYxNzkzLCAgIDE0NTIyNTU0LCAgIDE0NDgzNDIwLCAgIDE0NDQ0MzkxLCAgIDE0NDA1NDY4LCAgIDE0MzY2NjQ5LCAgIDE0MzI3OTM1LCAgIDE0Mjg5MzI2LCAgIDE0MjUwODIwLCAKKyAgICAgIDE0MjEyNDE4LCAgIDE0MTc0MTIwLCAgIDE0MTM1OTI1LCAgIDE0MDk3ODMzLCAgIDE0MDU5ODQzLCAgIDE0MDIxOTU2LCAgIDEzOTg0MTcxLCAgIDEzOTQ2NDg4LCAgIDEzOTA4OTA2LCAgIDEzODcxNDI2LCAgIDEzODM0MDQ3LCAKKyAgICAgIDEzNzk2NzY4LCAgIDEzNzU5NTkwLCAgIDEzNzIyNTEyLCAgIDEzNjg1NTM0LCAgIDEzNjQ4NjU1LCAgIDEzNjExODc2LCAgIDEzNTc1MTk2LCAgIDEzNTM4NjE1LCAgIDEzNTAyMTMyLCAgIDEzNDY1NzQ4LCAgIDEzNDI5NDYyLCAKKyAgICAgIDEzMzkzMjczLCAgIDEzMzU3MTgzLCAgIDEzMzIxMTg5LCAgIDEzMjg1MjkyLCAgIDEzMjQ5NDkyLCAgIDEzMjEzNzg5LCAgIDEzMTc4MTgyLCAgIDEzMTQyNjcwLCAgIDEzMTA3MjU1LCAgIDEzMDcxOTM0LCAgIDEzMDM2NzA5LCAKKyAgICAgIDEzMDAxNTc5LCAgIDEyOTY2NTQ0LCAgIDEyOTMxNjAzLCAgIDEyODk2NzU2LCAgIDEyODYyMDAzLCAgIDEyODI3MzQ0LCAgIDEyNzkyNzc4LCAgIDEyNzU4MzA1LCAgIDEyNzIzOTI1LCAgIDEyNjg5NjM4LCAgIDEyNjU1NDQzLCAKKyAgICAgIDEyNjIxMzQxLCAgIDEyNTg3MzMwLCAgIDEyNTUzNDExLCAgIDEyNTE5NTgzLCAgIDEyNDg1ODQ2LCAgIDEyNDUyMjAxLCAgIDEyNDE4NjQ2LCAgIDEyMzg1MTgxLCAgIDEyMzUxODA3LCAgIDEyMzE4NTIyLCAgIDEyMjg1MzI3LCAKKyAgICAgIDEyMjUyMjIyLCAgIDEyMjE5MjA2LCAgIDEyMTg2Mjc5LCAgIDEyMTUzNDQwLCAgIDEyMTIwNjkwLCAgIDEyMDg4MDI5LCAgIDEyMDU1NDU1LCAgIDEyMDIyOTY5LCAgIDExOTkwNTcxLCAgIDExOTU4MjYwLCAgIDExOTI2MDM2LCAKKyAgICAgIDExODkzODk5LCAgIDExODYxODQ4LCAgIDExODI5ODg0LCAgIDExNzk4MDA2LCAgIDExNzY2MjE0LCAgIDExNzM0NTA3LCAgIDExNzAyODg2LCAgIDExNjcxMzUwLCAgIDExNjM5OTAwLCAgIDExNjA4NTMzLCAgIDExNTc3MjUyLCAKKyAgICAgIDExNTQ2MDU1LCAgIDExNTE0OTQxLCAgIDExNDgzOTEyLCAgIDExNDUyOTY2LCAgIDExNDIyMTA0LCAgIDExMzkxMzI1LCAgIDExMzYwNjI4LCAgIDExMzMwMDE1LCAgIDExMjk5NDg0LCAgIDExMjY5MDM1LCAgIDExMjM4NjY4LCAKKyAgICAgIDExMjA4Mzg0LCAgIDExMTc4MTgwLCAgIDExMTQ4MDU4LCAgIDExMTE4MDE4LCAgIDExMDg4MDU4LCAgIDExMDU4MTc5LCAgIDExMDI4MzgwLCAgIDEwOTk4NjYyLCAgIDEwOTY5MDI0LCAgIDEwOTM5NDY2LCAgIDEwOTA5OTg3LCAKKyAgICAgIDEwODgwNTg4LCAgIDEwODUxMjY4LCAgIDEwODIyMDI3LCAgIDEwNzkyODY1LCAgIDEwNzYzNzgxLCAgIDEwNzM0Nzc2LCAgIDEwNzA1ODQ5LCAgIDEwNjc3MDAwLCAgIDEwNjQ4MjI4LCAgIDEwNjE5NTM1LCAgIDEwNTkwOTE4LCAKKyAgICAgIDEwNTYyMzc5LCAgIDEwNTMzOTE2LCAgIDEwNTA1NTMwLCAgIDEwNDc3MjIxLCAgIDEwNDQ4OTg4LCAgIDEwNDIwODMxLCAgIDEwMzkyNzUwLCAgIDEwMzY0NzQ1LCAgIDEwMzM2ODE1LCAgIDEwMzA4OTYwLCAgIDEwMjgxMTgwLCAKKyAgICAgIDEwMjUzNDc2LCAgIDEwMjI1ODQ2LCAgIDEwMTk4MjkwLCAgIDEwMTcwODA5LCAgIDEwMTQzNDAxLCAgIDEwMTE2MDY4LCAgIDEwMDg4ODA4LCAgIDEwMDYxNjIyLCAgIDEwMDM0NTA5LCAgIDEwMDA3NDY4LCAgICA5OTgwNTAxLCAKKyAgICAgICA5OTUzNjA3LCAgICA5OTI2Nzg1LCAgICA5OTAwMDM1LCAgICA5ODczMzU3LCAgICA5ODQ2NzUyLCAgICA5ODIwMjE3LCAgICA5NzkzNzU1LCAgICA5NzY3MzY0LCAgICA5NzQxMDQzLCAgICA5NzE0Nzk0LCAgICA5Njg4NjE2LCAKKyAgICAgICA5NjYyNTA4LCAgICA5NjM2NDcwLCAgICA5NjEwNTAzLCAgICA5NTg0NjA1LCAgICA5NTU4Nzc4LCAgICA5NTMzMDE5LCAgICA5NTA3MzMxLCAgICA5NDgxNzExLCAgICA5NDU2MTYxLCAgICA5NDMwNjc5LCAgICA5NDA1MjY2LCAKKyAgICAgICA5Mzc5OTIyLCAgICA5MzU0NjQ2LCAgICA5MzI5NDM4LCAgICA5MzA0Mjk4LCAgICA5Mjc5MjI1LCAgICA5MjU0MjIxLCAgICA5MjI5MjgzLCAgICA5MjA0NDEzLCAgICA5MTc5NjEwLCAgICA5MTU0ODc0LCAgICA5MTMwMjA0LCAKKyAgICAgICA5MTA1NjAxLCAgICA5MDgxMDY0LCAgICA5MDU2NTkzLCAgICA5MDMyMTg4LCAgICA5MDA3ODQ5LCAgICA4OTgzNTc2LCAgICA4OTU5MzY4LCAgICA4OTM1MjI1LCAgICA4OTExMTQ3LCAgICA4ODg3MTM0LCAgICA4ODYzMTg2LCAKKyAgICAgICA4ODM5MzAyLCAgICA4ODE1NDgzLCAgICA4NzkxNzI4LCAgICA4NzY4MDM3LCAgICA4NzQ0NDA5LCAgICA4NzIwODQ2LCAgICA4Njk3MzQ2LCAgICA4NjczOTA5LCAgICA4NjUwNTM1LCAgICA4NjI3MjI1LCAgICA4NjAzOTc3LCAKKyAgICAgICA4NTgwNzkyLCAgICA4NTU3NjY5LCAgICA4NTM0NjA4LCAgICA4NTExNjEwLCAgICA4NDg4Njc0LCAgICA4NDY1Nzk5LCAgICA4NDQyOTg3LCAgICA4NDIwMjM1LCAgICA4Mzk3NTQ1LCAgICA4Mzc0OTE2LCAgICA4MzUyMzQ4LCAKKyAgICAgICA4MzI5ODQxLCAgICA4MzA3Mzk1LCAgICA4Mjg1MDA5LCAgICA4MjYyNjgzLCAgICA4MjQwNDE4LCAgICA4MjE4MjEyLCAgICA4MTk2MDY3LCAgICA4MTczOTgxLCAgICA4MTUxOTU0LCAgICA4MTI5OTg3LCAgICA4MTA4MDc5LCAKKyAgICAgICA4MDg2MjMwLCAgICA4MDY0NDQwLCAgICA4MDQyNzA5LCAgICA4MDIxMDM2LCAgICA3OTk5NDIyLCAgICA3OTc3ODY2LCAgICA3OTU2MzY4LCAgICA3OTM0OTI4LCAgICA3OTEzNTQ1LCAgICA3ODkyMjIxLCAgICA3ODcwOTU0LCAKKyAgICAgICA3ODQ5NzQ0LCAgICA3ODI4NTkxLCAgICA3ODA3NDk1LCAgICA3Nzg2NDU2LCAgICA3NzY1NDc0LCAgICA3NzQ0NTQ4LCAgICA3NzIzNjc5LCAgICA3NzAyODY2LCAgICA3NjgyMTA5LCAgICA3NjYxNDA4LCAgICA3NjQwNzYzLCAKKyAgICAgICA3NjIwMTczLCAgICA3NTk5NjM5LCAgICA3NTc5MTYwLCAgICA3NTU4NzM3LCAgICA3NTM4MzY4LCAgICA3NTE4MDU1LCAgICA3NDk3Nzk2LCAgICA3NDc3NTkxLCAgICA3NDU3NDQxLCAgICA3NDM3MzQ2LCAgICA3NDE3MzA0LCAKKyAgICAgICA3Mzk3MzE3LCAgICA3Mzc3MzgzLCAgICA3MzU3NTAzLCAgICA3MzM3Njc3LCAgICA3MzE3OTA0LCAgICA3Mjk4MTg1LCAgICA3Mjc4NTE4LCAgICA3MjU4OTA1LCAgICA3MjM5MzQ0LCAgICA3MjE5ODM2LCAgICA3MjAwMzgxLCAKKyAgICAgICA3MTgwOTc4LCAgICA3MTYxNjI3LCAgICA3MTQyMzI5LCAgICA3MTIzMDgyLCAgICA3MTAzODg4LCAgICA3MDg0NzQ1LCAgICA3MDY1NjU0LCAgICA3MDQ2NjE0LCAgICA3MDI3NjI1LCAgICA3MDA4Njg4LCAgICA2OTg5ODAyLCAKKyAgICAgICA2OTcwOTY2LCAgICA2OTUyMTgxLCAgICA2OTMzNDQ3LCAgICA2OTE0NzY0LCAgICA2ODk2MTMwLCAgICA2ODc3NTQ3LCAgICA2ODU5MDE0LCAgICA2ODQwNTMxLCAgICA2ODIyMDk4LCAgICA2ODAzNzE1LCAgICA2Nzg1MzgxLCAKKyAgICAgICA2NzY3MDk2LCAgICA2NzQ4ODYxLCAgICA2NzMwNjc1LCAgICA2NzEyNTM3LCAgICA2Njk0NDQ5LCAgICA2Njc2NDEwLCAgICA2NjU4NDE5LCAgICA2NjQwNDc2LCAgICA2NjIyNTgyLCAgICA2NjA0NzM2LCAgICA2NTg2OTM4LCAKKyAgICAgICA2NTY5MTg4LCAgICA2NTUxNDg2LCAgICA2NTMzODMyLCAgICA2NTE2MjI1LCAgICA2NDk4NjY2LCAgICA2NDgxMTU0LCAgICA2NDYzNjg5LCAgICA2NDQ2MjcyLCAgICA2NDI4OTAxLCAgICA2NDExNTc3LCAgICA2Mzk0Mjk5LCAKKyAgICAgICA2Mzc3MDY5LCAgICA2MzU5ODg0LCAgICA2MzQyNzQ2LCAgICA2MzI1NjU1LCAgICA2MzA4NjA5LCAgICA2MjkxNjA5LCAgICA2Mjc0NjU1LCAgICA2MjU3NzQ3LCAgICA2MjQwODg0LCAgICA2MjI0MDY2LCAgICA2MjA3Mjk0LCAKKyAgICAgICA2MTkwNTY4LCAgICA2MTczODg2LCAgICA2MTU3MjQ5LCAgICA2MTQwNjU3LCAgICA2MTI0MTEwLCAgICA2MTA3NjA3LCAgICA2MDkxMTQ5LCAgICA2MDc0NzM1LCAgICA2MDU4MzY1LCAgICA2MDQyMDQwLCAgICA2MDI1NzU4LCAKKyAgICAgICA2MDA5NTIxLCAgICA1OTkzMzI3LCAgICA1OTc3MTc3LCAgICA1OTYxMDcwLCAgICA1OTQ1MDA3LCAgICA1OTI4OTg3LCAgICA1OTEzMDEwLCAgICA1ODk3MDc2LCAgICA1ODgxMTg1LCAgICA1ODY1MzM3LCAgICA1ODQ5NTMyLCAKKyAgICAgICA1ODMzNzY5LCAgICA1ODE4MDQ5LCAgICA1ODAyMzcxLCAgICA1Nzg2NzM1LCAgICA1NzcxMTQxLCAgICA1NzU1NTkwLCAgICA1NzQwMDgwLCAgICA1NzI0NjEyLCAgICA1NzA5MTg2LCAgICA1NjkzODAyLCAgICA1Njc4NDU5LCAKKyAgICAgICA1NjYzMTU3LCAgICA1NjQ3ODk2LCAgICA1NjMyNjc3LCAgICA1NjE3NDk4LCAgICA1NjAyMzYxLCAgICA1NTg3MjY0LCAgICA1NTcyMjA4LCAgICA1NTU3MTkzLCAgICA1NTQyMjE4LCAgICA1NTI3MjgzLCAgICA1NTEyMzg5LCAKKyAgICAgICA1NDk3NTM0LCAgICA1NDgyNzIwLCAgICA1NDY3OTQ2LCAgICA1NDUzMjExLCAgICA1NDM4NTE3LCAgICA1NDIzODYxLCAgICA1NDA5MjQ2LCAgICA1Mzk0NjY5LCAgICA1MzgwMTMyLCAgICA1MzY1NjM1LCAgICA1MzUxMTc2LCAKKyAgICAgICA1MzM2NzU2LCAgICA1MzIyMzc1LCAgICA1MzA4MDMzLCAgICA1MjkzNzI5LCAgICA1Mjc5NDY0LCAgICA1MjY1MjM3LCAgICA1MjUxMDQ5LCAgICA1MjM2ODk5LCAgICA1MjIyNzg3LCAgICA1MjA4NzEzLCAgICA1MTk0Njc3LCAKKyAgICAgICA1MTgwNjc5LCAgICA1MTY2NzE5LCAgICA1MTUyNzk2LCAgICA1MTM4OTExLCAgICA1MTI1MDYzLCAgICA1MTExMjUyLCAgICA1MDk3NDc5LCAgICA1MDgzNzQzLCAgICA1MDcwMDQ0LCAgICA1MDU2MzgyLCAgICA1MDQyNzU2LCAKKyAgICAgICA1MDI5MTY3LCAgICA1MDE1NjE1LCAgICA1MDAyMTAwLCAgICA0OTg4NjIwLCAgICA0OTc1MTc4LCAgICA0OTYxNzcxLCAgICA0OTQ4NDAwLCAgICA0OTM1MDY2LCAgICA0OTIxNzY3LCAgICA0OTA4NTA1LCAgICA0ODk1Mjc4LCAKKyAgICAgICA0ODgyMDg2LCAgICA0ODY4OTMxLCAgICA0ODU1ODEwLCAgICA0ODQyNzI1LCAgICA0ODI5Njc2LCAgICA0ODE2NjYxLCAgICA0ODAzNjgyLCAgICA0NzkwNzM3LCAgICA0Nzc3ODI3LCAgICA0NzY0OTUzLCAgICA0NzUyMTEyLCAKKyAgICAgICA0NzM5MzA3LCAgICA0NzI2NTM2LCAgICA0NzEzNzk5LCAgICA0NzAxMDk3LCAgICA0Njg4NDI5LCAgICA0Njc1Nzk1LCAgICA0NjYzMTk1LCAgICA0NjUwNjI5LCAgICA0NjM4MDk3LCAgICA0NjI1NTk5LCAgICA0NjEzMTM0LCAKKyAgICAgICA0NjAwNzAzLCAgICA0NTg4MzA2LCAgICA0NTc1OTQxLCAgICA0NTYzNjExLCAgICA0NTUxMzEzLCAgICA0NTM5MDQ5LCAgICA0NTI2ODE3LCAgICA0NTE0NjE5LCAgICA0NTAyNDUzLCAgICA0NDkwMzIwLCAgICA0NDc4MjIwLCAKKyAgICAgICA0NDY2MTUzLCAgICA0NDU0MTE4LCAgICA0NDQyMTE1LCAgICA0NDMwMTQ1LCAgICA0NDE4MjA3LCAgICA0NDA2MzAxLCAgICA0Mzk0NDI4LCAgICA0MzgyNTg2LCAgICA0MzcwNzc2LCAgICA0MzU4OTk4LCAgICA0MzQ3MjUyLCAKKyAgICAgICA0MzM1NTM4LCAgICA0MzIzODU1LCAgICA0MzEyMjAzLCAgICA0MzAwNTgzLCAgICA0Mjg4OTk0LCAgICA0Mjc3NDM3LCAgICA0MjY1OTEwLCAgICA0MjU0NDE1LCAgICA0MjQyOTUwLCAgICA0MjMxNTE3LCAgICA0MjIwMTE0LCAKKyAgICAgICA0MjA4NzQyLCAgICA0MTk3NDAxLCAgICA0MTg2MDkwLCAgICA0MTc0ODEwLCAgICA0MTYzNTYwLCAgICA0MTUyMzQwLCAgICA0MTQxMTUxLCAgICA0MTI5OTkyLCAgICA0MTE4ODYzLCAgICA0MTA3NzY0LCAgICA0MDk2Njk0LCAKKyAgICAgICA0MDg1NjU1LCAgICA0MDc0NjQ1LCAgICA0MDYzNjY1LCAgICA0MDUyNzE1LCAgICA0MDQxNzk0LCAgICA0MDMwOTAzLCAgICA0MDIwMDQxLCAgICA0MDA5MjA4LCAgICAzOTk4NDA0LCAgICAzOTg3NjMwLCAgICAzOTc2ODg0LCAKKyAgICAgICAzOTY2MTY4LCAgICAzOTU1NDgwLCAgICAzOTQ0ODIxLCAgICAzOTM0MTkxLCAgICAzOTIzNTkwLCAgICAzOTEzMDE3LCAgICAzOTAyNDcyLCAgICAzODkxOTU2LCAgICAzODgxNDY5LCAgICAzODcxMDA5LCAgICAzODYwNTc4LCAKKyAgICAgICAzODUwMTc1LCAgICAzODM5ODAwLCAgICAzODI5NDUzLCAgICAzODE5MTMzLCAgICAzODA4ODQyLCAgICAzNzk4NTc4LCAgICAzNzg4MzQyLCAgICAzNzc4MTM0LCAgICAzNzY3OTUzLCAgICAzNzU3Nzk5LCAgICAzNzQ3NjczLCAKKyAgICAgICAzNzM3NTc0LCAgICAzNzI3NTAzLCAgICAzNzE3NDU4LCAgICAzNzA3NDQxLCAgICAzNjk3NDUwLCAgICAzNjg3NDg3LCAgICAzNjc3NTUwLCAgICAzNjY3NjQwLCAgICAzNjU3NzU3LCAgICAzNjQ3OTAwLCAgICAzNjM4MDcwLCAKKyAgICAgICAzNjI4MjY3LCAgICAzNjE4NDkwLCAgICAzNjA4NzM5LCAgICAzNTk5MDE0LCAgICAzNTg5MzE2LCAgICAzNTc5NjQ0LCAgICAzNTY5OTk4LCAgICAzNTYwMzc4LCAgICAzNTUwNzgzLCAgICAzNTQxMjE1LCAgICAzNTMxNjczLCAKKyAgICAgICAzNTIyMTU2LCAgICAzNTEyNjY1LCAgICAzNTAzMTk5LCAgICAzNDkzNzU5LCAgICAzNDg0MzQ0LCAgICAzNDc0OTU1LCAgICAzNDY1NTkxLCAgICAzNDU2MjUyLCAgICAzNDQ2OTM5LCAgICAzNDM3NjUwLCAgICAzNDI4Mzg3LCAKKyAgICAgICAzNDE5MTQ4LCAgICAzNDA5OTM1LCAgICAzNDAwNzQ2LCAgICAzMzkxNTgyLCAgICAzMzgyNDQzLCAgICAzMzczMzI4LCAgICAzMzY0MjM4LCAgICAzMzU1MTcyLCAgICAzMzQ2MTMxLCAgICAzMzM3MTE0LCAgICAzMzI4MTIyLCAKKyAgICAgICAzMzE5MTUzLCAgICAzMzEwMjA5LCAgICAzMzAxMjg5LCAgICAzMjkyMzkzLCAgICAzMjgzNTIxLCAgICAzMjc0NjczLCAgICAzMjY1ODQ5LCAgICAzMjU3MDQ4LCAgICAzMjQ4MjcxLCAgICAzMjM5NTE4LCAgICAzMjMwNzg5LCAKKyAgICAgICAzMjIyMDgzLCAgICAzMjEzNDAwLCAgICAzMjA0NzQxLCAgICAzMTk2MTA1LCAgICAzMTg3NDkzLCAgICAzMTc4OTAzLCAgICAzMTcwMzM3LCAgICAzMTYxNzk0LCAgICAzMTUzMjc0LCAgICAzMTQ0Nzc3LCAgICAzMTM2MzAyLCAKKyAgICAgICAzMTI3ODUxLCAgICAzMTE5NDIyLCAgICAzMTExMDE2LCAgICAzMTAyNjMzLCAgICAzMDk0MjcyLCAgICAzMDg1OTM0LCAgICAzMDc3NjE5LCAgICAzMDY5MzI1LCAgICAzMDYxMDU0LCAgICAzMDUyODA2LCAgICAzMDQ0NTc5LCAKKyAgICAgICAzMDM2Mzc1LCAgICAzMDI4MTkzLCAgICAzMDIwMDMzLCAgICAzMDExODk1LCAgICAzMDAzNzc5LCAgICAyOTk1Njg0LCAgICAyOTg3NjEyLCAgICAyOTc5NTYxLCAgICAyOTcxNTMyLCAgICAyOTYzNTI1LCAgICAyOTU1NTM5LCAKKyAgICAgICAyOTQ3NTc1LCAgICAyOTM5NjMyLCAgICAyOTMxNzEwLCAgICAyOTIzODEwLCAgICAyOTE1OTMxLCAgICAyOTA4MDc0LCAgICAyOTAwMjM3LCAgICAyODkyNDIyLCAgICAyODg0NjI4LCAgICAyODc2ODU1LCAgICAyODY5MTAyLCAKKyAgICAgICAyODYxMzcxLCAgICAyODUzNjYwLCAgICAyODQ1OTcxLCAgICAyODM4MzAyLCAgICAyODMwNjUzLCAgICAyODIzMDI1LCAgICAyODE1NDE4LCAgICAyODA3ODMyLCAgICAyODAwMjY1LCAgICAyNzkyNzE5LCAgICAyNzg1MTk0LCAKKyAgICAgICAyNzc3Njg5LCAgICAyNzcwMjAzLCAgICAyNzYyNzM5LCAgICAyNzU1Mjk0LCAgICAyNzQ3ODY5LCAgICAyNzQwNDY0LCAgICAyNzMzMDgwLCAgICAyNzI1NzE1LCAgICAyNzE4MzcwLCAgICAyNzExMDQ1LCAgICAyNzAzNzM5LCAKKyAgICAgICAyNjk2NDUzLCAgICAyNjg5MTg3LCAgICAyNjgxOTQxLCAgICAyNjc0NzE0LCAgICAyNjY3NTA2LCAgICAyNjYwMzE4LCAgICAyNjUzMTQ5LCAgICAyNjQ2MDAwLCAgICAyNjM4ODcwLCAgICAyNjMxNzU5LCAgICAyNjI0NjY3LCAKKyAgICAgICAyNjE3NTk0LCAgICAyNjEwNTQwLCAgICAyNjAzNTA2LCAgICAyNTk2NDkwLCAgICAyNTg5NDkzLCAgICAyNTgyNTE1LCAgICAyNTc1NTU2LCAgICAyNTY4NjE2LCAgICAyNTYxNjk0LCAgICAyNTU0NzkxLCAgICAyNTQ3OTA3LCAKKyAgICAgICAyNTQxMDQxLCAgICAyNTM0MTk0LCAgICAyNTI3MzY1LCAgICAyNTIwNTU0LCAgICAyNTEzNzYyLCAgICAyNTA2OTg4LCAgICAyNTAwMjMzLCAgICAyNDkzNDk1LCAgICAyNDg2Nzc2LCAgICAyNDgwMDc1LCAgICAyNDczMzkyLCAKKyAgICAgICAyNDY2NzI3LCAgICAyNDYwMDgwLCAgICAyNDUzNDUwLCAgICAyNDQ2ODM5LCAgICAyNDQwMjQ2LCAgICAyNDMzNjcwLCAgICAyNDI3MTEyLCAgICAyNDIwNTcxLCAgICAyNDE0MDQ5LCAgICAyNDA3NTQ0LCAgICAyNDAxMDU2LCAKKyAgICAgICAyMzk0NTg2LCAgICAyMzg4MTMzLCAgICAyMzgxNjk4LCAgICAyMzc1MjgwLCAgICAyMzY4ODc5LCAgICAyMzYyNDk2LCAgICAyMzU2MTMwLCAgICAyMzQ5NzgwLCAgICAyMzQzNDQ4LCAgICAyMzM3MTM0LCAgICAyMzMwODM2LCAKKyAgICAgICAyMzI0NTU1LCAgICAyMzE4MjkxLCAgICAyMzEyMDQ0LCAgICAyMzA1ODEzLCAgICAyMjk5NjAwLCAgICAyMjkzNDAzLCAgICAyMjg3MjIzLCAgICAyMjgxMDYwLCAgICAyMjc0OTEzLCAgICAyMjY4NzgzLCAgICAyMjYyNjY5LCAKKyAgICAgICAyMjU2NTcyLCAgICAyMjUwNDkxLCAgICAyMjQ0NDI3LCAgICAyMjM4Mzc5LCAgICAyMjMyMzQ3LCAgICAyMjI2MzMxLCAgICAyMjIwMzMyLCAgICAyMjE0MzQ5LCAgICAyMjA4MzgyLCAgICAyMjAyNDMxLCAgICAyMTk2NDk2LCAKKyAgICAgICAyMTkwNTc3LCAgICAyMTg0Njc0LCAgICAyMTc4Nzg3LCAgICAyMTcyOTE2LCAgICAyMTY3MDYwLCAgICAyMTYxMjIxLCAgICAyMTU1Mzk3LCAgICAyMTQ5NTg5LCAgICAyMTQzNzk2LCAgICAyMTM4MDE5LCAgICAyMTMyMjU4LCAKKyAgICAgICAyMTI2NTEyLCAgICAyMTIwNzgyLCAgICAyMTE1MDY3LCAgICAyMTA5MzY4LCAgICAyMTAzNjgzLCAgICAyMDk4MDE1LCAgICAyMDkyMzYxLCAgICAyMDg2NzIzLCAgICAyMDgxMTAwLCAgICAyMDc1NDkyLCAgICAyMDY5ODk5LCAKKyAgICAgICAyMDY0MzIxLCAgICAyMDU4NzU4LCAgICAyMDUzMjExLCAgICAyMDQ3Njc4LCAgICAyMDQyMTYwLCAgICAyMDM2NjU3LCAgICAyMDMxMTY5LCAgICAyMDI1Njk1LCAgICAyMDIwMjM3LCAgICAyMDE0NzkzLCAgICAyMDA5MzY0LCAKKyAgICAgICAyMDAzOTQ5LCAgICAxOTk4NTQ5LCAgICAxOTkzMTYzLCAgICAxOTg3NzkyLCAgICAxOTgyNDM2LCAgICAxOTc3MDk0LCAgICAxOTcxNzY2LCAgICAxOTY2NDUzLCAgICAxOTYxMTU0LCAgICAxOTU1ODY5LCAgICAxOTUwNTk5LCAKKyAgICAgICAxOTQ1MzQyLCAgICAxOTQwMTAwLCAgICAxOTM0ODcyLCAgICAxOTI5NjU4LCAgICAxOTI0NDU4LCAgICAxOTE5MjcyLCAgICAxOTE0MTAxLCAgICAxOTA4OTQzLCAgICAxOTAzNzk5LCAgICAxODk4NjY4LCAgICAxODkzNTUyLCAKKyAgICAgICAxODg4NDUwLCAgICAxODgzMzYxLCAgICAxODc4Mjg2LCAgICAxODczMjI0LCAgICAxODY4MTc2LCAgICAxODYzMTQyLCAgICAxODU4MTIyLCAgICAxODUzMTE1LCAgICAxODQ4MTIxLCAgICAxODQzMTQxLCAgICAxODM4MTc0LCAKKyAgICAgICAxODMzMjIxLCAgICAxODI4MjgxLCAgICAxODIzMzU0LCAgICAxODE4NDQxLCAgICAxODEzNTQwLCAgICAxODA4NjU0LCAgICAxODAzNzgwLCAgICAxNzk4OTE5LCAgICAxNzk0MDcyLCAgICAxNzg5MjM3LCAgICAxNzg0NDE2LCAKKyAgICAgICAxNzc5NjA3LCAgICAxNzc0ODEyLCAgICAxNzcwMDI5LCAgICAxNzY1MjU5LCAgICAxNzYwNTAyLCAgICAxNzU1NzU4LCAgICAxNzUxMDI3LCAgICAxNzQ2MzA5LCAgICAxNzQxNjAzLCAgICAxNzM2OTEwLCAgICAxNzMyMjI5LCAKKyAgICAgICAxNzI3NTYxLCAgICAxNzIyOTA2LCAgICAxNzE4MjYzLCAgICAxNzEzNjMzLCAgICAxNzA5MDE1LCAgICAxNzA0NDEwLCAgICAxNjk5ODE3LCAgICAxNjk1MjM3LCAgICAxNjkwNjY5LCAgICAxNjg2MTEzLCAgICAxNjgxNTY5LCAKKyAgICAgICAxNjc3MDM4LCAgICAxNjcyNTE5LCAgICAxNjY4MDEyLCAgICAxNjYzNTE3LCAgICAxNjU5MDM0LCAgICAxNjU0NTY0LCAgICAxNjUwMTA1LCAgICAxNjQ1NjU5LCAgICAxNjQxMjI0LCAgICAxNjM2ODAxLCAgICAxNjMyMzkxLCAKKyAgICAgICAxNjI3OTkyLCAgICAxNjIzNjA1LCAgICAxNjE5MjMwLCAgICAxNjE0ODY2LCAgICAxNjEwNTE1LCAgICAxNjA2MTc1LCAgICAxNjAxODQ3LCAgICAxNTk3NTMwLCAgICAxNTkzMjI1LCAgICAxNTg4OTMyLCAgICAxNTg0NjUwLCAKKyAgICAgICAxNTgwMzgwLCAgICAxNTc2MTIyLCAgICAxNTcxODc0LCAgICAxNTY3NjM5LCAgICAxNTYzNDE0LCAgICAxNTU5MjAxLCAgICAxNTU1MDAwLCAgICAxNTUwODEwLCAgICAxNTQ2NjMxLCAgICAxNTQyNDYzLCAgICAxNTM4MzA2LCAKKyAgICAgICAxNTM0MTYxLCAgICAxNTMwMDI3LCAgICAxNTI1OTA0LCAgICAxNTIxNzkyLCAgICAxNTE3NjkxLCAgICAxNTEzNjAyLCAgICAxNTA5NTIzLCAgICAxNTA1NDU1LCAgICAxNTAxMzk5LCAgICAxNDk3MzUzLCAgICAxNDkzMzE4LCAKKyAgICAgICAxNDg5Mjk0LCAgICAxNDg1MjgxLCAgICAxNDgxMjc4LCAgICAxNDc3Mjg3LCAgICAxNDczMzA2LCAgICAxNDY5MzM2LCAgICAxNDY1Mzc2LCAgICAxNDYxNDI3LCAgICAxNDU3NDg5LCAgICAxNDUzNTYyLCAgICAxNDQ5NjQ1LCAKKyAgICAgICAxNDQ1NzM4LCAgICAxNDQxODQzLCAgICAxNDM3OTU3LCAgICAxNDM0MDgyLCAgICAxNDMwMjE4LCAgICAxNDI2MzY0LCAgICAxNDIyNTIwLCAgICAxNDE4Njg3LCAgICAxNDE0ODY0LCAgICAxNDExMDUxLCAgICAxNDA3MjQ5LCAKKyAgICAgICAxNDAzNDU3LCAgICAxMzk5Njc1LCAgICAxMzk1OTAzLCAgICAxMzkyMTQyLCAgICAxMzg4MzkwLCAgICAxMzg0NjQ5LCAgICAxMzgwOTE4LCAgICAxMzc3MTk3LCAgICAxMzczNDg2LCAgICAxMzY5Nzg0LCAgICAxMzY2MDkzLCAKKyAgICAgICAxMzYyNDEyLCAgICAxMzU4NzQxLCAgICAxMzU1MDc5LCAgICAxMzUxNDI4LCAgICAxMzQ3Nzg2LCAgICAxMzQ0MTU0LCAgICAxMzQwNTMyLCAgICAxMzM2OTIwLCAgICAxMzMzMzE3LCAgICAxMzI5NzI0LCAgICAxMzI2MTQxLCAKKyAgICAgICAxMzIyNTY3LCAgICAxMzE5MDA0LCAgICAxMzE1NDQ5LCAgICAxMzExOTA0LCAgICAxMzA4MzY5LCAgICAxMzA0ODQ0LCAgICAxMzAxMzI3LCAgICAxMjk3ODIxLCAgICAxMjk0MzIzLCAgICAxMjkwODM2LCAgICAxMjg3MzU3LCAKKyAgICAgICAxMjgzODg4LCAgICAxMjgwNDI5LCAgICAxMjc2OTc4LCAgICAxMjczNTM3LCAgICAxMjcwMTA1LCAgICAxMjY2NjgzLCAgICAxMjYzMjY5LCAgICAxMjU5ODY1LCAgICAxMjU2NDcwLCAgICAxMjUzMDg0LCAgICAxMjQ5NzA4LCAKKyAgICAgICAxMjQ2MzQwLCAgICAxMjQyOTgyLCAgICAxMjM5NjMyLCAgICAxMjM2MjkyLCAgICAxMjMyOTYwLCAgICAxMjI5NjM4LCAgICAxMjI2MzI0LCAgICAxMjIzMDIwLCAgICAxMjE5NzI0LCAgICAxMjE2NDM3LCAgICAxMjEzMTU5LCAKKyAgICAgICAxMjA5ODkwLCAgICAxMjA2NjMwLCAgICAxMjAzMzc4LCAgICAxMjAwMTM2LCAgICAxMTk2OTAyLCAgICAxMTkzNjc2LCAgICAxMTkwNDYwLCAgICAxMTg3MjUyLCAgICAxMTg0MDUyLCAgICAxMTgwODYyLCAgICAxMTc3NjgwLCAKKyAgICAgICAxMTc0NTA2LCAgICAxMTcxMzQxLCAgICAxMTY4MTg1LCAgICAxMTY1MDM3LCAgICAxMTYxODk3LCAgICAxMTU4NzY3LCAgICAxMTU1NjQ0LCAgICAxMTUyNTMwLCAgICAxMTQ5NDI0LCAgICAxMTQ2MzI3LCAgICAxMTQzMjM4LCAKKyAgICAgICAxMTQwMTU3LCAgICAxMTM3MDg1LCAgICAxMTM0MDIxLCAgICAxMTMwOTY1LCAgICAxMTI3OTE3LCAgICAxMTI0ODc4LCAgICAxMTIxODQ2LCAgICAxMTE4ODIzLCAgICAxMTE1ODA5LCAgICAxMTEyODAyLCAgICAxMTA5ODAzLCAKKyAgICAgICAxMTA2ODEzLCAgICAxMTAzODMwLCAgICAxMTAwODU1LCAgICAxMDk3ODg5LCAgICAxMDk0OTMxLCAgICAxMDkxOTgwLCAgICAxMDg5MDM3LCAgICAxMDg2MTAzLCAgICAxMDgzMTc2LCAgICAxMDgwMjU3LCAgICAxMDc3MzQ2LCAKKyAgICAgICAxMDc0NDQzLCAgICAxMDcxNTQ4LCAgICAxMDY4NjYwLCAgICAxMDY1NzgxLCAgICAxMDYyOTA5LCAgICAxMDYwMDQ0LCAgICAxMDU3MTg4LCAgICAxMDU0MzM5LCAgICAxMDUxNDk4LCAgICAxMDQ4NjY0LCAgICAxMDQ1ODM5LCAKKyAgICAgICAxMDQzMDIwLCAgICAxMDQwMjEwLCAgICAxMDM3NDA3LCAgICAxMDM0NjExLCAgICAxMDMxODIzLCAgICAxMDI5MDQzLCAgICAxMDI2MjcwLCAgICAxMDIzNTA0LCAgICAxMDIwNzQ2LCAgICAxMDE3OTk2LCAgICAxMDE1MjUyLCAKKyAgICAgICAxMDEyNTE3LCAgICAxMDA5Nzg4LCAgICAxMDA3MDY3LCAgICAxMDA0MzUzLCAgICAxMDAxNjQ3LCAgICAgOTk4OTQ4LCAgICAgOTk2MjU2LCAgICAgOTkzNTcxLCAgICAgOTkwODk0LCAgICAgOTg4MjI0LCAgICAgOTg1NTYxLCAKKyAgICAgICAgOTgyOTA1LCAgICAgOTgwMjU2LCAgICAgOTc3NjE1LCAgICAgOTc0OTgwLCAgICAgOTcyMzUzLCAgICAgOTY5NzMzLCAgICAgOTY3MTIwLCAgICAgOTY0NTE0LCAgICAgOTYxOTE1LCAgICAgOTU5MzIzLCAgICAgOTU2NzM3LCAKKyAgICAgICAgOTU0MTU5LCAgICAgOTUxNTg4LCAgICAgOTQ5MDI0LCAgICAgOTQ2NDY3LCAgICAgOTQzOTE2LCAgICAgOTQxMzczLCAgICAgOTM4ODM2LCAgICAgOTM2MzA2LCAgICAgOTMzNzgzLCAgICAgOTMxMjY3LCAgICAgOTI4NzU3LCAKKyAgICAgICAgOTI2MjU0LCAgICAgOTIzNzU4LCAgICAgOTIxMjY5LCAgICAgOTE4Nzg3LCAgICAgOTE2MzExLCAgICAgOTEzODQyLCAgICAgOTExMzc5LCAgICAgOTA4OTIzLCAgICAgOTA2NDc0LCAgICAgOTA0MDMxLCAgICAgOTAxNTk1LCAKKyAgICAgICAgODk5MTY2LCAgICAgODk2NzQzLCAgICAgODk0MzI2LCAgICAgODkxOTE2LCAgICAgODg5NTEzLCAgICAgODg3MTE2LCAgICAgODg0NzI1LCAgICAgODgyMzQxLCAgICAgODc5OTYzLCAgICAgODc3NTkyLCAgICAgODc1MjI3LCAKKyAgICAgICAgODcyODY5LCAgICAgODcwNTE3LCAgICAgODY4MTcxLCAgICAgODY1ODMxLCAgICAgODYzNDk4LCAgICAgODYxMTcxLCAgICAgODU4ODUxLCAgICAgODU2NTM2LCAgICAgODU0MjI4LCAgICAgODUxOTI2LCAgICAgODQ5NjMxLCAKKyAgICAgICAgODQ3MzQxLCAgICAgODQ1MDU4LCAgICAgODQyNzgxLCAgICAgODQwNTEwLCAgICAgODM4MjQ1LCAgICAgODM1OTg2LCAgICAgODMzNzMzLCAgICAgODMxNDg3LCAgICAgODI5MjQ2LCAgICAgODI3MDExLCAgICAgODI0NzgzLCAKKyAgICAgICAgODIyNTYwLCAgICAgODIwMzQ0LCAgICAgODE4MTMzLCAgICAgODE1OTI5LCAgICAgODEzNzMwLCAgICAgODExNTM3LCAgICAgODA5MzUwLCAgICAgODA3MTY5LCAgICAgODA0OTk0LCAgICAgODAyODI1LCAgICAgODAwNjYyLCAKKyAgICAgICAgNzk4NTA0LCAgICAgNzk2MzUyLCAgICAgNzk0MjA2LCAgICAgNzkyMDY2LCAgICAgNzg5OTMyLCAgICAgNzg3ODAzLCAgICAgNzg1NjgwLCAgICAgNzgzNTYzLCAgICAgNzgxNDUyLCAgICAgNzc5MzQ2LCAgICAgNzc3MjQ2LCAKKyAgICAgICAgNzc1MTUxLCAgICAgNzczMDYyLCAgICAgNzcwOTc5LCAgICAgNzY4OTAyLCAgICAgNzY2ODMwLCAgICAgNzY0NzYzLCAgICAgNzYyNzAzLCAgICAgNzYwNjQ3LCAgICAgNzU4NTk4LCAgICAgNzU2NTUzLCAgICAgNzU0NTE1LCAKKyAgICAgICAgNzUyNDgyLCAgICAgNzUwNDU0LCAgICAgNzQ4NDMyLCAgICAgNzQ2NDE1LCAgICAgNzQ0NDAzLCAgICAgNzQyMzk3LCAgICAgNzQwMzk3LCAgICAgNzM4NDAyLCAgICAgNzM2NDEyLCAgICAgNzM0NDI4LCAgICAgNzMyNDQ4LCAKKyAgICAgICAgNzMwNDc1LCAgICAgNzI4NTA2LCAgICAgNzI2NTQzLCAgICAgNzI0NTg1LCAgICAgNzIyNjMzLCAgICAgNzIwNjg2LCAgICAgNzE4NzQ0LCAgICAgNzE2ODA3LCAgICAgNzE0ODc1LCAgICAgNzEyOTQ5LCAgICAgNzExMDI4LCAKKyAgICAgICAgNzA5MTEyLCAgICAgNzA3MjAxLCAgICAgNzA1Mjk1LCAgICAgNzAzMzk0LCAgICAgNzAxNDk5LCAgICAgNjk5NjA5LCAgICAgNjk3NzIzLCAgICAgNjk1ODQzLCAgICAgNjkzOTY4LCAgICAgNjkyMDk4LCAgICAgNjkwMjMzLCAKKyAgICAgICAgNjg4MzczLCAgICAgNjg2NTE4LCAgICAgNjg0NjY4LCAgICAgNjgyODIzLCAgICAgNjgwOTgzLCAgICAgNjc5MTQ4LCAgICAgNjc3MzE4LCAgICAgNjc1NDkzLCAgICAgNjczNjczLCAgICAgNjcxODU3LCAgICAgNjcwMDQ3LCAKKyAgICAgICAgNjY4MjQxLCAgICAgNjY2NDQxLCAgICAgNjY0NjQ1LCAgICAgNjYyODU0LCAgICAgNjYxMDY3LCAgICAgNjU5Mjg2LCAgICAgNjU3NTEwLCAgICAgNjU1NzM4LCAgICAgNjUzOTcxLCAgICAgNjUyMjA4LCAgICAgNjUwNDUxLCAKKyAgICAgICAgNjQ4Njk4LCAgICAgNjQ2OTUwLCAgICAgNjQ1MjA3LCAgICAgNjQzNDY4LCAgICAgNjQxNzM0LCAgICAgNjQwMDA1LCAgICAgNjM4MjgwLCAgICAgNjM2NTYwLCAgICAgNjM0ODQ1LCAgICAgNjMzMTM0LCAgICAgNjMxNDI4LCAKKyAgICAgICAgNjI5NzI3LCAgICAgNjI4MDMwLCAgICAgNjI2MzM3LCAgICAgNjI0NjUwLCAgICAgNjIyOTY2LCAgICAgNjIxMjg4LCAgICAgNjE5NjEzLCAgICAgNjE3OTQ0LCAgICAgNjE2Mjc5LCAgICAgNjE0NjE4LCAgICAgNjEyOTYyLCAKKyAgICAgICAgNjExMzEwLCAgICAgNjA5NjYzLCAgICAgNjA4MDIwLCAgICAgNjA2MzgxLCAgICAgNjA0NzQ3LCAgICAgNjAzMTE4LCAgICAgNjAxNDkyLCAgICAgNTk5ODcyLCAgICAgNTk4MjU1LCAgICAgNTk2NjQzLCAgICAgNTk1MDM1LCAKKyAgICAgICAgNTkzNDMyLCAgICAgNTkxODMzLCAgICAgNTkwMjM4LCAgICAgNTg4NjQ3LCAgICAgNTg3MDYxLCAgICAgNTg1NDc5LCAgICAgNTgzOTAxLCAgICAgNTgyMzI4LCAgICAgNTgwNzU5LCAgICAgNTc5MTk0LCAgICAgNTc3NjMzLCAKKyAgICAgICAgNTc2MDc2LCAgICAgNTc0NTI0LCAgICAgNTcyOTc2LCAgICAgNTcxNDMyLCAgICAgNTY5ODkyLCAgICAgNTY4MzU2LCAgICAgNTY2ODI1LCAgICAgNTY1Mjk3LCAgICAgNTYzNzc0LCAgICAgNTYyMjU1LCAgICAgNTYwNzQwLCAKKyAgICAgICAgNTU5MjI5LCAgICAgNTU3NzIyLCAgICAgNTU2MjE5LCAgICAgNTU0NzIwLCAgICAgNTUzMjI1LCAgICAgNTUxNzM0LCAgICAgNTUwMjQ4LCAgICAgNTQ4NzY1LCAgICAgNTQ3Mjg2LCAgICAgNTQ1ODExLCAgICAgNTQ0MzQxLCAKKyAgICAgICAgNTQyODc0LCAgICAgNTQxNDExLCAgICAgNTM5OTUyLCAgICAgNTM4NDk3LCAgICAgNTM3MDQ2LCAgICAgNTM1NTk5LCAgICAgNTM0MTU1LCAgICAgNTMyNzE2LCAgICAgNTMxMjgwLCAgICAgNTI5ODQ5LCAgICAgNTI4NDIxLCAKKyAgICAgICAgNTI2OTk3LCAgICAgNTI1NTc3LCAgICAgNTI0MTYxLCAgICAgNTIyNzQ4LCAgICAgNTIxMzQwLCAgICAgNTE5OTM1LCAgICAgNTE4NTM0LCAgICAgNTE3MTM2LCAgICAgNTE1NzQzLCAgICAgNTE0MzUzLCAgICAgNTEyOTY3LCAKKyAgICAgICAgNTExNTg1LCAgICAgNTEwMjA2LCAgICAgNTA4ODMxLCAgICAgNTA3NDYwLCAgICAgNTA2MDkzLCAgICAgNTA0NzI5LCAgICAgNTAzMzY5LCAgICAgNTAyMDEyLCAgICAgNTAwNjYwLCAgICAgNDk5MzEwLCAgICAgNDk3OTY1LCAKKyAgICAgICAgNDk2NjIzLCAgICAgNDk1Mjg1LCAgICAgNDkzOTUwLCAgICAgNDkyNjE5LCAgICAgNDkxMjkyLCAgICAgNDg5OTY4LCAgICAgNDg4NjQ4LCAgICAgNDg3MzMxLCAgICAgNDg2MDE4LCAgICAgNDg0NzA4LCAgICAgNDgzNDAyLCAKKyAgICAgICAgNDgyMDk5LCAgICAgNDgwODAwLCAgICAgNDc5NTA0LCAgICAgNDc4MjEyLCAgICAgNDc2OTI0LCAgICAgNDc1NjM4LCAgICAgNDc0MzU3LCAgICAgNDczMDc4LCAgICAgNDcxODA0LCAgICAgNDcwNTMyLCAgICAgNDY5MjY0LCAKKyAgICAgICAgNDY4MDAwLCAgICAgNDY2NzM5LCAgICAgNDY1NDgxLCAgICAgNDY0MjI3LCAgICAgNDYyOTc2LCAgICAgNDYxNzI4LCAgICAgNDYwNDg0LCAgICAgNDU5MjQzLCAgICAgNDU4MDA1LCAgICAgNDU2NzcxLCAgICAgNDU1NTQwLCAKKyAgICAgICAgNDU0MzEzLCAgICAgNDUzMDg5LCAgICAgNDUxODY4LCAgICAgNDUwNjUwLCAgICAgNDQ5NDM2LCAgICAgNDQ4MjI1LCAgICAgNDQ3MDE3LCAgICAgNDQ1ODEyLCAgICAgNDQ0NjExLCAgICAgNDQzNDEzLCAgICAgNDQyMjE4LCAKKyAgICAgICAgNDQxMDI2LCAgICAgNDM5ODM4LCAgICAgNDM4NjUzLCAgICAgNDM3NDcwLCAgICAgNDM2MjkyLCAgICAgNDM1MTE2LCAgICAgNDMzOTQzLCAgICAgNDMyNzc0LCAgICAgNDMxNjA4LCAgICAgNDMwNDQ1LCAgICAgNDI5Mjg1LCAKKyAgICAgICAgNDI4MTI4LCAgICAgNDI2OTc0LCAgICAgNDI1ODI0LCAgICAgNDI0Njc2LCAgICAgNDIzNTMyLCAgICAgNDIyMzkxLCAgICAgNDIxMjUyLCAgICAgNDIwMTE3LCAgICAgNDE4OTg1LCAgICAgNDE3ODU2LCAgICAgNDE2NzMwLCAKKyAgICAgICAgNDE1NjA3LCAgICAgNDE0NDg3LCAgICAgNDEzMzcwLCAgICAgNDEyMjU2LCAgICAgNDExMTQ2LCAgICAgNDEwMDM4LCAgICAgNDA4OTMzLCAgICAgNDA3ODMxLCAgICAgNDA2NzMyLCAgICAgNDA1NjM2LCAgICAgNDA0NTQzLCAKKyAgICAgICAgNDAzNDUzLCAgICAgNDAyMzY1LCAgICAgNDAxMjgxLCAgICAgNDAwMjAwLCAgICAgMzk5MTIxLCAgICAgMzk4MDQ2LCAgICAgMzk2OTczLCAgICAgMzk1OTAzLCAgICAgMzk0ODM3LCAgICAgMzkzNzczLCAgICAgMzkyNzEyLCAKKyAgICAgICAgMzkxNjUzLCAgICAgMzkwNTk4LCAgICAgMzg5NTQ1LCAgICAgMzg4NDk2LCAgICAgMzg3NDQ5LCAgICAgMzg2NDA1LCAgICAgMzg1MzYzLCAgICAgMzg0MzI1LCAgICAgMzgzMjg5LCAgICAgMzgyMjU3LCAgICAgMzgxMjI2LCAKKyAgICAgICAgMzgwMTk5LCAgICAgMzc5MTc1LCAgICAgMzc4MTUzLCAgICAgMzc3MTM0LCAgICAgMzc2MTE4LCAgICAgMzc1MTA0LCAgICAgMzc0MDkzLCAgICAgMzczMDg1LCAgICAgMzcyMDgwLCAgICAgMzcxMDc3LCAgICAgMzcwMDc3LCAKKyAgICAgICAgMzY5MDgwLCAgICAgMzY4MDg1LCAgICAgMzY3MDk0LCAgICAgMzY2MTA0LCAgICAgMzY1MTE4LCAgICAgMzY0MTM0LCAgICAgMzYzMTUzLCAgICAgMzYyMTc0LCAgICAgMzYxMTk4LCAgICAgMzYwMjI1LCAgICAgMzU5MjU0LCAKKyAgICAgICAgMzU4Mjg2LCAgICAgMzU3MzIxLCAgICAgMzU2MzU4LCAgICAgMzU1Mzk3LCAgICAgMzU0NDQwLCAgICAgMzUzNDg1LCAgICAgMzUyNTMyLCAgICAgMzUxNTgyLCAgICAgMzUwNjM1LCAgICAgMzQ5NjkwLCAgICAgMzQ4NzQ4LCAKKyAgICAgICAgMzQ3ODA4LCAgICAgMzQ2ODcxLCAgICAgMzQ1OTM2LCAgICAgMzQ1MDA0LCAgICAgMzQ0MDc0LCAgICAgMzQzMTQ3LCAgICAgMzQyMjIyLCAgICAgMzQxMzAwLCAgICAgMzQwMzgwLCAgICAgMzM5NDYzLCAgICAgMzM4NTQ4LCAKKyAgICAgICAgMzM3NjM2LCAgICAgMzM2NzI2LCAgICAgMzM1ODE5LCAgICAgMzM0OTE0LCAgICAgMzM0MDExLCAgICAgMzMzMTExLCAgICAgMzMyMjE0LCAgICAgMzMxMzE4LCAgICAgMzMwNDI2LCAgICAgMzI5NTM1LCAgICAgMzI4NjQ3LCAKKyAgICAgICAgMzI3NzYyLCAgICAgMzI2ODc4LCAgICAgMzI1OTk3LCAgICAgMzI1MTE5LCAgICAgMzI0MjQzLCAgICAgMzIzMzY5LCAgICAgMzIyNDk4LCAgICAgMzIxNjI5LCAgICAgMzIwNzYyLCAgICAgMzE5ODk4LCAgICAgMzE5MDM2LCAKKyAgICAgICAgMzE4MTc2LCAgICAgMzE3MzE5LCAgICAgMzE2NDYzLCAgICAgMzE1NjExLCAgICAgMzE0NzYwLCAgICAgMzEzOTEyLCAgICAgMzEzMDY2LCAgICAgMzEyMjIyLCAgICAgMzExMzgxLCAgICAgMzEwNTQyLCAgICAgMzA5NzA1LCAKKyAgICAgICAgMzA4ODcxLCAgICAgMzA4MDM4LCAgICAgMzA3MjA4LCAgICAgMzA2MzgwLCAgICAgMzA1NTU1LCAgICAgMzA0NzMxLCAgICAgMzAzOTEwLCAgICAgMzAzMDkxLCAgICAgMzAyMjc1LCAgICAgMzAxNDYwLCAgICAgMzAwNjQ4LCAKKyAgICAgICAgMjk5ODM4LCAgICAgMjk5MDMwLCAgICAgMjk4MjI0LCAgICAgMjk3NDIwLCAgICAgMjk2NjE5LCAgICAgMjk1ODE5LCAgICAgMjk1MDIyLCAgICAgMjk0MjI3LCAgICAgMjkzNDM0LCAgICAgMjkyNjQ0LCAgICAgMjkxODU1LCAKKyAgICAgICAgMjkxMDY5LCAgICAgMjkwMjg0LCAgICAgMjg5NTAyLCAgICAgMjg4NzIyLCAgICAgMjg3OTQ0LCAgICAgMjg3MTY4LCAgICAgMjg2Mzk0LCAgICAgMjg1NjIyLCAgICAgMjg0ODUzLCAgICAgMjg0MDg1LCAgICAgMjgzMzIwLCAKKyAgICAgICAgMjgyNTU2LCAgICAgMjgxNzk1LCAgICAgMjgxMDM1LCAgICAgMjgwMjc4LCAgICAgMjc5NTIzLCAgICAgMjc4NzcwLCAgICAgMjc4MDE4LCAgICAgMjc3MjY5LCAgICAgMjc2NTIyLCAgICAgMjc1Nzc3LCAgICAgMjc1MDM0LCAKKyAgICAgICAgMjc0MjkzLCAgICAgMjczNTUzLCAgICAgMjcyODE2LCAgICAgMjcyMDgxLCAgICAgMjcxMzQ4LCAgICAgMjcwNjE3LCAgICAgMjY5ODg4LCAgICAgMjY5MTYwLCAgICAgMjY4NDM1LCAgICAgMjY3NzEyLCAgICAgMjY2OTkwLCAKKyAgICAgICAgMjY2MjcxLCAgICAgMjY1NTUzLCAgICAgMjY0ODM4LCAgICAgMjY0MTI0LCAgICAgMjYzNDEyLCAgICAgMjYyNzAyLCAgICAgMjYxOTk0LCAgICAgMjYxMjg5LCAgICAgMjYwNTg0LCAgICAgMjU5ODgyLCAgICAgMjU5MTgyLCAKKyAgICAgICAgMjU4NDgzLCAgICAgMjU3Nzg3LCAgICAgMjU3MDkyLCAgICAgMjU2Mzk5LCAgICAgMjU1NzA5LCAgICAgMjU1MDIwLCAgICAgMjU0MzMyLCAgICAgMjUzNjQ3LCAgICAgMjUyOTYzLCAgICAgMjUyMjgyLCAgICAgMjUxNjAyLCAKKyAgICAgICAgMjUwOTI0LCAgICAgMjUwMjQ4LCAgICAgMjQ5NTczLCAgICAgMjQ4OTAxLCAgICAgMjQ4MjMwLCAgICAgMjQ3NTYxLCAgICAgMjQ2ODk0LCAgICAgMjQ2MjI5LCAgICAgMjQ1NTY1LCAgICAgMjQ0OTA0LCAgICAgMjQ0MjQ0LCAKKyAgICAgICAgMjQzNTg2LCAgICAgMjQyOTI5LCAgICAgMjQyMjc1LCAgICAgMjQxNjIyLCAgICAgMjQwOTcxLCAgICAgMjQwMzIxLCAgICAgMjM5Njc0LCAgICAgMjM5MDI4LCAgICAgMjM4Mzg0LCAgICAgMjM3NzQxLCAgICAgMjM3MTAxLCAKKyAgICAgICAgMjM2NDYyLCAgICAgMjM1ODI1LCAgICAgMjM1MTg5LCAgICAgMjM0NTU1LCAgICAgMjMzOTIzLCAgICAgMjMzMjkzLCAgICAgMjMyNjY0LCAgICAgMjMyMDM3LCAgICAgMjMxNDEyLCAgICAgMjMwNzg4LCAgICAgMjMwMTY2LCAKKyAgICAgICAgMjI5NTQ2LCAgICAgMjI4OTI4LCAgICAgMjI4MzExLCAgICAgMjI3Njk2LCAgICAgMjI3MDgyLCAgICAgMjI2NDcwLCAgICAgMjI1ODYwLCAgICAgMjI1MjUxLCAgICAgMjI0NjQ0LCAgICAgMjI0MDM5LCAgICAgMjIzNDM1LCAKKyAgICAgICAgMjIyODMzLCAgICAgMjIyMjMzLCAgICAgMjIxNjM0LCAgICAgMjIxMDM2LCAgICAgMjIwNDQxLCAgICAgMjE5ODQ3LCAgICAgMjE5MjU0LCAgICAgMjE4NjY0LCAgICAgMjE4MDc0LCAgICAgMjE3NDg3LCAgICAgMjE2OTAxLCAKKyAgICAgICAgMjE2MzE2LCAgICAgMjE1NzMzLCAgICAgMjE1MTUyLCAgICAgMjE0NTcyLCAgICAgMjEzOTk0LCAgICAgMjEzNDE3LCAgICAgMjEyODQyLCAgICAgMjEyMjY5LCAgICAgMjExNjk3LCAgICAgMjExMTI2LCAgICAgMjEwNTU3LCAKKyAgICAgICAgMjA5OTkwLCAgICAgMjA5NDI0LCAgICAgMjA4ODYwLCAgICAgMjA4Mjk3LCAgICAgMjA3NzM1LCAgICAgMjA3MTc2LCAgICAgMjA2NjE3LCAgICAgMjA2MDYxLCAgICAgMjA1NTA1LCAgICAgMjA0OTUyLCAgICAgMjA0Mzk5LCAKKyAgICAgICAgMjAzODQ5LCAgICAgMjAzMjk5LCAgICAgMjAyNzUxLCAgICAgMjAyMjA1LCAgICAgMjAxNjYwLCAgICAgMjAxMTE3LCAgICAgMjAwNTc1LCAgICAgMjAwMDM0LCAgICAgMTk5NDk1LCAgICAgMTk4OTU4LCAgICAgMTk4NDIyLCAKKyAgICAgICAgMTk3ODg3LCAgICAgMTk3MzU0LCAgICAgMTk2ODIyLCAgICAgMTk2MjkxLCAgICAgMTk1NzYyLCAgICAgMTk1MjM1LCAgICAgMTk0NzA5LCAgICAgMTk0MTg0LCAgICAgMTkzNjYxLCAgICAgMTkzMTM5LCAgICAgMTkyNjE5LCAKKyAgICAgICAgMTkyMTAwLCAgICAgMTkxNTgyLCAgICAgMTkxMDY2LCAgICAgMTkwNTUxLCAgICAgMTkwMDM3LCAgICAgMTg5NTI1LCAgICAgMTg5MDE0LCAgICAgMTg4NTA1LCAgICAgMTg3OTk3LCAgICAgMTg3NDkxLCAgICAgMTg2OTg1LCAKKyAgICAgICAgMTg2NDgxLCAgICAgMTg1OTc5LCAgICAgMTg1NDc4LCAgICAgMTg0OTc4LCAgICAgMTg0NDc5LCAgICAgMTgzOTgyLCAgICAgMTgzNDg3LCAgICAgMTgyOTkyLCAgICAgMTgyNDk5LCAgICAgMTgyMDA3LCAgICAgMTgxNTE3LCAKKyAgICAgICAgMTgxMDI4LCAgICAgMTgwNTQwLCAgICAgMTgwMDUzLCAgICAgMTc5NTY4LCAgICAgMTc5MDg0LCAgICAgMTc4NjAyLCAgICAgMTc4MTIwLCAgICAgMTc3NjQwLCAgICAgMTc3MTYyLCAgICAgMTc2Njg0LCAgICAgMTc2MjA4LCAKKyAgICAgICAgMTc1NzMzLCAgICAgMTc1MjYwLCAgICAgMTc0Nzg4LCAgICAgMTc0MzE3LCAgICAgMTczODQ3LCAgICAgMTczMzc4LCAgICAgMTcyOTExLCAgICAgMTcyNDQ1LCAgICAgMTcxOTgxLCAgICAgMTcxNTE3LCAgICAgMTcxMDU1LCAKKyAgICAgICAgMTcwNTk0LCAgICAgMTcwMTM0LCAgICAgMTY5Njc2LCAgICAgMTY5MjE5LCAgICAgMTY4NzYzLCAgICAgMTY4MzA4LCAgICAgMTY3ODU0LCAgICAgMTY3NDAyLCAgICAgMTY2OTUxLCAgICAgMTY2NTAxLCAgICAgMTY2MDUyLCAKKyAgICAgICAgMTY1NjA1LCAgICAgMTY1MTU5LCAgICAgMTY0NzEzLCAgICAgMTY0MjcwLCAgICAgMTYzODI3LCAgICAgMTYzMzg2LCAgICAgMTYyOTQ1LCAgICAgMTYyNTA2LCAgICAgMTYyMDY4LCAgICAgMTYxNjMyLCAgICAgMTYxMTk2LCAKKyAgICAgICAgMTYwNzYyLCAgICAgMTYwMzI4LCAgICAgMTU5ODk2LCAgICAgMTU5NDY1LCAgICAgMTU5MDM2LCAgICAgMTU4NjA3LCAgICAgMTU4MTgwLCAgICAgMTU3NzU0LCAgICAgMTU3MzI4LCAgICAgMTU2OTA0LCAgICAgMTU2NDgyLCAKKyAgICAgICAgMTU2MDYwLCAgICAgMTU1NjM5LCAgICAgMTU1MjIwLCAgICAgMTU0ODAyLCAgICAgMTU0Mzg1LCAgICAgMTUzOTY5LCAgICAgMTUzNTU0LCAgICAgMTUzMTQwLCAgICAgMTUyNzI3LCAgICAgMTUyMzE2LCAgICAgMTUxOTA1LCAKKyAgICAgICAgMTUxNDk2LCAgICAgMTUxMDg4LCAgICAgMTUwNjgxLCAgICAgMTUwMjc1LCAgICAgMTQ5ODcwLCAgICAgMTQ5NDY2LCAgICAgMTQ5MDYzLCAgICAgMTQ4NjYxLCAgICAgMTQ4MjYxLCAgICAgMTQ3ODYxLCAgICAgMTQ3NDYzLCAKKyAgICAgICAgMTQ3MDY1LCAgICAgMTQ2NjY5LCAgICAgMTQ2Mjc0LCAgICAgMTQ1ODgwLCAgICAgMTQ1NDg3LCAgICAgMTQ1MDk0LCAgICAgMTQ0NzAzLCAgICAgMTQ0MzE0LCAgICAgMTQzOTI1LCAgICAgMTQzNTM3LCAgICAgMTQzMTUwLCAKKyAgICAgICAgMTQyNzY0LCAgICAgMTQyMzgwLCAgICAgMTQxOTk2LCAgICAgMTQxNjEzLCAgICAgMTQxMjMyLCAgICAgMTQwODUxLCAgICAgMTQwNDcyLCAgICAgMTQwMDkzLCAgICAgMTM5NzE1LCAgICAgMTM5MzM5LCAgICAgMTM4OTY0LCAKKyAgICAgICAgMTM4NTg5LCAgICAgMTM4MjE2LCAgICAgMTM3ODQzLCAgICAgMTM3NDcyLCAgICAgMTM3MTAxLCAgICAgMTM2NzMyLCAgICAgMTM2MzYzLCAgICAgMTM1OTk2LCAgICAgMTM1NjI5LCAgICAgMTM1MjY0LCAgICAgMTM0ODk5LCAKKyAgICAgICAgMTM0NTM2LCAgICAgMTM0MTczLCAgICAgMTMzODEyLCAgICAgMTMzNDUxLCAgICAgMTMzMDkyLCAgICAgMTMyNzMzLCAgICAgMTMyMzc1LCAgICAgMTMyMDE5LCAgICAgMTMxNjYzLCAgICAgMTMxMzA4LCAgICAgMTMwOTU0LCAKKyAgICAgICAgMTMwNjAxLCAgICAgMTMwMjQ5LCAgICAgMTI5ODk4LCAgICAgMTI5NTQ4LCAgICAgMTI5MTk5LCAgICAgMTI4ODUxLCAgICAgMTI4NTA0LCAgICAgMTI4MTU4LCAgICAgMTI3ODEyLCAgICAgMTI3NDY4LCAgICAgMTI3MTI0LCAKKyAgICAgICAgMTI2NzgyLCAgICAgMTI2NDQwLCAgICAgMTI2MDk5LCAgICAgMTI1NzYwLCAgICAgMTI1NDIxLCAgICAgMTI1MDgzLCAgICAgMTI0NzQ2LCAgICAgMTI0NDEwLCAgICAgMTI0MDc0LCAgICAgMTIzNzQwLCAgICAgMTIzNDA3LCAKKyAgICAgICAgMTIzMDc0LCAgICAgMTIyNzQyLCAgICAgMTIyNDEyLCAgICAgMTIyMDgyLCAgICAgMTIxNzUzLCAgICAgMTIxNDI1LCAgICAgMTIxMDk3LCAgICAgMTIwNzcxLCAgICAgMTIwNDQ2LCAgICAgMTIwMTIxLCAgICAgMTE5Nzk3LCAKKyAgICAgICAgMTE5NDc1LCAgICAgMTE5MTUzLCAgICAgMTE4ODMyLCAgICAgMTE4NTExLCAgICAgMTE4MTkyLCAgICAgMTE3ODczLCAgICAgMTE3NTU2LCAgICAgMTE3MjM5LCAgICAgMTE2OTIzLCAgICAgMTE2NjA4LCAgICAgMTE2Mjk0LCAKKyAgICAgICAgMTE1OTgwLCAgICAgMTE1NjY4LCAgICAgMTE1MzU2LCAgICAgMTE1MDQ1LCAgICAgMTE0NzM1LCAgICAgMTE0NDI2LCAgICAgMTE0MTE4LCAgICAgMTEzODEwLCAgICAgMTEzNTA0LCAgICAgMTEzMTk4LCAgICAgMTEyODkzLCAKKyAgICAgICAgMTEyNTg5LCAgICAgMTEyMjg1LCAgICAgMTExOTgzLCAgICAgMTExNjgxLCAgICAgMTExMzgwLCAgICAgMTExMDgwLCAgICAgMTEwNzgwLCAgICAgMTEwNDgyLCAgICAgMTEwMTg0LCAgICAgMTA5ODg3LCAgICAgMTA5NTkxLCAKKyAgICAgICAgMTA5Mjk2LCAgICAgMTA5MDAxLCAgICAgMTA4NzA4LCAgICAgMTA4NDE1LCAgICAgMTA4MTIyLCAgICAgMTA3ODMxLCAgICAgMTA3NTQxLCAgICAgMTA3MjUxLCAgICAgMTA2OTYyLCAgICAgMTA2Njc0LCAgICAgMTA2Mzg2LCAKKyAgICAgICAgMTA2MDk5LCAgICAgMTA1ODEzLCAgICAgMTA1NTI4LCAgICAgMTA1MjQ0LCAgICAgMTA0OTYwLCAgICAgMTA0Njc4LCAgICAgMTA0Mzk1LCAgICAgMTA0MTE0LCAgICAgMTAzODM0LCAgICAgMTAzNTU0LCAgICAgMTAzMjc1LCAKKyAgICAgICAgMTAyOTk2LCAgICAgMTAyNzE5LCAgICAgMTAyNDQyLCAgICAgMTAyMTY2LCAgICAgMTAxODkxLCAgICAgMTAxNjE2LCAgICAgMTAxMzQyLCAgICAgMTAxMDY5LCAgICAgMTAwNzk3LCAgICAgMTAwNTI1LCAgICAgMTAwMjU0LCAKKyAgICAgICAgIDk5OTg0LCAgICAgIDk5NzE1LCAgICAgIDk5NDQ2LCAgICAgIDk5MTc4LCAgICAgIDk4OTExLCAgICAgIDk4NjQ0LCAgICAgIDk4Mzc4LCAgICAgIDk4MTEzLCAgICAgIDk3ODQ5LCAgICAgIDk3NTg1LCAgICAgIDk3MzIyLCAKKyAgICAgICAgIDk3MDYwLCAgICAgIDk2Nzk5LCAgICAgIDk2NTM4LCAgICAgIDk2Mjc4LCAgICAgIDk2MDE4LCAgICAgIDk1NzU5LCAgICAgIDk1NTAxLCAgICAgIDk1MjQ0LCAgICAgIDk0OTg3LCAgICAgIDk0NzMxLCAgICAgIDk0NDc2LCAKKyAgICAgICAgIDk0MjIyLCAgICAgIDkzOTY4LCAgICAgIDkzNzE0LCAgICAgIDkzNDYyLCAgICAgIDkzMjEwLCAgICAgIDkyOTU5LCAgICAgIDkyNzA4LCAgICAgIDkyNDU5LCAgICAgIDkyMjA5LCAgICAgIDkxOTYxLCAgICAgIDkxNzEzLCAKKyAgICAgICAgIDkxNDY2LCAgICAgIDkxMjE5LCAgICAgIDkwOTc0LCAgICAgIDkwNzI5LCAgICAgIDkwNDg0LCAgICAgIDkwMjQwLCAgICAgIDg5OTk3LCAgICAgIDg5NzU0LCAgICAgIDg5NTEzLCAgICAgIDg5MjcxLCAgICAgIDg5MDMxLCAKKyAgICAgICAgIDg4NzkxLCAgICAgIDg4NTUyLCAgICAgIDg4MzEzLCAgICAgIDg4MDc1LCAgICAgIDg3ODM4LCAgICAgIDg3NjAxLCAgICAgIDg3MzY1LCAgICAgIDg3MTMwLCAgICAgIDg2ODk1LCAgICAgIDg2NjYxLCAgICAgIDg2NDI3LCAKKyAgICAgICAgIDg2MTk0LCAgICAgIDg1OTYyLCAgICAgIDg1NzMwLCAgICAgIDg1NDk5LCAgICAgIDg1MjY5LCAgICAgIDg1MDM5LCAgICAgIDg0ODEwLCAgICAgIDg0NTgxLCAgICAgIDg0MzUzLCAgICAgIDg0MTI2LCAgICAgIDgzODk5LCAKKyAgICAgICAgIDgzNjczLCAgICAgIDgzNDQ4LCAgICAgIDgzMjIzLCAgICAgIDgyOTk5LCAgICAgIDgyNzc1LCAgICAgIDgyNTUyLCAgICAgIDgyMzMwLCAgICAgIDgyMTA4LCAgICAgIDgxODg2LCAgICAgIDgxNjY2LCAgICAgIDgxNDQ2LCAKKyAgICAgICAgIDgxMjI2LCAgICAgIDgxMDA3LCAgICAgIDgwNzg5LCAgICAgIDgwNTcxLCAgICAgIDgwMzU0LCAgICAgIDgwMTM4LCAgICAgIDc5OTIyLCAgICAgIDc5NzA2LCAgICAgIDc5NDkyLCAgICAgIDc5Mjc3LCAgICAgIDc5MDY0LCAKKyAgICAgICAgIDc4ODUxLCAgICAgIDc4NjM4LCAgICAgIDc4NDI2LCAgICAgIDc4MjE1LCAgICAgIDc4MDA0LCAgICAgIDc3Nzk0LCAgICAgIDc3NTg0LCAgICAgIDc3Mzc1LCAgICAgIDc3MTY3LCAgICAgIDc2OTU5LCAgICAgIDc2NzUyLCAKKyAgICAgICAgIDc2NTQ1LCAgICAgIDc2MzM4LCAgICAgIDc2MTMzLCAgICAgIDc1OTI4LCAgICAgIDc1NzIzLCAgICAgIDc1NTE5LCAgICAgIDc1MzE1LCAgICAgIDc1MTEyLCAgICAgIDc0OTEwLCAgICAgIDc0NzA4LCAgICAgIDc0NTA3LCAKKyAgICAgICAgIDc0MzA2LCAgICAgIDc0MTA2LCAgICAgIDczOTA2LCAgICAgIDczNzA3LCAgICAgIDczNTA4LCAgICAgIDczMzEwLCAgICAgIDczMTEzLCAgICAgIDcyOTE2LCAgICAgIDcyNzE5LCAgICAgIDcyNTIzLCAgICAgIDcyMzI4LCAKKyAgICAgICAgIDcyMTMzLCAgICAgIDcxOTM5LCAgICAgIDcxNzQ1LCAgICAgIDcxNTUxLCAgICAgIDcxMzU5LCAgICAgIDcxMTY2LCAgICAgIDcwOTc1LCAgICAgIDcwNzgzLCAgICAgIDcwNTkzLCAgICAgIDcwNDAyLCAgICAgIDcwMjEzLCAKKyAgICAgICAgIDcwMDIzLCAgICAgIDY5ODM1LCAgICAgIDY5NjQ2LCAgICAgIDY5NDU5LCAgICAgIDY5MjcyLCAgICAgIDY5MDg1LCAgICAgIDY4ODk5LCAgICAgIDY4NzEzLCAgICAgIDY4NTI4LCAgICAgIDY4MzQzLCAgICAgIDY4MTU5LCAKKyAgICAgICAgIDY3OTc1LCAgICAgIDY3NzkyLCAgICAgIDY3NjEwLCAgICAgIDY3NDI3LCAgICAgIDY3MjQ2LCAgICAgIDY3MDY1LCAgICAgIDY2ODg0LCAgICAgIDY2NzA0LCAgICAgIDY2NTI0LCAgICAgIDY2MzQ1LCAgICAgIDY2MTY2LCAKKyAgICAgICAgIDY1OTg3LCAgICAgIDY1ODEwLCAgICAgIDY1NjMyLCAgICAgIDY1NDU1LCAgICAgIDY1Mjc5LCAgICAgIDY1MTAzLCAgICAgIDY0OTI4LCAgICAgIDY0NzUzLCAgICAgIDY0NTc4LCAgICAgIDY0NDA0LCAgICAgIDY0MjMxLCAKKyAgICAgICAgIDY0MDU4LCAgICAgIDYzODg1LCAgICAgIDYzNzEzLCAgICAgIDYzNTQxLCAgICAgIDYzMzcwLCAgICAgIDYzMTk5LCAgICAgIDYzMDI5LCAgICAgIDYyODU5LCAgICAgIDYyNjkwLCAgICAgIDYyNTIxLCAgICAgIDYyMzUyLCAKKyAgICAgICAgIDYyMTg0LCAgICAgIDYyMDE3LCAgICAgIDYxODUwLCAgICAgIDYxNjgzLCAgICAgIDYxNTE3LCAgICAgIDYxMzUxLCAgICAgIDYxMTg2LCAgICAgIDYxMDIxLCAgICAgIDYwODU2LCAgICAgIDYwNjkyLCAgICAgIDYwNTI5LCAKKyAgICAgICAgIDYwMzY2LCAgICAgIDYwMjAzLCAgICAgIDYwMDQxLCAgICAgIDU5ODc5LCAgICAgIDU5NzE4LCAgICAgIDU5NTU3LCAgICAgIDU5Mzk2LCAgICAgIDU5MjM2LCAgICAgIDU5MDc2LCAgICAgIDU4OTE3LCAgICAgIDU4NzU4LCAKKyAgICAgICAgIDU4NjAwLCAgICAgIDU4NDQyLCAgICAgIDU4Mjg1LCAgICAgIDU4MTI4LCAgICAgIDU3OTcxLCAgICAgIDU3ODE1LCAgICAgIDU3NjU5LCAgICAgIDU3NTA0LCAgICAgIDU3MzQ5LCAgICAgIDU3MTk0LCAgICAgIDU3MDQwLCAKKyAgICAgICAgIDU2ODg2LCAgICAgIDU2NzMzLCAgICAgIDU2NTgwLCAgICAgIDU2NDI4LCAgICAgIDU2Mjc2LCAgICAgIDU2MTI0LCAgICAgIDU1OTczLCAgICAgIDU1ODIyLCAgICAgIDU1NjcxLCAgICAgIDU1NTIxLCAgICAgIDU1MzcyLCAKKyAgICAgICAgIDU1MjIzLCAgICAgIDU1MDc0LCAgICAgIDU0OTI1LCAgICAgIDU0Nzc3LCAgICAgIDU0NjMwLCAgICAgIDU0NDgzLCAgICAgIDU0MzM2LCAgICAgIDU0MTg5LCAgICAgIDU0MDQzLCAgICAgIDUzODk4LCAgICAgIDUzNzUyLCAKKyAgICAgICAgIDUzNjA4LCAgICAgIDUzNDYzLCAgICAgIDUzMzE5LCAgICAgIDUzMTc1LCAgICAgIDUzMDMyLCAgICAgIDUyODg5LCAgICAgIDUyNzQ3LCAgICAgIDUyNjA1LCAgICAgIDUyNDYzLCAgICAgIDUyMzIxLCAgICAgIDUyMTgwLCAKKyAgICAgICAgIDUyMDQwLCAgICAgIDUxOTAwLCAgICAgIDUxNzYwLCAgICAgIDUxNjIwLCAgICAgIDUxNDgxLCAgICAgIDUxMzQyLCAgICAgIDUxMjA0LCAgICAgIDUxMDY2LCAgICAgIDUwOTI4LCAgICAgIDUwNzkxLCAgICAgIDUwNjU0LCAKKyAgICAgICAgIDUwNTE4LCAgICAgIDUwMzgyLCAgICAgIDUwMjQ2LCAgICAgIDUwMTExLCAgICAgIDQ5OTc2LCAgICAgIDQ5ODQxLCAgICAgIDQ5NzA3LCAgICAgIDQ5NTczLCAgICAgIDQ5NDM5LCAgICAgIDQ5MzA2LCAgICAgIDQ5MTczLCAKKyAgICAgICAgIDQ5MDQwLCAgICAgIDQ4OTA4LCAgICAgIDQ4Nzc2LCAgICAgIDQ4NjQ1LCAgICAgIDQ4NTE0LCAgICAgIDQ4MzgzLCAgICAgIDQ4MjUzLCAgICAgIDQ4MTIzLCAgICAgIDQ3OTkzLCAgICAgIDQ3ODY0LCAgICAgIDQ3NzM1LCAKKyAgICAgICAgIDQ3NjA2LCAgICAgIDQ3NDc4LCAgICAgIDQ3MzUwLCAgICAgIDQ3MjIyLCAgICAgIDQ3MDk1LCAgICAgIDQ2OTY4LCAgICAgIDQ2ODQyLCAgICAgIDQ2NzE1LCAgICAgIDQ2NTkwLCAgICAgIDQ2NDY0LCAgICAgIDQ2MzM5LCAKKyAgICAgICAgIDQ2MjE0LCAgICAgIDQ2MDg5LCAgICAgIDQ1OTY1LCAgICAgIDQ1ODQxLCAgICAgIDQ1NzE4LCAgICAgIDQ1NTk1LCAgICAgIDQ1NDcyLCAgICAgIDQ1MzQ5LCAgICAgIDQ1MjI3LCAgICAgIDQ1MTA1LCAgICAgIDQ0OTg0LCAKKyAgICAgICAgIDQ0ODYyLCAgICAgIDQ0NzQxLCAgICAgIDQ0NjIxLCAgICAgIDQ0NTAxLCAgICAgIDQ0MzgxLCAgICAgIDQ0MjYxLCAgICAgIDQ0MTQyLCAgICAgIDQ0MDIzLCAgICAgIDQzOTA0LCAgICAgIDQzNzg2LCAgICAgIDQzNjY4LCAKKyAgICAgICAgIDQzNTUwLCAgICAgIDQzNDMzLCAgICAgIDQzMzE2LCAgICAgIDQzMTk5LCAgICAgIDQzMDgzLCAgICAgIDQyOTY3LCAgICAgIDQyODUxLCAgICAgIDQyNzM1LCAgICAgIDQyNjIwLCAgICAgIDQyNTA1LCAgICAgIDQyMzkxLCAKKyAgICAgICAgIDQyMjc3LCAgICAgIDQyMTYzLCAgICAgIDQyMDQ5LCAgICAgIDQxOTM2LCAgICAgIDQxODIzLCAgICAgIDQxNzEwLCAgICAgIDQxNTk4LCAgICAgIDQxNDg2LCAgICAgIDQxMzc0LCAgICAgIDQxMjYyLCAgICAgIDQxMTUxLCAKKyAgICAgICAgIDQxMDQwLCAgICAgIDQwOTMwLCAgICAgIDQwODE5LCAgICAgIDQwNzA5LCAgICAgIDQwNjAwLCAgICAgIDQwNDkwLCAgICAgIDQwMzgxLCAgICAgIDQwMjcyLCAgICAgIDQwMTY0LCAgICAgIDQwMDU2LCAgICAgIDM5OTQ4LCAKKyAgICAgICAgIDM5ODQwLCAgICAgIDM5NzMzLCAgICAgIDM5NjI2LCAgICAgIDM5NTE5LCAgICAgIDM5NDEyLCAgICAgIDM5MzA2LCAgICAgIDM5MjAwLCAgICAgIDM5MDk0LCAgICAgIDM4OTg5LCAgICAgIDM4ODg0LCAgICAgIDM4Nzc5LCAKKyAgICAgICAgIDM4Njc1LCAgICAgIDM4NTcxLCAgICAgIDM4NDY3LCAgICAgIDM4MzYzLCAgICAgIDM4MjYwLCAgICAgIDM4MTU3LCAgICAgIDM4MDU0LCAgICAgIDM3OTUxLCAgICAgIDM3ODQ5LCAgICAgIDM3NzQ3LCAgICAgIDM3NjQ1LCAKKyAgICAgICAgIDM3NTQ0LCAgICAgIDM3NDQzLCAgICAgIDM3MzQyLCAgICAgIDM3MjQxLCAgICAgIDM3MTQxLCAgICAgIDM3MDQxLCAgICAgIDM2OTQxLCAgICAgIDM2ODQxLCAgICAgIDM2NzQyLCAgICAgIDM2NjQzLCAgICAgIDM2NTQ0LCAKKyAgICAgICAgIDM2NDQ2LCAgICAgIDM2MzQ3LCAgICAgIDM2MjUwLCAgICAgIDM2MTUyLCAgICAgIDM2MDU0LCAgICAgIDM1OTU3LCAgICAgIDM1ODYwLCAgICAgIDM1NzY0LCAgICAgIDM1NjY3LCAgICAgIDM1NTcxLCAgICAgIDM1NDc1LCAKKyAgICAgICAgIDM1MzgwLCAgICAgIDM1Mjg0LCAgICAgIDM1MTg5LCAgICAgIDM1MDk1LCAgICAgIDM1MDAwLCAgICAgIDM0OTA2LCAgICAgIDM0ODEyLCAgICAgIDM0NzE4LCAgICAgIDM0NjI0LCAgICAgIDM0NTMxLCAgICAgIDM0NDM4LCAKKyAgICAgICAgIDM0MzQ1LCAgICAgIDM0MjUzLCAgICAgIDM0MTYwLCAgICAgIDM0MDY4LCAgICAgIDMzOTc2LCAgICAgIDMzODg1Cit9OworCitzdGF0aWMgY29uc3Qgc2hvcnQgc2luZGJfY29lZmZbXSA9IHsKKwkyNDAxLCAyMTQ0LCAxOTk0LCAxODg3LCAxODA0LCAxNzM3LCAxNjgwLCAxNjMwLCAxNTg3LCAxNTQ4LCAxNTEyLCAxNDgwLCAxNDUwLCAKKyAgICAxNDIzLCAxMzk3LCAxMzczLCAxMzUxLCAxMzMwLCAxMzEwLCAxMjkxLCAxMjczLCAxMjU1LCAxMjM5LCAxMjIzLCAxMjA4LCAxMTk0LCAKKyAgICAxMTgwLCAxMTY2LCAxMTUzLCAxMTQxLCAxMTI4LCAxMTE3LCAxMTA1LCAxMDk0LCAxMDg0LCAxMDczLCAxMDYzLCAxMDUzLCAxMDQzLCAKKyAgICAxMDM0LCAxMDI1LCAxMDE2LCAxMDA3LCAgOTk5LCAgOTkwLCAgOTgyLCAgOTc0LCAgOTY3LCAgOTU5LCAgOTUyLCAgOTQ0LCAgOTM3LCAKKyAgICAgOTMwLCAgOTIzLCAgOTE2LCAgOTEwLCAgOTAzLCAgODk3LCAgODkwLCAgODg0LCAgODc4LCAgODcyLCAgODY2LCAgODYwLCAgODU1LCAKKyAgICAgODQ5LCAgODQzLCAgODM4LCAgODMyLCAgODI3LCAgODIyLCAgODE3LCAgODEyLCAgODA3LCAgODAyLCAgNzk3LCAgNzkyLCAgNzg3LCAKKyAgICAgNzgzLCAgNzc4LCAgNzczLCAgNzY5LCAgNzY0LCAgNzYwLCAgNzU2LCAgNzUxLCAgNzQ3LCAgNzQzLCAgNzM5LCAgNzM0LCAgNzMwLCAKKyAgICAgNzI2LCAgNzIyLCAgNzE4LCAgNzE1LCAgNzExLCAgNzA3LCAgNzAzLCAgNjk5LCAgNjk2LCAgNjkyLCAgNjg4LCAgNjg1LCAgNjgxLCAKKyAgICAgNjc4LCAgNjc0LCAgNjcxLCAgNjY3LCAgNjY0LCAgNjYxLCAgNjU3LCAgNjU0LCAgNjUxLCAgNjQ4LCAgNjQ0LCAgNjQxLCAgNjM4LCAKKyAgICAgNjM1LCAgNjMyLCAgNjI5LCAgNjI2LCAgNjIzLCAgNjIwLCAgNjE3LCAgNjE0LCAgNjExLCAgNjA4LCAgNjA1LCAgNjAyLCAgNTk5LCAKKyAgICAgNTk3LCAgNTk0LCAgNTkxLCAgNTg4LCAgNTg2LCAgNTgzLCAgNTgwLCAgNTc4LCAgNTc1LCAgNTcyLCAgNTcwLCAgNTY3LCAgNTY1LCAKKyAgICAgNTYyLCAgNTYwLCAgNTU3LCAgNTU1LCAgNTUyLCAgNTUwLCAgNTQ3LCAgNTQ1LCAgNTQyLCAgNTQwLCAgNTM4LCAgNTM1LCAgNTMzLCAKKyAgICAgNTMxLCAgNTI4LCAgNTI2LCAgNTI0LCAgNTIyLCAgNTE5LCAgNTE3LCAgNTE1LCAgNTEzLCAgNTEwLCAgNTA4LCAgNTA2LCAgNTA0LCAKKyAgICAgNTAyLCAgNTAwLCAgNDk4LCAgNDk1LCAgNDkzLCAgNDkxLCAgNDg5LCAgNDg3LCAgNDg1LCAgNDgzLCAgNDgxLCAgNDc5LCAgNDc3LCAKKyAgICAgNDc1LCAgNDczLCAgNDcxLCAgNDY5LCAgNDY3LCAgNDY1LCAgNDY0LCAgNDYyLCAgNDYwLCAgNDU4LCAgNDU2LCAgNDU0LCAgNDUyLCAKKyAgICAgNDUwLCAgNDQ5LCAgNDQ3LCAgNDQ1LCAgNDQzLCAgNDQxLCAgNDQwLCAgNDM4LCAgNDM2LCAgNDM0LCAgNDMzLCAgNDMxLCAgNDI5LCAKKyAgICAgNDI3LCAgNDI2LCAgNDI0LCAgNDIyLCAgNDIxLCAgNDE5LCAgNDE3LCAgNDE2LCAgNDE0LCAgNDEyLCAgNDExLCAgNDA5LCAgNDA4LCAKKyAgICAgNDA2LCAgNDA0LCAgNDAzLCAgNDAxLCAgNDAwLCAgMzk4LCAgMzk2LCAgMzk1LCAgMzkzLCAgMzkyLCAgMzkwLCAgMzg5LCAgMzg3LCAKKyAgICAgMzg2LCAgMzg0LCAgMzgzLCAgMzgxLCAgMzgwLCAgMzc4LCAgMzc3LCAgMzc1LCAgMzc0LCAgMzcyLCAgMzcxLCAgMzcwLCAgMzY4LCAKKyAgICAgMzY3LCAgMzY1LCAgMzY0LCAgMzYyLCAgMzYxLCAgMzYwLCAgMzU4LCAgMzU3LCAgMzU1LCAgMzU0LCAgMzUzLCAgMzUxLCAgMzUwLCAKKyAgICAgMzQ5LCAgMzQ3LCAgMzQ2LCAgMzQ1LCAgMzQzLCAgMzQyLCAgMzQxLCAgMzM5LCAgMzM4LCAgMzM3LCAgMzM2LCAgMzM0LCAgMzMzLCAKKyAgICAgMzMyLCAgMzMwLCAgMzI5LCAgMzI4LCAgMzI3LCAgMzI1LCAgMzI0LCAgMzIzLCAgMzIyLCAgMzIwLCAgMzE5LCAgMzE4LCAgMzE3LCAKKyAgICAgMzE2LCAgMzE0LCAgMzEzLCAgMzEyLCAgMzExLCAgMzEwLCAgMzA4LCAgMzA3LCAgMzA2LCAgMzA1LCAgMzA0LCAgMzAzLCAgMzAxLCAKKyAgICAgMzAwLCAgMjk5LCAgMjk4LCAgMjk3LCAgMjk2LCAgMjk1LCAgMjkzLCAgMjkyLCAgMjkxLCAgMjkwLCAgMjg5LCAgMjg4LCAgMjg3LCAKKyAgICAgMjg2LCAgMjg1LCAgMjg0LCAgMjgyLCAgMjgxLCAgMjgwLCAgMjc5LCAgMjc4LCAgMjc3LCAgMjc2LCAgMjc1LCAgMjc0LCAgMjczLCAKKyAgICAgMjcyLCAgMjcxLCAgMjcwLCAgMjY5LCAgMjY4LCAgMjY3LCAgMjY2LCAgMjY1LCAgMjY0LCAgMjYzLCAgMjYyLCAgMjYxLCAgMjYwLCAKKyAgICAgMjU5LCAgMjU4LCAgMjU3LCAgMjU2LCAgMjU1LCAgMjU0LCAgMjUzLCAgMjUyLCAgMjUxLCAgMjUwLCAgMjQ5LCAgMjQ4LCAgMjQ3LCAKKyAgICAgMjQ2LCAgMjQ1LCAgMjQ0LCAgMjQzLCAgMjQyLCAgMjQxLCAgMjQwLCAgMjQwLCAgMjM5LCAgMjM4LCAgMjM3LCAgMjM2LCAgMjM1LCAKKyAgICAgMjM0LCAgMjMzLCAgMjMyLCAgMjMxLCAgMjMwLCAgMjMwLCAgMjI5LCAgMjI4LCAgMjI3LCAgMjI2LCAgMjI1LCAgMjI0LCAgMjIzLCAKKyAgICAgMjIyLCAgMjIyLCAgMjIxLCAgMjIwLCAgMjE5LCAgMjE4LCAgMjE3LCAgMjE2LCAgMjE2LCAgMjE1LCAgMjE0LCAgMjEzLCAgMjEyLCAKKyAgICAgMjExLCAgMjExLCAgMjEwLCAgMjA5LCAgMjA4LCAgMjA3LCAgMjA2LCAgMjA2LCAgMjA1LCAgMjA0LCAgMjAzLCAgMjAyLCAgMjAyLCAKKyAgICAgMjAxLCAgMjAwLCAgMTk5LCAgMTk4LCAgMTk4LCAgMTk3LCAgMTk2LCAgMTk1LCAgMTk1LCAgMTk0LCAgMTkzLCAgMTkyLCAgMTkxLCAKKyAgICAgMTkxLCAgMTkwLCAgMTg5LCAgMTg4LCAgMTg4LCAgMTg3LCAgMTg2LCAgMTg1LCAgMTg1LCAgMTg0LCAgMTgzLCAgMTgyLCAgMTgyLCAKKyAgICAgMTgxLCAgMTgwLCAgMTgwLCAgMTc5LCAgMTc4LCAgMTc3LCAgMTc3LCAgMTc2LCAgMTc1LCAgMTc0LCAgMTc0LCAgMTczLCAgMTcyLCAKKyAgICAgMTcyLCAgMTcxLCAgMTcwLCAgMTcwLCAgMTY5LCAgMTY4LCAgMTY3LCAgMTY3LCAgMTY2LCAgMTY1LCAgMTY1LCAgMTY0LCAgMTYzLCAKKyAgICAgMTYzLCAgMTYyLCAgMTYxLCAgMTYxLCAgMTYwLCAgMTU5LCAgMTU5LCAgMTU4LCAgMTU3LCAgMTU3LCAgMTU2LCAgMTU1LCAgMTU1LCAKKyAgICAgMTU0LCAgMTUzLCAgMTUzLCAgMTUyLCAgMTUxLCAgMTUxLCAgMTUwLCAgMTUwLCAgMTQ5LCAgMTQ4LCAgMTQ4LCAgMTQ3LCAgMTQ2LCAKKyAgICAgMTQ2LCAgMTQ1LCAgMTQ1LCAgMTQ0LCAgMTQzLCAgMTQzLCAgMTQyLCAgMTQxLCAgMTQxLCAgMTQwLCAgMTQwLCAgMTM5LCAgMTM4LCAKKyAgICAgMTM4LCAgMTM3LCAgMTM3LCAgMTM2LCAgMTM1LCAgMTM1LCAgMTM0LCAgMTM0LCAgMTMzLCAgMTMzLCAgMTMyLCAgMTMxLCAgMTMxLCAKKyAgICAgMTMwLCAgMTMwLCAgMTI5LCAgMTI5LCAgMTI4LCAgMTI3LCAgMTI3LCAgMTI2LCAgMTI2LCAgMTI1LCAgMTI1LCAgMTI0LCAgMTIzLCAKKyAgICAgMTIzLCAgMTIyLCAgMTIyLCAgMTIxLCAgMTIxLCAgMTIwLCAgMTIwLCAgMTE5LCAgMTE5LCAgMTE4LCAgMTE3LCAgMTE3LCAgMTE2LCAKKyAgICAgMTE2LCAgMTE1LCAgMTE1LCAgMTE0LCAgMTE0LCAgMTEzLCAgMTEzLCAgMTEyLCAgMTEyLCAgMTExLCAgMTExLCAgMTEwLCAgMTEwLCAKKyAgICAgMTA5LCAgMTA5LCAgMTA4LCAgMTA4LCAgMTA3LCAgMTA3LCAgMTA2LCAgMTA2LCAgMTA1LCAgMTA1LCAgMTA0LCAgMTA0LCAgMTAzLCAKKyAgICAgMTAzLCAgMTAyLCAgMTAyLCAgMTAxLCAgMTAxLCAgMTAwLCAgMTAwLCAgIDk5LCAgIDk5LCAgIDk4LCAgIDk4LCAgIDk3LCAgIDk3LCAKKyAgICAgIDk2LCAgIDk2LCAgIDk1LCAgIDk1LCAgIDk0LCAgIDk0LCAgIDk0LCAgIDkzLCAgIDkzLCAgIDkyLCAgIDkyLCAgIDkxLCAgIDkxLCAKKyAgICAgIDkwLCAgIDkwLCAgIDg5LCAgIDg5LCAgIDg5LCAgIDg4LCAgIDg4LCAgIDg3LCAgIDg3LCAgIDg2LCAgIDg2LCAgIDg1LCAgIDg1LCAKKyAgICAgIDg1LCAgIDg0LCAgIDg0LCAgIDgzLCAgIDgzLCAgIDgyLCAgIDgyLCAgIDgyLCAgIDgxLCAgIDgxLCAgIDgwLCAgIDgwLCAgIDc5LCAKKyAgICAgIDc5LCAgIDc5LCAgIDc4LCAgIDc4LCAgIDc3LCAgIDc3LCAgIDc3LCAgIDc2LCAgIDc2LCAgIDc1LCAgIDc1LCAgIDc1LCAgIDc0LCAKKyAgICAgIDc0LCAgIDczLCAgIDczLCAgIDczLCAgIDcyLCAgIDcyLCAgIDcxLCAgIDcxLCAgIDcxLCAgIDcwLCAgIDcwLCAgIDY5LCAgIDY5LCAKKyAgICAgIDY5LCAgIDY4LCAgIDY4LCAgIDY4LCAgIDY3LCAgIDY3LCAgIDY2LCAgIDY2LCAgIDY2LCAgIDY1LCAgIDY1LCAgIDY1LCAgIDY0LCAKKyAgICAgIDY0LCAgIDYzLCAgIDYzLCAgIDYzLCAgIDYyLCAgIDYyLCAgIDYyLCAgIDYxLCAgIDYxLCAgIDYxLCAgIDYwLCAgIDYwLCAgIDU5LCAKKyAgICAgIDU5LCAgIDU5LCAgIDU4LCAgIDU4LCAgIDU4LCAgIDU3LCAgIDU3LCAgIDU3LCAgIDU2LCAgIDU2LCAgIDU2LCAgIDU1LCAgIDU1LCAKKyAgICAgIDU1LCAgIDU0LCAgIDU0LCAgIDU0LCAgIDUzLCAgIDUzLCAgIDUzLCAgIDUyLCAgIDUyLCAgIDUyLCAgIDUxLCAgIDUxLCAgIDUxLCAKKyAgICAgIDUwLCAgIDUwLCAgIDUwLCAgIDQ5LCAgIDQ5LCAgIDQ5LCAgIDQ5LCAgIDQ4LCAgIDQ4LCAgIDQ4LCAgIDQ3LCAgIDQ3LCAgIDQ3LCAKKyAgICAgIDQ2LCAgIDQ2LCAgIDQ2LCAgIDQ1LCAgIDQ1LCAgIDQ1LCAgIDQ1LCAgIDQ0LCAgIDQ0LCAgIDQ0LCAgIDQzLCAgIDQzLCAgIDQzLCAKKyAgICAgIDQzLCAgIDQyLCAgIDQyLCAgIDQyLCAgIDQxLCAgIDQxLCAgIDQxLCAgIDQwLCAgIDQwLCAgIDQwLCAgIDQwLCAgIDM5LCAgIDM5LCAKKyAgICAgIDM5LCAgIDM5LCAgIDM4LCAgIDM4LCAgIDM4LCAgIDM3LCAgIDM3LCAgIDM3LCAgIDM3LCAgIDM2LCAgIDM2LCAgIDM2LCAgIDM2LCAKKyAgICAgIDM1LCAgIDM1LCAgIDM1LCAgIDM1LCAgIDM0LCAgIDM0LCAgIDM0LCAgIDM0LCAgIDMzLCAgIDMzLCAgIDMzLCAgIDMyLCAgIDMyLCAKKyAgICAgIDMyLCAgIDMyLCAgIDMxLCAgIDMxLCAgIDMxLCAgIDMxLCAgIDMxLCAgIDMwLCAgIDMwLCAgIDMwLCAgIDMwLCAgIDI5LCAgIDI5LCAKKyAgICAgIDI5LCAgIDI5LCAgIDI4LCAgIDI4LCAgIDI4LCAgIDI4LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI3LCAgIDI2LCAgIDI2LCAKKyAgICAgIDI2LCAgIDI2LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI1LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDI0LCAgIDIzLCAgIDIzLCAKKyAgICAgIDIzLCAgIDIzLCAgIDIzLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIyLCAgIDIxLCAgIDIxLCAgIDIxLCAgIDIxLCAgIDIxLCAKKyAgICAgIDIwLCAgIDIwLCAgIDIwLCAgIDIwLCAgIDIwLCAgIDE5LCAgIDE5LCAgIDE5LCAgIDE5LCAgIDE5LCAgIDE5LCAgIDE4LCAgIDE4LCAKKyAgICAgIDE4LCAgIDE4LCAgIDE4LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE3LCAgIDE2LCAgIDE2LCAgIDE2LCAgIDE2LCAKKyAgICAgIDE2LCAgIDE1LCAgIDE1LCAgIDE1LCAgIDE1LCAgIDE1LCAgIDE1LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAgIDE0LCAKKyAgICAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEzLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAKKyAgICAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDExLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAKKyAgICAgIDEwLCAgIDEwLCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgICA5LCAgICA4LCAgICA4LCAgICA4LCAgICA4LCAKKyAgICAgICA4LCAgICA4LCAgICA4LCAgICA4LCAgICA4LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAgICA3LCAKKyAgICAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA2LCAgICA1LCAgICA1LCAgICA1LCAKKyAgICAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA1LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAKKyAgICAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICA0LCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAKKyAgICAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAKKyAgICAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAKKyAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAKKyAgICAgICAxLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAKKyAgICAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAKKyAgICAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAKKyAgICAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwCit9OworCisKK3N0YXRpYyBjb25zdCBzaG9ydCBsZm9fZnJlcV9jb2VmZltdID0geworICAgICAgICAwLCAgICAzLCAgICA2LCAgICA5LCAgIDEyLCAgIDE1LCAgIDE4LCAgIDIxLCAgIDI1LCAgIDI4LCAgIDMxLCAgIDM0LCAgIDM3LCAKKyAgICAgIDQwLCAgIDQzLCAgIDQ2LCAgIDUwLCAgIDUzLCAgIDU2LCAgIDU5LCAgIDYyLCAgIDY1LCAgIDY4LCAgIDcxLCAgIDc0LCAgIDc4LCAKKyAgICAgIDgxLCAgIDg0LCAgIDg3LCAgIDkwLCAgIDkzLCAgIDk2LCAgIDk5LCAgMTAyLCAgMTA1LCAgMTA4LCAgMTExLCAgMTE1LCAgMTE4LCAKKyAgICAgMTIxLCAgMTI0LCAgMTI3LCAgMTMwLCAgMTMzLCAgMTM2LCAgMTM5LCAgMTQyLCAgMTQ1LCAgMTQ4LCAgMTUxLCAgMTU0LCAgMTU3LCAKKyAgICAgMTYwLCAgMTYzLCAgMTY2LCAgMTY5LCAgMTcyLCAgMTc1LCAgMTc4LCAgMTgwLCAgMTgzLCAgMTg2LCAgMTg5LCAgMTkyLCAgMTk1LCAKKyAgICAgMTk4LCAgMjAxLCAgMjA0LCAgMjA3LCAgMjA5LCAgMjEyLCAgMjE1LCAgMjE4LCAgMjIxLCAgMjI0LCAgMjI2LCAgMjI5LCAgMjMyLCAKKyAgICAgMjM1LCAgMjM4LCAgMjQwLCAgMjQzLCAgMjQ2LCAgMjQ5LCAgMjUxLCAgMjU0LCAgMjU3LCAgMjYwLCAgMjYyLCAgMjY1LCAgMjY4LCAKKyAgICAgMjcwLCAgMjczLCAgMjc2LCAgMjc4LCAgMjgxLCAgMjgzLCAgMjg2LCAgMjg5LCAgMjkxLCAgMjk0LCAgMjk2LCAgMjk5LCAgMzAxLCAKKyAgICAgMzA0LCAgMzA2LCAgMzA5LCAgMzExLCAgMzE0LCAgMzE2LCAgMzE5LCAgMzIxLCAgMzI0LCAgMzI2LCAgMzI4LCAgMzMxLCAgMzMzLCAKKyAgICAgMzM2LCAgMzM4LCAgMzQwLCAgMzQzLCAgMzQ1LCAgMzQ3LCAgMzUwLCAgMzUyLCAgMzU0LCAgMzU2LCAgMzU5LCAgMzYxLCAgMzYzLCAKKyAgICAgMzY1LCAgMzY3LCAgMzcwLCAgMzcyLCAgMzc0LCAgMzc2LCAgMzc4LCAgMzgwLCAgMzgyLCAgMzg0LCAgMzg2LCAgMzg4LCAgMzkxLCAKKyAgICAgMzkzLCAgMzk1LCAgMzk2LCAgMzk4LCAgNDAwLCAgNDAyLCAgNDA0LCAgNDA2LCAgNDA4LCAgNDEwLCAgNDEyLCAgNDE0LCAgNDE1LCAKKyAgICAgNDE3LCAgNDE5LCAgNDIxLCAgNDIzLCAgNDI0LCAgNDI2LCAgNDI4LCAgNDMwLCAgNDMxLCAgNDMzLCAgNDM1LCAgNDM2LCAgNDM4LCAKKyAgICAgNDM5LCAgNDQxLCAgNDQzLCAgNDQ0LCAgNDQ2LCAgNDQ3LCAgNDQ5LCAgNDUwLCAgNDUyLCAgNDUzLCAgNDU1LCAgNDU2LCAgNDU3LCAKKyAgICAgNDU5LCAgNDYwLCAgNDYxLCAgNDYzLCAgNDY0LCAgNDY1LCAgNDY3LCAgNDY4LCAgNDY5LCAgNDcwLCAgNDcyLCAgNDczLCAgNDc0LCAKKyAgICAgNDc1LCAgNDc2LCAgNDc3LCAgNDc4LCAgNDgwLCAgNDgxLCAgNDgyLCAgNDgzLCAgNDg0LCAgNDg1LCAgNDg2LCAgNDg3LCAgNDg4LCAKKyAgICAgNDg4LCAgNDg5LCAgNDkwLCAgNDkxLCAgNDkyLCAgNDkzLCAgNDk0LCAgNDk0LCAgNDk1LCAgNDk2LCAgNDk3LCAgNDk3LCAgNDk4LCAKKyAgICAgNDk5LCAgNDk5LCAgNTAwLCAgNTAxLCAgNTAxLCAgNTAyLCAgNTAyLCAgNTAzLCAgNTA0LCAgNTA0LCAgNTA0LCAgNTA1LCAgNTA1LCAKKyAgICAgNTA2LCAgNTA2LCAgNTA3LCAgNTA3LCAgNTA3LCAgNTA4LCAgNTA4LCAgNTA4LCAgNTA5LCAgNTA5LCAgNTA5LCAgNTA5LCAgNTEwLCAKKyAgICAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTExLCAgNTEwLCAgNTEwLCAgNTEwLCAKKyAgICAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTEwLCAgNTA5LCAgNTA5LCAgNTA5LCAgNTA5LCAgNTA4LCAgNTA4LCAKKyAgICAgNTA4LCAgNTA3LCAgNTA3LCAgNTA3LCAgNTA2LCAgNTA2LCAgNTA1LCAgNTA1LCAgNTA0LCAgNTA0LCAgNTA0LCAgNTAzLCAgNTAyLCAKKyAgICAgNTAyLCAgNTAxLCAgNTAxLCAgNTAwLCAgNDk5LCAgNDk5LCAgNDk4LCAgNDk3LCAgNDk3LCAgNDk2LCAgNDk1LCAgNDk0LCAgNDk0LCAKKyAgICAgNDkzLCAgNDkyLCAgNDkxLCAgNDkwLCAgNDg5LCAgNDg4LCAgNDg4LCAgNDg3LCAgNDg2LCAgNDg1LCAgNDg0LCAgNDgzLCAgNDgyLCAKKyAgICAgNDgxLCAgNDgwLCAgNDc4LCAgNDc3LCAgNDc2LCAgNDc1LCAgNDc0LCAgNDczLCAgNDcyLCAgNDcwLCAgNDY5LCAgNDY4LCAgNDY3LCAKKyAgICAgNDY1LCAgNDY0LCAgNDYzLCAgNDYxLCAgNDYwLCAgNDU5LCAgNDU3LCAgNDU2LCAgNDU1LCAgNDUzLCAgNDUyLCAgNDUwLCAgNDQ5LCAKKyAgICAgNDQ3LCAgNDQ2LCAgNDQ0LCAgNDQzLCAgNDQxLCAgNDM5LCAgNDM4LCAgNDM2LCAgNDM1LCAgNDMzLCAgNDMxLCAgNDMwLCAgNDI4LCAKKyAgICAgNDI2LCAgNDI0LCAgNDIzLCAgNDIxLCAgNDE5LCAgNDE3LCAgNDE1LCAgNDE0LCAgNDEyLCAgNDEwLCAgNDA4LCAgNDA2LCAgNDA0LCAKKyAgICAgNDAyLCAgNDAwLCAgMzk4LCAgMzk2LCAgMzk1LCAgMzkzLCAgMzkxLCAgMzg4LCAgMzg2LCAgMzg0LCAgMzgyLCAgMzgwLCAgMzc4LCAKKyAgICAgMzc2LCAgMzc0LCAgMzcyLCAgMzcwLCAgMzY3LCAgMzY1LCAgMzYzLCAgMzYxLCAgMzU5LCAgMzU2LCAgMzU0LCAgMzUyLCAgMzUwLCAKKyAgICAgMzQ3LCAgMzQ1LCAgMzQzLCAgMzQwLCAgMzM4LCAgMzM2LCAgMzMzLCAgMzMxLCAgMzI4LCAgMzI2LCAgMzI0LCAgMzIxLCAgMzE5LCAKKyAgICAgMzE2LCAgMzE0LCAgMzExLCAgMzA5LCAgMzA2LCAgMzA0LCAgMzAxLCAgMjk5LCAgMjk2LCAgMjk0LCAgMjkxLCAgMjg5LCAgMjg2LCAKKyAgICAgMjgzLCAgMjgxLCAgMjc4LCAgMjc2LCAgMjczLCAgMjcwLCAgMjY4LCAgMjY1LCAgMjYyLCAgMjYwLCAgMjU3LCAgMjU0LCAgMjUxLCAKKyAgICAgMjQ5LCAgMjQ2LCAgMjQzLCAgMjQwLCAgMjM4LCAgMjM1LCAgMjMyLCAgMjI5LCAgMjI2LCAgMjI0LCAgMjIxLCAgMjE4LCAgMjE1LCAKKyAgICAgMjEyLCAgMjA5LCAgMjA3LCAgMjA0LCAgMjAxLCAgMTk4LCAgMTk1LCAgMTkyLCAgMTg5LCAgMTg2LCAgMTgzLCAgMTgwLCAgMTc4LCAKKyAgICAgMTc1LCAgMTcyLCAgMTY5LCAgMTY2LCAgMTYzLCAgMTYwLCAgMTU3LCAgMTU0LCAgMTUxLCAgMTQ4LCAgMTQ1LCAgMTQyLCAgMTM5LCAKKyAgICAgMTM2LCAgMTMzLCAgMTMwLCAgMTI3LCAgMTI0LCAgMTIxLCAgMTE4LCAgMTE1LCAgMTExLCAgMTA4LCAgMTA1LCAgMTAyLCAgIDk5LCAKKyAgICAgIDk2LCAgIDkzLCAgIDkwLCAgIDg3LCAgIDg0LCAgIDgxLCAgIDc4LCAgIDc0LCAgIDcxLCAgIDY4LCAgIDY1LCAgIDYyLCAgIDU5LCAKKyAgICAgIDU2LCAgIDUzLCAgIDUwLCAgIDQ2LCAgIDQzLCAgIDQwLCAgIDM3LCAgIDM0LCAgIDMxLCAgIDI4LCAgIDI1LCAgIDIxLCAgIDE4LCAKKyAgICAgIDE1LCAgIDEyLCAgICA5LCAgICA2LCAgICAzLCAgICAwLCAgIC0zLCAgIC02LCAgIC05LCAgLTEyLCAgLTE1LCAgLTE4LCAgLTIxLCAKKyAgICAgLTI1LCAgLTI4LCAgLTMxLCAgLTM0LCAgLTM3LCAgLTQwLCAgLTQzLCAgLTQ2LCAgLTUwLCAgLTUzLCAgLTU2LCAgLTU5LCAgLTYyLCAKKyAgICAgLTY1LCAgLTY4LCAgLTcxLCAgLTc0LCAgLTc4LCAgLTgxLCAgLTg0LCAgLTg3LCAgLTkwLCAgLTkzLCAgLTk2LCAgLTk5LCAtMTAyLCAKKyAgICAtMTA1LCAtMTA4LCAtMTExLCAtMTE1LCAtMTE4LCAtMTIxLCAtMTI0LCAtMTI3LCAtMTMwLCAtMTMzLCAtMTM2LCAtMTM5LCAtMTQyLCAKKyAgICAtMTQ1LCAtMTQ4LCAtMTUxLCAtMTU0LCAtMTU3LCAtMTYwLCAtMTYzLCAtMTY2LCAtMTY5LCAtMTcyLCAtMTc1LCAtMTc4LCAtMTgwLCAKKyAgICAtMTgzLCAtMTg2LCAtMTg5LCAtMTkyLCAtMTk1LCAtMTk4LCAtMjAxLCAtMjA0LCAtMjA3LCAtMjA5LCAtMjEyLCAtMjE1LCAtMjE4LCAKKyAgICAtMjIxLCAtMjI0LCAtMjI2LCAtMjI5LCAtMjMyLCAtMjM1LCAtMjM4LCAtMjQwLCAtMjQzLCAtMjQ2LCAtMjQ5LCAtMjUxLCAtMjU0LCAKKyAgICAtMjU3LCAtMjYwLCAtMjYyLCAtMjY1LCAtMjY4LCAtMjcwLCAtMjczLCAtMjc2LCAtMjc4LCAtMjgxLCAtMjgzLCAtMjg2LCAtMjg5LCAKKyAgICAtMjkxLCAtMjk0LCAtMjk2LCAtMjk5LCAtMzAxLCAtMzA0LCAtMzA2LCAtMzA5LCAtMzExLCAtMzE0LCAtMzE2LCAtMzE5LCAtMzIxLCAKKyAgICAtMzI0LCAtMzI2LCAtMzI4LCAtMzMxLCAtMzMzLCAtMzM2LCAtMzM4LCAtMzQwLCAtMzQzLCAtMzQ1LCAtMzQ3LCAtMzUwLCAtMzUyLCAKKyAgICAtMzU0LCAtMzU2LCAtMzU5LCAtMzYxLCAtMzYzLCAtMzY1LCAtMzY3LCAtMzcwLCAtMzcyLCAtMzc0LCAtMzc2LCAtMzc4LCAtMzgwLCAKKyAgICAtMzgyLCAtMzg0LCAtMzg2LCAtMzg4LCAtMzkxLCAtMzkzLCAtMzk1LCAtMzk2LCAtMzk4LCAtNDAwLCAtNDAyLCAtNDA0LCAtNDA2LCAKKyAgICAtNDA4LCAtNDEwLCAtNDEyLCAtNDE0LCAtNDE1LCAtNDE3LCAtNDE5LCAtNDIxLCAtNDIzLCAtNDI0LCAtNDI2LCAtNDI4LCAtNDMwLCAKKyAgICAtNDMxLCAtNDMzLCAtNDM1LCAtNDM2LCAtNDM4LCAtNDM5LCAtNDQxLCAtNDQzLCAtNDQ0LCAtNDQ2LCAtNDQ3LCAtNDQ5LCAtNDUwLCAKKyAgICAtNDUyLCAtNDUzLCAtNDU1LCAtNDU2LCAtNDU3LCAtNDU5LCAtNDYwLCAtNDYxLCAtNDYzLCAtNDY0LCAtNDY1LCAtNDY3LCAtNDY4LCAKKyAgICAtNDY5LCAtNDcwLCAtNDcyLCAtNDczLCAtNDc0LCAtNDc1LCAtNDc2LCAtNDc3LCAtNDc4LCAtNDgwLCAtNDgxLCAtNDgyLCAtNDgzLCAKKyAgICAtNDg0LCAtNDg1LCAtNDg2LCAtNDg3LCAtNDg4LCAtNDg4LCAtNDg5LCAtNDkwLCAtNDkxLCAtNDkyLCAtNDkzLCAtNDk0LCAtNDk0LCAKKyAgICAtNDk1LCAtNDk2LCAtNDk3LCAtNDk3LCAtNDk4LCAtNDk5LCAtNDk5LCAtNTAwLCAtNTAxLCAtNTAxLCAtNTAyLCAtNTAyLCAtNTAzLCAKKyAgICAtNTA0LCAtNTA0LCAtNTA0LCAtNTA1LCAtNTA1LCAtNTA2LCAtNTA2LCAtNTA3LCAtNTA3LCAtNTA3LCAtNTA4LCAtNTA4LCAtNTA4LCAKKyAgICAtNTA5LCAtNTA5LCAtNTA5LCAtNTA5LCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAKKyAgICAtNTEwLCAtNTExLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTEwLCAtNTA5LCAKKyAgICAtNTA5LCAtNTA5LCAtNTA5LCAtNTA4LCAtNTA4LCAtNTA4LCAtNTA3LCAtNTA3LCAtNTA3LCAtNTA2LCAtNTA2LCAtNTA1LCAtNTA1LCAKKyAgICAtNTA0LCAtNTA0LCAtNTA0LCAtNTAzLCAtNTAyLCAtNTAyLCAtNTAxLCAtNTAxLCAtNTAwLCAtNDk5LCAtNDk5LCAtNDk4LCAtNDk3LCAKKyAgICAtNDk3LCAtNDk2LCAtNDk1LCAtNDk0LCAtNDk0LCAtNDkzLCAtNDkyLCAtNDkxLCAtNDkwLCAtNDg5LCAtNDg4LCAtNDg4LCAtNDg3LCAKKyAgICAtNDg2LCAtNDg1LCAtNDg0LCAtNDgzLCAtNDgyLCAtNDgxLCAtNDgwLCAtNDc4LCAtNDc3LCAtNDc2LCAtNDc1LCAtNDc0LCAtNDczLCAKKyAgICAtNDcyLCAtNDcwLCAtNDY5LCAtNDY4LCAtNDY3LCAtNDY1LCAtNDY0LCAtNDYzLCAtNDYxLCAtNDYwLCAtNDU5LCAtNDU3LCAtNDU2LCAKKyAgICAtNDU1LCAtNDUzLCAtNDUyLCAtNDUwLCAtNDQ5LCAtNDQ3LCAtNDQ2LCAtNDQ0LCAtNDQzLCAtNDQxLCAtNDM5LCAtNDM4LCAtNDM2LCAKKyAgICAtNDM1LCAtNDMzLCAtNDMxLCAtNDMwLCAtNDI4LCAtNDI2LCAtNDI0LCAtNDIzLCAtNDIxLCAtNDE5LCAtNDE3LCAtNDE1LCAtNDE0LCAKKyAgICAtNDEyLCAtNDEwLCAtNDA4LCAtNDA2LCAtNDA0LCAtNDAyLCAtNDAwLCAtMzk4LCAtMzk2LCAtMzk1LCAtMzkzLCAtMzkxLCAtMzg4LCAKKyAgICAtMzg2LCAtMzg0LCAtMzgyLCAtMzgwLCAtMzc4LCAtMzc2LCAtMzc0LCAtMzcyLCAtMzcwLCAtMzY3LCAtMzY1LCAtMzYzLCAtMzYxLCAKKyAgICAtMzU5LCAtMzU2LCAtMzU0LCAtMzUyLCAtMzUwLCAtMzQ3LCAtMzQ1LCAtMzQzLCAtMzQwLCAtMzM4LCAtMzM2LCAtMzMzLCAtMzMxLCAKKyAgICAtMzI4LCAtMzI2LCAtMzI0LCAtMzIxLCAtMzE5LCAtMzE2LCAtMzE0LCAtMzExLCAtMzA5LCAtMzA2LCAtMzA0LCAtMzAxLCAtMjk5LCAKKyAgICAtMjk2LCAtMjk0LCAtMjkxLCAtMjg5LCAtMjg2LCAtMjgzLCAtMjgxLCAtMjc4LCAtMjc2LCAtMjczLCAtMjcwLCAtMjY4LCAtMjY1LCAKKyAgICAtMjYyLCAtMjYwLCAtMjU3LCAtMjU0LCAtMjUxLCAtMjQ5LCAtMjQ2LCAtMjQzLCAtMjQwLCAtMjM4LCAtMjM1LCAtMjMyLCAtMjI5LCAKKyAgICAtMjI2LCAtMjI0LCAtMjIxLCAtMjE4LCAtMjE1LCAtMjEyLCAtMjA5LCAtMjA3LCAtMjA0LCAtMjAxLCAtMTk4LCAtMTk1LCAtMTkyLCAKKyAgICAtMTg5LCAtMTg2LCAtMTgzLCAtMTgwLCAtMTc4LCAtMTc1LCAtMTcyLCAtMTY5LCAtMTY2LCAtMTYzLCAtMTYwLCAtMTU3LCAtMTU0LCAKKyAgICAtMTUxLCAtMTQ4LCAtMTQ1LCAtMTQyLCAtMTM5LCAtMTM2LCAtMTMzLCAtMTMwLCAtMTI3LCAtMTI0LCAtMTIxLCAtMTE4LCAtMTE1LCAKKyAgICAtMTExLCAtMTA4LCAtMTA1LCAtMTAyLCAgLTk5LCAgLTk2LCAgLTkzLCAgLTkwLCAgLTg3LCAgLTg0LCAgLTgxLCAgLTc4LCAgLTc0LCAKKyAgICAgLTcxLCAgLTY4LCAgLTY1LCAgLTYyLCAgLTU5LCAgLTU2LCAgLTUzLCAgLTUwLCAgLTQ2LCAgLTQzLCAgLTQwLCAgLTM3LCAgLTM0LCAKKyAgICAgLTMxLCAgLTI4LCAgLTI1LCAgLTIxLCAgLTE4LCAgLTE1LCAgLTEyLCAgIC05LCAgIC02LCAgIC0zCit9OworCitzdGF0aWMgY29uc3Qgc2hvcnQgbGZvX2Vudl9jb2VmZltdID0geworICAgICAyNTEsICAyNTMsICAyNTQsICAyNTYsICAyNTcsICAyNTksICAyNjAsICAyNjIsICAyNjQsICAyNjUsICAyNjcsICAyNjgsICAyNzAsIAorICAgICAyNzEsICAyNzMsICAyNzQsICAyNzYsICAyNzcsICAyNzksICAyODEsICAyODIsICAyODQsICAyODUsICAyODcsICAyODgsICAyOTAsIAorICAgICAyOTEsICAyOTMsICAyOTQsICAyOTYsICAyOTcsICAyOTksICAzMDAsICAzMDIsICAzMDMsICAzMDUsICAzMDYsICAzMDgsICAzMDksIAorICAgICAzMTEsICAzMTIsICAzMTQsICAzMTUsICAzMTcsICAzMTgsICAzMjAsICAzMjEsICAzMjMsICAzMjQsICAzMjYsICAzMjcsICAzMjksIAorICAgICAzMzAsICAzMzIsICAzMzMsICAzMzUsICAzMzYsICAzMzcsICAzMzksICAzNDAsICAzNDIsICAzNDMsICAzNDUsICAzNDYsICAzNDgsIAorICAgICAzNDksICAzNTAsICAzNTIsICAzNTMsICAzNTUsICAzNTYsICAzNTcsICAzNTksICAzNjAsICAzNjIsICAzNjMsICAzNjQsICAzNjYsIAorICAgICAzNjcsICAzNjksICAzNzAsICAzNzEsICAzNzMsICAzNzQsICAzNzUsICAzNzcsICAzNzgsICAzNzksICAzODEsICAzODIsICAzODMsIAorICAgICAzODUsICAzODYsICAzODcsICAzODksICAzOTAsICAzOTEsICAzOTIsICAzOTQsICAzOTUsICAzOTYsICAzOTcsICAzOTksICA0MDAsIAorICAgICA0MDEsICA0MDIsICA0MDQsICA0MDUsICA0MDYsICA0MDcsICA0MDksICA0MTAsICA0MTEsICA0MTIsICA0MTMsICA0MTQsICA0MTYsIAorICAgICA0MTcsICA0MTgsICA0MTksICA0MjAsICA0MjEsICA0MjMsICA0MjQsICA0MjUsICA0MjYsICA0MjcsICA0MjgsICA0MjksICA0MzAsIAorICAgICA0MzEsICA0MzIsICA0MzQsICA0MzUsICA0MzYsICA0MzcsICA0MzgsICA0MzksICA0NDAsICA0NDEsICA0NDIsICA0NDMsICA0NDQsIAorICAgICA0NDUsICA0NDYsICA0NDcsICA0NDgsICA0NDksICA0NTAsICA0NTEsICA0NTIsICA0NTMsICA0NTMsICA0NTQsICA0NTUsICA0NTYsIAorICAgICA0NTcsICA0NTgsICA0NTksICA0NjAsICA0NjEsICA0NjEsICA0NjIsICA0NjMsICA0NjQsICA0NjUsICA0NjYsICA0NjYsICA0NjcsIAorICAgICA0NjgsICA0NjksICA0NjksICA0NzAsICA0NzEsICA0NzIsICA0NzMsICA0NzMsICA0NzQsICA0NzUsICA0NzUsICA0NzYsICA0NzcsIAorICAgICA0NzcsICA0NzgsICA0NzksICA0NzksICA0ODAsICA0ODEsICA0ODEsICA0ODIsICA0ODMsICA0ODMsICA0ODQsICA0ODQsICA0ODUsIAorICAgICA0ODYsICA0ODYsICA0ODcsICA0ODcsICA0ODgsICA0ODgsICA0ODksICA0ODksICA0OTAsICA0OTAsICA0OTEsICA0OTEsICA0OTIsIAorICAgICA0OTIsICA0OTMsICA0OTMsICA0OTMsICA0OTQsICA0OTQsICA0OTUsICA0OTUsICA0OTUsICA0OTYsICA0OTYsICA0OTcsICA0OTcsIAorICAgICA0OTcsICA0OTgsICA0OTgsICA0OTgsICA0OTgsICA0OTksICA0OTksICA0OTksICA1MDAsICA1MDAsICA1MDAsICA1MDAsICA1MDAsIAorICAgICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsIAorICAgICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsIAorICAgICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDMsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsICA1MDIsIAorICAgICA1MDIsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDEsICA1MDAsICA1MDAsICA1MDAsICA1MDAsICA1MDAsICA0OTksICA0OTksIAorICAgICA0OTksICA0OTgsICA0OTgsICA0OTgsICA0OTgsICA0OTcsICA0OTcsICA0OTcsICA0OTYsICA0OTYsICA0OTUsICA0OTUsICA0OTUsIAorICAgICA0OTQsICA0OTQsICA0OTMsICA0OTMsICA0OTMsICA0OTIsICA0OTIsICA0OTEsICA0OTEsICA0OTAsICA0OTAsICA0ODksICA0ODksIAorICAgICA0ODgsICA0ODgsICA0ODcsICA0ODcsICA0ODYsICA0ODYsICA0ODUsICA0ODQsICA0ODQsICA0ODMsICA0ODMsICA0ODIsICA0ODEsIAorICAgICA0ODEsICA0ODAsICA0NzksICA0NzksICA0NzgsICA0NzcsICA0NzcsICA0NzYsICA0NzUsICA0NzUsICA0NzQsICA0NzMsICA0NzMsIAorICAgICA0NzIsICA0NzEsICA0NzAsICA0NjksICA0NjksICA0NjgsICA0NjcsICA0NjYsICA0NjYsICA0NjUsICA0NjQsICA0NjMsICA0NjIsIAorICAgICA0NjEsICA0NjEsICA0NjAsICA0NTksICA0NTgsICA0NTcsICA0NTYsICA0NTUsICA0NTQsICA0NTMsICA0NTMsICA0NTIsICA0NTEsIAorICAgICA0NTAsICA0NDksICA0NDgsICA0NDcsICA0NDYsICA0NDUsICA0NDQsICA0NDMsICA0NDIsICA0NDEsICA0NDAsICA0MzksICA0MzgsIAorICAgICA0MzcsICA0MzYsICA0MzUsICA0MzQsICA0MzIsICA0MzEsICA0MzAsICA0MjksICA0MjgsICA0MjcsICA0MjYsICA0MjUsICA0MjQsIAorICAgICA0MjMsICA0MjEsICA0MjAsICA0MTksICA0MTgsICA0MTcsICA0MTYsICA0MTQsICA0MTMsICA0MTIsICA0MTEsICA0MTAsICA0MDksIAorICAgICA0MDcsICA0MDYsICA0MDUsICA0MDQsICA0MDIsICA0MDEsICA0MDAsICAzOTksICAzOTcsICAzOTYsICAzOTUsICAzOTQsICAzOTIsIAorICAgICAzOTEsICAzOTAsICAzODksICAzODcsICAzODYsICAzODUsICAzODMsICAzODIsICAzODEsICAzNzksICAzNzgsICAzNzcsICAzNzUsIAorICAgICAzNzQsICAzNzMsICAzNzEsICAzNzAsICAzNjksICAzNjcsICAzNjYsICAzNjQsICAzNjMsICAzNjIsICAzNjAsICAzNTksICAzNTcsIAorICAgICAzNTYsICAzNTUsICAzNTMsICAzNTIsICAzNTAsICAzNDksICAzNDgsICAzNDYsICAzNDUsICAzNDMsICAzNDIsICAzNDAsICAzMzksIAorICAgICAzMzcsICAzMzYsICAzMzUsICAzMzMsICAzMzIsICAzMzAsICAzMjksICAzMjcsICAzMjYsICAzMjQsICAzMjMsICAzMjEsICAzMjAsIAorICAgICAzMTgsICAzMTcsICAzMTUsICAzMTQsICAzMTIsICAzMTEsICAzMDksICAzMDgsICAzMDYsICAzMDUsICAzMDMsICAzMDIsICAzMDAsIAorICAgICAyOTksICAyOTcsICAyOTYsICAyOTQsICAyOTMsICAyOTEsICAyOTAsICAyODgsICAyODcsICAyODUsICAyODQsICAyODIsICAyODEsIAorICAgICAyNzksICAyNzcsICAyNzYsICAyNzQsICAyNzMsICAyNzEsICAyNzAsICAyNjgsICAyNjcsICAyNjUsICAyNjQsICAyNjIsICAyNjAsIAorICAgICAyNTksICAyNTcsICAyNTYsICAyNTQsICAyNTMsICAyNTEsICAyNTAsICAyNDgsICAyNDcsICAyNDUsICAyNDQsICAyNDIsICAyNDAsIAorICAgICAyMzksICAyMzcsICAyMzYsICAyMzQsICAyMzMsICAyMzEsICAyMzAsICAyMjgsICAyMjcsICAyMjUsICAyMjMsICAyMjIsICAyMjAsIAorICAgICAyMTksICAyMTcsICAyMTYsICAyMTQsICAyMTMsICAyMTEsICAyMTAsICAyMDgsICAyMDcsICAyMDUsICAyMDQsICAyMDIsICAyMDEsIAorICAgICAxOTksICAxOTgsICAxOTYsICAxOTUsICAxOTMsICAxOTIsICAxOTAsICAxODksICAxODcsICAxODYsICAxODQsICAxODMsICAxODEsIAorICAgICAxODAsICAxNzgsICAxNzcsICAxNzUsICAxNzQsICAxNzIsICAxNzEsICAxNjksICAxNjgsICAxNjYsICAxNjUsICAxNjQsICAxNjIsIAorICAgICAxNjEsICAxNTksICAxNTgsICAxNTYsICAxNTUsICAxNTMsICAxNTIsICAxNTEsICAxNDksICAxNDgsICAxNDYsICAxNDUsICAxNDQsIAorICAgICAxNDIsICAxNDEsICAxMzksICAxMzgsICAxMzcsICAxMzUsICAxMzQsICAxMzMsICAxMzEsICAxMzAsICAxMjksICAxMjcsICAxMjYsIAorICAgICAxMjQsICAxMjMsICAxMjIsICAxMjAsICAxMTksICAxMTgsICAxMTcsICAxMTUsICAxMTQsICAxMTMsICAxMTEsICAxMTAsICAxMDksIAorICAgICAxMDgsICAxMDYsICAxMDUsICAxMDQsICAxMDMsICAxMDEsICAxMDAsICAgOTksICAgOTgsICAgOTYsICAgOTUsICAgOTQsICAgOTMsIAorICAgICAgOTIsICAgOTAsICAgODksICAgODgsICAgODcsICAgODYsICAgODQsICAgODMsICAgODIsICAgODEsICAgODAsICAgNzksICAgNzgsIAorICAgICAgNzcsICAgNzUsICAgNzQsICAgNzMsICAgNzIsICAgNzEsICAgNzAsICAgNjksICAgNjgsICAgNjcsICAgNjYsICAgNjUsICAgNjQsIAorICAgICAgNjMsICAgNjIsICAgNjEsICAgNjAsICAgNTksICAgNTgsICAgNTcsICAgNTYsICAgNTUsICAgNTQsICAgNTMsICAgNTIsICAgNTEsIAorICAgICAgNTAsICAgNDksICAgNDgsICAgNDcsICAgNDYsICAgNDUsICAgNDUsICAgNDQsICAgNDMsICAgNDIsICAgNDEsICAgNDAsICAgMzksIAorICAgICAgMzksICAgMzgsICAgMzcsICAgMzYsICAgMzUsICAgMzUsICAgMzQsICAgMzMsICAgMzIsICAgMzEsICAgMzEsICAgMzAsICAgMjksIAorICAgICAgMjksICAgMjgsICAgMjcsICAgMjYsICAgMjYsICAgMjUsICAgMjQsICAgMjQsICAgMjMsICAgMjIsICAgMjIsICAgMjEsICAgMjAsIAorICAgICAgMjAsICAgMTksICAgMTksICAgMTgsICAgMTcsICAgMTcsICAgMTYsICAgMTYsICAgMTUsICAgMTUsICAgMTQsICAgMTQsICAgMTMsIAorICAgICAgMTMsICAgMTIsICAgMTIsICAgMTEsICAgMTEsICAgMTAsICAgMTAsICAgIDksICAgIDksICAgIDksICAgIDgsICAgIDgsICAgIDcsIAorICAgICAgIDcsICAgIDcsICAgIDYsICAgIDYsICAgIDYsICAgIDUsICAgIDUsICAgIDUsICAgIDQsICAgIDQsICAgIDQsICAgIDMsICAgIDMsIAorICAgICAgIDMsICAgIDMsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDIsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsIAorICAgICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsIAorICAgICAgIDAsICAgIDAsICAgIDAsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDIsICAgIDIsICAgIDIsICAgIDIsIAorICAgICAgIDIsICAgIDMsICAgIDMsICAgIDMsICAgIDMsICAgIDQsICAgIDQsICAgIDQsICAgIDUsICAgIDUsICAgIDUsICAgIDYsICAgIDYsIAorICAgICAgIDYsICAgIDcsICAgIDcsICAgIDcsICAgIDgsICAgIDgsICAgIDksICAgIDksICAgIDksICAgMTAsICAgMTAsICAgMTEsICAgMTEsIAorICAgICAgMTIsICAgMTIsICAgMTMsICAgMTMsICAgMTQsICAgMTQsICAgMTUsICAgMTUsICAgMTYsICAgMTYsICAgMTcsICAgMTcsICAgMTgsIAorICAgICAgMTksICAgMTksICAgMjAsICAgMjAsICAgMjEsICAgMjIsICAgMjIsICAgMjMsICAgMjQsICAgMjQsICAgMjUsICAgMjYsICAgMjYsIAorICAgICAgMjcsICAgMjgsICAgMjksICAgMjksICAgMzAsICAgMzEsICAgMzEsICAgMzIsICAgMzMsICAgMzQsICAgMzUsICAgMzUsICAgMzYsIAorICAgICAgMzcsICAgMzgsICAgMzksICAgMzksICAgNDAsICAgNDEsICAgNDIsICAgNDMsICAgNDQsICAgNDUsICAgNDUsICAgNDYsICAgNDcsIAorICAgICAgNDgsICAgNDksICAgNTAsICAgNTEsICAgNTIsICAgNTMsICAgNTQsICAgNTUsICAgNTYsICAgNTcsICAgNTgsICAgNTksICAgNjAsIAorICAgICAgNjEsICAgNjIsICAgNjMsICAgNjQsICAgNjUsICAgNjYsICAgNjcsICAgNjgsICAgNjksICAgNzAsICAgNzEsICAgNzIsICAgNzMsIAorICAgICAgNzQsICAgNzUsICAgNzcsICAgNzgsICAgNzksICAgODAsICAgODEsICAgODIsICAgODMsICAgODQsICAgODYsICAgODcsICAgODgsIAorICAgICAgODksICAgOTAsICAgOTIsICAgOTMsICAgOTQsICAgOTUsICAgOTYsICAgOTgsICAgOTksICAxMDAsICAxMDEsICAxMDMsICAxMDQsIAorICAgICAxMDUsICAxMDYsICAxMDgsICAxMDksICAxMTAsICAxMTEsICAxMTMsICAxMTQsICAxMTUsICAxMTcsICAxMTgsICAxMTksICAxMjAsIAorICAgICAxMjIsICAxMjMsICAxMjQsICAxMjYsICAxMjcsICAxMjksICAxMzAsICAxMzEsICAxMzMsICAxMzQsICAxMzUsICAxMzcsICAxMzgsIAorICAgICAxMzksICAxNDEsICAxNDIsICAxNDQsICAxNDUsICAxNDYsICAxNDgsICAxNDksICAxNTEsICAxNTIsICAxNTMsICAxNTUsICAxNTYsIAorICAgICAxNTgsICAxNTksICAxNjEsICAxNjIsICAxNjQsICAxNjUsICAxNjYsICAxNjgsICAxNjksICAxNzEsICAxNzIsICAxNzQsICAxNzUsIAorICAgICAxNzcsICAxNzgsICAxODAsICAxODEsICAxODMsICAxODQsICAxODYsICAxODcsICAxODksICAxOTAsICAxOTIsICAxOTMsICAxOTUsIAorICAgICAxOTYsICAxOTgsICAxOTksICAyMDEsICAyMDIsICAyMDQsICAyMDUsICAyMDcsICAyMDgsICAyMTAsICAyMTEsICAyMTMsICAyMTQsIAorICAgICAyMTYsICAyMTcsICAyMTksICAyMjAsICAyMjIsICAyMjMsICAyMjUsICAyMjcsICAyMjgsICAyMzAsICAyMzEsICAyMzMsICAyMzQsIAorICAgICAyMzYsICAyMzcsICAyMzksICAyNDAsICAyNDIsICAyNDQsICAyNDUsICAyNDcsICAyNDgsICAyNTAKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXBwcy9jb2RlY3MvbGliZ21lL3o4MF9jcHUuaCBiL2FwcHMvY29kZWNzL2xpYmdtZS96ODBfY3B1LmgKaW5kZXggMTUxMTViNy4uMzQxMTE5YiAxMDA2NDQKLS0tIGEvYXBwcy9jb2RlY3MvbGliZ21lL3o4MF9jcHUuaAorKysgYi9hcHBzL2NvZGVjcy9saWJnbWUvejgwX2NwdS5oCkBAIC0xLDExNiArMSwxMTYgQEAKLS8vIFo4MCBDUFUgZW11bGF0b3INCi0NCi0vLyBHYW1lX011c2ljX0VtdSAwLjYtcHJlDQotI2lmbmRlZiBaODBfQ1BVX0gNCi0jZGVmaW5lIFo4MF9DUFVfSA0KLQ0KLSNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiDQotI2luY2x1ZGUgImJsYXJnZ19lbmRpYW4uaCINCi0NCi10eXBlZGVmIGludCBjcHVfdGltZV90Ow0KLXR5cGVkZWYgaW50IGFkZHJfdDsNCi0NCi1lbnVtIHsgcGFnZV9iaXRzID0gMTAgfTsNCi1lbnVtIHsgcGFnZV9zaXplID0gMSA8PCBwYWdlX2JpdHMgfTsNCi1lbnVtIHsgcGFnZV9jb3VudCA9IDB4MTAwMDAgLyBwYWdlX3NpemUgfTsNCi0NCi0vLyBDYW4gcmVhZCB0aGlzIGZhciBwYXN0IGVuZCBvZiBtZW1vcnkNCi1lbnVtIHsgY3B1X3BhZGRpbmcgPSAweDEwMCB9Ow0KLQ0KLS8vIENhbiByZWFkIHRoaXMgbWFueSBieXRlcyBwYXN0IGVuZCBvZiBhIHBhZ2UNCi1lbnVtIHsgcGFnZV9wYWRkaW5nID0gNCB9Ow0KLQ0KLSNpZmRlZiBCTEFSR0dfQklHX0VORElBTg0KLQlzdHJ1Y3QgcmVnc190IHsgYnl0ZSBiLGMsIGQsZSwgaCxsLCBmbGFncyxhOyB9Ow0KLSNlbHNlDQotCXN0cnVjdCByZWdzX3QgeyBieXRlIGMsYiwgZSxkLCBsLGgsIGEsZmxhZ3M7IH07DQotI2VuZGlmDQotLy8gQk9PU1RfU1RBVElDX0FTU0VSVCggc2l6ZW9mIChyZWdzX3QpID09IDggKTsNCi0JDQotc3RydWN0IHBhaXJzX3QgeyB1aW50MTZfdCBiYywgZGUsIGhsLCBmYTsgfTsNCi0JDQotLy8gUmVnaXN0ZXJzIGFyZSBub3QgdXBkYXRlZCB1bnRpbCBydW4oKSByZXR1cm5zDQotc3RydWN0IHJlZ2lzdGVyc190IHsNCi0JdWludDE2X3QgcGM7DQotCXVpbnQxNl90IHNwOw0KLQl1aW50MTZfdCBpeDsNCi0JdWludDE2X3QgaXk7DQotCXVuaW9uIHsNCi0JCXN0cnVjdCByZWdzX3QgYjsgLy8gIGIuYiwgYi5jLCBiLmQsIGIuZSwgYi5oLCBiLmwsIGIuZmxhZ3MsIGIuYQ0KLQkJc3RydWN0IHBhaXJzX3QgdzsgLy8gdy5iYywgdy5kZSwgdy5obC4gdy5mYQ0KLQl9Ow0KLQl1bmlvbiB7DQotCQlzdHJ1Y3QgcmVnc190IGI7DQotCQlzdHJ1Y3QgcGFpcnNfdCB3Ow0KLQl9IGFsdDsNCi0JYnl0ZSBpZmYxOw0KLQlieXRlIGlmZjI7DQotCWJ5dGUgcjsNCi0JYnl0ZSBpOw0KLQlieXRlIGltOw0KLX07DQotDQotc3RydWN0IGNwdV9zdGF0ZV90IHsNCi0JYnl0ZSBjb25zdCogcmVhZCAgW3BhZ2VfY291bnQgKyAxXTsNCi0JYnl0ZSAgICAgICogd3JpdGUgW3BhZ2VfY291bnQgKyAxXTsNCi0JY3B1X3RpbWVfdCBiYXNlOw0KLQljcHVfdGltZV90IHRpbWU7DQotfTsNCi0NCi1zdHJ1Y3QgWjgwX0NwdSB7DQotCWJ5dGUgc3pwYyBbMHgyMDBdOw0KLQljcHVfdGltZV90IGVuZF90aW1lXzsNCi0JDQotCXN0cnVjdCBjcHVfc3RhdGVfdCogY3B1X3N0YXRlOyAvLyBwb2ludHMgdG8gY3B1X3N0YXRlXyBvciBhIGxvY2FsIGNvcHkgd2l0aGluIHJ1bigpDQotCXN0cnVjdCBjcHVfc3RhdGVfdCBjcHVfc3RhdGVfOw0KLQ0KLQlzdHJ1Y3QgcmVnaXN0ZXJzX3QgcjsNCi19Ow0KLQ0KLXZvaWQgWjgwX2luaXQoIHN0cnVjdCBaODBfQ3B1KiB0aGlzICk7DQotDQotLy8gQ2xlYXJzIHJlZ2lzdGVycyBhbmQgbWFwcyBhbGwgcGFnZXMgdG8gdW5tYXBwZWQNCi12b2lkIFo4MF9yZXNldCggc3RydWN0IFo4MF9DcHUqIHRoaXMsIHZvaWQqIHVubWFwcGVkX3dyaXRlLCB2b2lkIGNvbnN0KiB1bm1hcHBlZF9yZWFkICk7DQotCQ0KLS8vIFRPRE86IHNwbGl0IG1hcHBpbmcgb3V0IG9mIENQVQ0KLQkNCi0vLyBNYXBzIG1lbW9yeS4gU3RhcnQgYW5kIHNpemUgbXVzdCBiZSBtdWx0aXBsZSBvZiBwYWdlX3NpemUuDQotdm9pZCBaODBfbWFwX21lbSggc3RydWN0IFo4MF9DcHUqIHRoaXMsIGFkZHJfdCBhZGRyLCBpbnQgc2l6ZSwgdm9pZCogd3JpdGUsIHZvaWQgY29uc3QqIHJlYWQgKTsNCi0JDQotLy8gVGltZSBvZiBiZWdpbm5pbmcgb2YgbmV4dCBpbnN0cnVjdGlvbg0KLXN0YXRpYyBpbmxpbmUgY3B1X3RpbWVfdCBaODBfdGltZSggc3RydWN0IFo4MF9DcHUqIHRoaXMgKSB7IHJldHVybiB0aGlzLT5jcHVfc3RhdGUtPnRpbWUgKyB0aGlzLT5jcHVfc3RhdGUtPmJhc2U7IH0NCi0JDQotLy8gQWx0ZXIgY3VycmVudCB0aW1lDQotc3RhdGljIGlubGluZSB2b2lkIFo4MF9zZXRfdGltZSggc3RydWN0IFo4MF9DcHUqIHRoaXMsIGNwdV90aW1lX3QgdCApIHsgdGhpcy0+Y3B1X3N0YXRlLT50aW1lID0gdCAtIHRoaXMtPmNwdV9zdGF0ZS0+YmFzZTsgfQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBaODBfYWRqdXN0X3RpbWUoIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBpbnQgZGVsdGEgKSB7IHRoaXMtPmNwdV9zdGF0ZS0+dGltZSArPSBkZWx0YTsgfQ0KLQ0KLSNpZmRlZiBCTEFSR0dfTk9OUE9SVEFCTEUNCi0JI2RlZmluZSBaODBfQ1BVX09GRlNFVCggYWRkciApIChhZGRyKQ0KLSNlbHNlDQotCSNkZWZpbmUgWjgwX0NQVV9PRkZTRVQoIGFkZHIgKSAoKGFkZHIpICYgKHBhZ2Vfc2l6ZSAtIDEpKQ0KLSNlbmRpZg0KLQ0KLS8vIE1hcHMgYWRkcmVzcyB0byBwb2ludGVyIHRvIHRoYXQgYnl0ZQ0KLXN0YXRpYyBpbmxpbmUgYnl0ZSogWjgwX3dyaXRlKCBzdHJ1Y3QgWjgwX0NwdSogdGhpcywgYWRkcl90IGFkZHIgKQ0KLXsNCi0JcmV0dXJuIHRoaXMtPmNwdV9zdGF0ZS0+d3JpdGUgWyh1bnNpZ25lZCkgYWRkciA+PiBwYWdlX2JpdHNdICsgWjgwX0NQVV9PRkZTRVQoIGFkZHIgKTsNCi19DQotDQotc3RhdGljIGlubGluZSBieXRlIGNvbnN0KiBaODBfcmVhZCggc3RydWN0IFo4MF9DcHUqIHRoaXMsIGFkZHJfdCBhZGRyICkNCi17DQotCXJldHVybiB0aGlzLT5jcHVfc3RhdGUtPnJlYWQgWyh1bnNpZ25lZCkgYWRkciA+PiBwYWdlX2JpdHNdICsgWjgwX0NQVV9PRkZTRVQoIGFkZHIgKTsNCi19DQotDQotc3RhdGljIGlubGluZSB2b2lkIFo4MF9tYXBfbWVtX3J3KCBzdHJ1Y3QgWjgwX0NwdSogdGhpcywgYWRkcl90IGFkZHIsIGludCBzaXplLCB2b2lkKiBwICkNCi17DQotCVo4MF9tYXBfbWVtKCB0aGlzLCBhZGRyLCBzaXplLCBwLCBwICk7DQotfQ0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBaODBfc2V0X2VuZF90aW1lKCBzdHJ1Y3QgWjgwX0NwdSogdGhpcywgY3B1X3RpbWVfdCB0ICkNCi17DQotCWNwdV90aW1lX3QgZGVsdGEgPSB0aGlzLT5jcHVfc3RhdGUtPmJhc2UgLSB0Ow0KLQl0aGlzLT5jcHVfc3RhdGUtPmJhc2UgPSB0Ow0KLQl0aGlzLT5jcHVfc3RhdGUtPnRpbWUgKz0gZGVsdGE7DQotfQ0KLQ0KLSNlbmRpZg0KKy8vIFo4MCBDUFUgZW11bGF0b3IKKworLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZQorI2lmbmRlZiBaODBfQ1BVX0gKKyNkZWZpbmUgWjgwX0NQVV9ICisKKyNpbmNsdWRlICJibGFyZ2dfc291cmNlLmgiCisjaW5jbHVkZSAiYmxhcmdnX2VuZGlhbi5oIgorCit0eXBlZGVmIGludCBjcHVfdGltZV90OwordHlwZWRlZiBpbnQgYWRkcl90OworCitlbnVtIHsgcGFnZV9iaXRzID0gMTAgfTsKK2VudW0geyBwYWdlX3NpemUgPSAxIDw8IHBhZ2VfYml0cyB9OworZW51bSB7IHBhZ2VfY291bnQgPSAweDEwMDAwIC8gcGFnZV9zaXplIH07CisKKy8vIENhbiByZWFkIHRoaXMgZmFyIHBhc3QgZW5kIG9mIG1lbW9yeQorZW51bSB7IGNwdV9wYWRkaW5nID0gMHgxMDAgfTsKKworLy8gQ2FuIHJlYWQgdGhpcyBtYW55IGJ5dGVzIHBhc3QgZW5kIG9mIGEgcGFnZQorZW51bSB7IHBhZ2VfcGFkZGluZyA9IDQgfTsKKworI2lmZGVmIEJMQVJHR19CSUdfRU5ESUFOCisJc3RydWN0IHJlZ3NfdCB7IGJ5dGUgYixjLCBkLGUsIGgsbCwgZmxhZ3MsYTsgfTsKKyNlbHNlCisJc3RydWN0IHJlZ3NfdCB7IGJ5dGUgYyxiLCBlLGQsIGwsaCwgYSxmbGFnczsgfTsKKyNlbmRpZgorLy8gQk9PU1RfU1RBVElDX0FTU0VSVCggc2l6ZW9mIChyZWdzX3QpID09IDggKTsKKwkKK3N0cnVjdCBwYWlyc190IHsgdWludDE2X3QgYmMsIGRlLCBobCwgZmE7IH07CisJCisvLyBSZWdpc3RlcnMgYXJlIG5vdCB1cGRhdGVkIHVudGlsIHJ1bigpIHJldHVybnMKK3N0cnVjdCByZWdpc3RlcnNfdCB7CisJdWludDE2X3QgcGM7CisJdWludDE2X3Qgc3A7CisJdWludDE2X3QgaXg7CisJdWludDE2X3QgaXk7CisJdW5pb24geworCQlzdHJ1Y3QgcmVnc190IGI7IC8vICBiLmIsIGIuYywgYi5kLCBiLmUsIGIuaCwgYi5sLCBiLmZsYWdzLCBiLmEKKwkJc3RydWN0IHBhaXJzX3QgdzsgLy8gdy5iYywgdy5kZSwgdy5obC4gdy5mYQorCX07CisJdW5pb24geworCQlzdHJ1Y3QgcmVnc190IGI7CisJCXN0cnVjdCBwYWlyc190IHc7CisJfSBhbHQ7CisJYnl0ZSBpZmYxOworCWJ5dGUgaWZmMjsKKwlieXRlIHI7CisJYnl0ZSBpOworCWJ5dGUgaW07Cit9OworCitzdHJ1Y3QgY3B1X3N0YXRlX3QgeworCWJ5dGUgY29uc3QqIHJlYWQgIFtwYWdlX2NvdW50ICsgMV07CisJYnl0ZSAgICAgICogd3JpdGUgW3BhZ2VfY291bnQgKyAxXTsKKwljcHVfdGltZV90IGJhc2U7CisJY3B1X3RpbWVfdCB0aW1lOworfTsKKworc3RydWN0IFo4MF9DcHUgeworCWJ5dGUgc3pwYyBbMHgyMDBdOworCWNwdV90aW1lX3QgZW5kX3RpbWVfOworCQorCXN0cnVjdCBjcHVfc3RhdGVfdCogY3B1X3N0YXRlOyAvLyBwb2ludHMgdG8gY3B1X3N0YXRlXyBvciBhIGxvY2FsIGNvcHkgd2l0aGluIHJ1bigpCisJc3RydWN0IGNwdV9zdGF0ZV90IGNwdV9zdGF0ZV87CisKKwlzdHJ1Y3QgcmVnaXN0ZXJzX3QgcjsKK307CisKK3ZvaWQgWjgwX2luaXQoIHN0cnVjdCBaODBfQ3B1KiB0aGlzICk7CisKKy8vIENsZWFycyByZWdpc3RlcnMgYW5kIG1hcHMgYWxsIHBhZ2VzIHRvIHVubWFwcGVkCit2b2lkIFo4MF9yZXNldCggc3RydWN0IFo4MF9DcHUqIHRoaXMsIHZvaWQqIHVubWFwcGVkX3dyaXRlLCB2b2lkIGNvbnN0KiB1bm1hcHBlZF9yZWFkICk7CisJCisvLyBUT0RPOiBzcGxpdCBtYXBwaW5nIG91dCBvZiBDUFUKKwkKKy8vIE1hcHMgbWVtb3J5LiBTdGFydCBhbmQgc2l6ZSBtdXN0IGJlIG11bHRpcGxlIG9mIHBhZ2Vfc2l6ZS4KK3ZvaWQgWjgwX21hcF9tZW0oIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBhZGRyX3QgYWRkciwgaW50IHNpemUsIHZvaWQqIHdyaXRlLCB2b2lkIGNvbnN0KiByZWFkICk7CisJCisvLyBUaW1lIG9mIGJlZ2lubmluZyBvZiBuZXh0IGluc3RydWN0aW9uCitzdGF0aWMgaW5saW5lIGNwdV90aW1lX3QgWjgwX3RpbWUoIHN0cnVjdCBaODBfQ3B1KiB0aGlzICkgeyByZXR1cm4gdGhpcy0+Y3B1X3N0YXRlLT50aW1lICsgdGhpcy0+Y3B1X3N0YXRlLT5iYXNlOyB9CisJCisvLyBBbHRlciBjdXJyZW50IHRpbWUKK3N0YXRpYyBpbmxpbmUgdm9pZCBaODBfc2V0X3RpbWUoIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBjcHVfdGltZV90IHQgKSB7IHRoaXMtPmNwdV9zdGF0ZS0+dGltZSA9IHQgLSB0aGlzLT5jcHVfc3RhdGUtPmJhc2U7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBaODBfYWRqdXN0X3RpbWUoIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBpbnQgZGVsdGEgKSB7IHRoaXMtPmNwdV9zdGF0ZS0+dGltZSArPSBkZWx0YTsgfQorCisjaWZkZWYgQkxBUkdHX05PTlBPUlRBQkxFCisJI2RlZmluZSBaODBfQ1BVX09GRlNFVCggYWRkciApIChhZGRyKQorI2Vsc2UKKwkjZGVmaW5lIFo4MF9DUFVfT0ZGU0VUKCBhZGRyICkgKChhZGRyKSAmIChwYWdlX3NpemUgLSAxKSkKKyNlbmRpZgorCisvLyBNYXBzIGFkZHJlc3MgdG8gcG9pbnRlciB0byB0aGF0IGJ5dGUKK3N0YXRpYyBpbmxpbmUgYnl0ZSogWjgwX3dyaXRlKCBzdHJ1Y3QgWjgwX0NwdSogdGhpcywgYWRkcl90IGFkZHIgKQoreworCXJldHVybiB0aGlzLT5jcHVfc3RhdGUtPndyaXRlIFsodW5zaWduZWQpIGFkZHIgPj4gcGFnZV9iaXRzXSArIFo4MF9DUFVfT0ZGU0VUKCBhZGRyICk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYnl0ZSBjb25zdCogWjgwX3JlYWQoIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBhZGRyX3QgYWRkciApCit7CisJcmV0dXJuIHRoaXMtPmNwdV9zdGF0ZS0+cmVhZCBbKHVuc2lnbmVkKSBhZGRyID4+IHBhZ2VfYml0c10gKyBaODBfQ1BVX09GRlNFVCggYWRkciApOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgWjgwX21hcF9tZW1fcncoIHN0cnVjdCBaODBfQ3B1KiB0aGlzLCBhZGRyX3QgYWRkciwgaW50IHNpemUsIHZvaWQqIHAgKQoreworCVo4MF9tYXBfbWVtKCB0aGlzLCBhZGRyLCBzaXplLCBwLCBwICk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBaODBfc2V0X2VuZF90aW1lKCBzdHJ1Y3QgWjgwX0NwdSogdGhpcywgY3B1X3RpbWVfdCB0ICkKK3sKKwljcHVfdGltZV90IGRlbHRhID0gdGhpcy0+Y3B1X3N0YXRlLT5iYXNlIC0gdDsKKwl0aGlzLT5jcHVfc3RhdGUtPmJhc2UgPSB0OworCXRoaXMtPmNwdV9zdGF0ZS0+dGltZSArPSBkZWx0YTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcHBzL2NvZGVjcy9saWJnbWUvejgwX2NwdV9ydW4uaCBiL2FwcHMvY29kZWNzL2xpYmdtZS96ODBfY3B1X3J1bi5oCmluZGV4IDE4MTk1YWMuLmE0NTM0ODcgMTAwNjQ0Ci0tLSBhL2FwcHMvY29kZWNzL2xpYmdtZS96ODBfY3B1X3J1bi5oCisrKyBiL2FwcHMvY29kZWNzL2xpYmdtZS96ODBfY3B1X3J1bi5oCkBAIC0xLDE2OTYgKzEsMTY5NiBAQAotLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8NCi0NCi0vLyBMYXN0IHZhbGlkYXRlZCB3aXRoIHpleGFsbCAyMDA5LjEyLjA1Lg0KLS8vIERvZXNuJ3QgaW1wbGVtZW50IHRoZSBSIHJlZ2lzdGVyIG9yIGltbWVkaWF0ZSBpbnRlcnJ1cHQgYWZ0ZXIgRUkuDQotLy8gQWRkcmVzcyB3cmFwLWFyb3VuZCBpc24ndCBjb21wbGV0ZWx5IGNvcnJlY3QsIGJ1dCBpcyBwcmV2ZW50ZWQgZnJvbSBjcmFzaGluZyBlbXVsYXRvci4NCi0vLyAxNi1iaXQgbWVtb3J5IGFjY2Vzc2VzIGFyZSBtYWRlIGRpcmVjdGx5IHRvIG1hcHBlZCBtZW1vcnksIGluc3RlYWQgb2YgdXNpbmcgbWFjcm8uDQotDQotI2lmIDANCi0vKiBEZWZpbmUgdGhlc2UgbWFjcm9zIGluIHRoZSBzb3VyY2UgZmlsZSBiZWZvcmUgI2luY2x1ZGluZyB0aGlzIGZpbGUuDQotLSBQYXJhbWV0ZXJzIG1pZ2h0IGJlIGV4cHJlc3Npb25zLCBzbyB0aGV5IGFyZSBiZXN0IGV2YWx1YXRlZCBvbmx5IG9uY2UsDQotdGhvdWdoIHRoZXkgTkVWRVIgaGF2ZSBzaWRlLWVmZmVjdHMsIHNvIG11bHRpcGxlIGV2YWx1YXRpb24gaXMgT0suDQotLSBPdXRwdXQgcGFyYW1ldGVycyBtaWdodCBiZSBhIG11bHRpcGxlLWFzc2lnbm1lbnQgZXhwcmVzc2lvbiBsaWtlICJhPXgiLA0KLXNvIHRoZXkgbXVzdCBOT1QgYmUgcGFyZW50aGVzaXplZC4NCi0tIEV4Y2VwdCB3aGVyZSBub3RlZCwgdGltZSgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB3aWxsIE5PVCB3b3JrDQotY29ycmVjdGx5IGluc2lkZSBhIG1hY3JvLiBUSU1FKCkgaXMgYWx3YXlzIGNvcnJlY3QsIGFuZCBiZXR3ZWVuIEZMVVNIX1RJTUUoKSBhbmQNCi1DQUNIRV9USU1FKCkgdGhlIG5vcm1hbCB0aW1lIGNoYW5naW5nIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZC4NCi0tIE1hY3JvcyAicmV0dXJuaW5nIiB2b2lkIG1heSB1c2UgYSB7fSBzdGF0ZW1lbnQgYmxvY2suICovDQotDQotCS8vIDAgPD0gYWRkciA8PSAweEZGRkYgKyAweDEwMA0KLQkvLyBPcHRpb25hbDsgZGVmYXVsdCB1c2VzIHdoYXRldmVyIHdhcyBzZXQgd2l0aCBtYXBfbWVtKCkNCi0JaW50ICBSRUFEX01FTSggIGFkZHJfdCApOw0KLQl2b2lkIFdSSVRFX01FTSggYWRkcl90LCBpbnQgZGF0YSApOw0KLQkNCi0JLy8gMCA8PSBwb3J0IDw9IDB4RkZGRiAoYXBwYXJlbnRseSB1cHBlciA4IGJpdHMgYXJlIG91dHB1dCBieSBoYXJkd2FyZSkNCi0Jdm9pZCBPVVRfUE9SVCggaW50IHBvcnQsIGludCBkYXRhICk7DQotCWludCAgSU5fUE9SVCAgIGludCBwb3J0ICk7DQotCQ0KLQkvLyBSZWZlcmVuY2UgdG8gWjgwX0NwdSBvYmplY3QgdXNlZCBmb3IgZW11bGF0aW9uDQotCSNkZWZpbmUgQ1BVIGNwdQ0KLQkNCi0vLyBUaGUgZm9sbG93aW5nIGNhbiBiZSB1c2VkIHdpdGhpbiBtYWNyb3M6DQotCQ0KLQkvLyBDdXJyZW50IHRpbWUNCi0JdGltZV90IFRJTUUoKTsNCi0JDQotCS8vIEFsbG93cyB1c2Ugb2YgdGltZSBmdW5jdGlvbnMNCi0Jdm9pZCBGTFVTSF9USU1FKCk7DQotCQ0KLQkvLyBNdXN0IGJlIHVzZWQgYmVmb3JlIGVuZCBvZiBtYWNybyBpZiBGTFVTSF9USU1FKCkgd2FzIHVzZWQgZWFybGllcg0KLQl2b2lkIENBQ0hFX1RJTUUoKTsNCi0NCi0vLyBDb25maWd1cmF0aW9uIChvcHRpb25hbDsgY29tbWVudGVkIGJlaGF2aW9yIGlmIGRlZmluZWQpDQotCQ0KLQkvLyBPcHRpbWl6ZXMgYXMgaWYgbWFwX21lbSggMCwgMHgxMDAwMCwgRkxBVF9NRU0sIEZMQVRfTUVNICkgaXMgYWx3YXlzIGluIGVmZmVjdA0KLQkjZGVmaW5lIEZMQVRfTUVNIG15X21lbV9hcnJheQ0KLQkNCi0JLy8gSWYgUlNUIDcgKCRGRikgaXMgZW5jb3VudGVyZWQgYW5kIFBDID0gSURMRV9BRERSLCBzdG9wcyBleGVjdXRpb24NCi0JI2RlZmluZSBJRExFX0FERFIgMHgxMjM0DQotCQ0KLQkvLyBFeHBhbmRlZCBqdXN0IGJlZm9yZSBiZWdpbm5pbmcgb2YgY29kZSwgdG8gaGVscCBkZWJ1Z2dlcg0KLQkjZGVmaW5lIENQVV9CRUdJTiB2b2lkIG15X3J1bl9jcHUoKSB7DQotCQ0KLSNlbmRpZg0KLQ0KLS8qIENvcHlyaWdodCAoQykgMjAwNi0yMDA4IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQ0KLWNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXINCi1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCi12ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcw0KLW1vZHVsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkNCi1XQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTDQotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQ0KLWRldGFpbHMuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCi1MaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtb2R1bGU7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwNCi1JbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovDQotDQotI2lmZGVmIENQVV9CRUdJTg0KLQlDUFVfQkVHSU4NCi0jZW5kaWYNCi0NCi0jZGVmaW5lIFIgY3B1LT5yDQotDQotLy8gZmxhZ3MsIG5hbWVkIHdpdGggaGV4IHZhbHVlIGZvciBjbGFyaXR5DQotaW50IGNvbnN0IFM4MCA9IDB4ODA7DQotaW50IGNvbnN0IFo0MCA9IDB4NDA7DQotaW50IGNvbnN0IEYyMCA9IDB4MjA7DQotaW50IGNvbnN0IEgxMCA9IDB4MTA7DQotaW50IGNvbnN0IEYwOCA9IDB4MDg7DQotaW50IGNvbnN0IFYwNCA9IDB4MDQ7DQotaW50IGNvbnN0IFAwNCA9IDB4MDQ7DQotaW50IGNvbnN0IE4wMiA9IDB4MDI7DQotaW50IGNvbnN0IEMwMSA9IDB4MDE7DQotDQotI2RlZmluZSBTWjI4UCggbiApICBjcHUtPnN6cGMgW25dDQotI2RlZmluZSBTWjI4UEMoIG4gKSBjcHUtPnN6cGMgW25dDQotI2RlZmluZSBTWjI4QyggbiApICAoY3B1LT5zenBjIFtuXSAmIH5QMDQpDQotI2RlZmluZSBTWjI4KCBuICkgICBTWjI4QyggbiApDQotDQotI2RlZmluZSBTRVRfUiggbiApICAodm9pZCkgKFIuciA9IG4pDQotI2RlZmluZSBHRVRfUigpICAgICAoUi5yKQ0KLQ0KLS8vIFRpbWUNCi0jZGVmaW5lIFRJTUUoKSAgICAgICAgICAoc190aW1lICsgcy5iYXNlKQ0KLSNkZWZpbmUgRkxVU0hfVElNRSgpICAgIHtzLnRpbWUgPSBzX3RpbWU7fQ0KLSNkZWZpbmUgQ0FDSEVfVElNRSgpICAgIHtzX3RpbWUgPSBzLnRpbWU7fQ0KLQ0KLS8vIE1lbW9yeQ0KLSNkZWZpbmUgUldfTUVNKCBhZGRyLCBydyApICAgICAgICAgIFJXX1BBR0UoIGFkZHIsIHJ3ICkgW1JXX09GRlNFVCggYWRkciApXQ0KLSNkZWZpbmUgUkVBRF9DT0RFKCBhZGRyICkgICAgICAgICAgIFJXX01FTSggYWRkciwgcmVhZCApDQotDQotI2lmZGVmIEZMQVRfTUVNDQotCSNkZWZpbmUgUldfUEFHRSggYWRkciwgcncgKSAgICAgRkxBVF9NRU0NCi0JI2RlZmluZSBSV19PRkZTRVQoIGFkZHIgKSAgICAgICAoYWRkcikNCi0JI2RlZmluZSBJTlNUUiggb2ZmLCBhZGRyICkgICAgICBSRUFEX0NPREUoIGFkZHIgKQ0KLSNlbHNlDQotCSNkZWZpbmUgUldfUEFHRSggYWRkciwgcncgKSAgICAgcy5ydyBbKHVuc2lnbmVkKSAoYWRkcikgPj4gcGFnZV9iaXRzXQ0KLQkjZGVmaW5lIFJXX09GRlNFVCggYWRkciApICAgICAgIFo4MF9DUFVfT0ZGU0VUKCBhZGRyICkNCi0JI2RlZmluZSBJTlNUUiggb2ZmLCBhZGRyICkgICAgICBpbnN0ciBbb2ZmXQ0KLSNlbmRpZg0KLQ0KLSNpZm5kZWYgUkVBRF9NRU0NCi0JI2RlZmluZSBSRUFEX01FTSggYWRkciApICAgICAgICBSV19NRU0oIGFkZHIsIHJlYWQgKQ0KLSNlbmRpZg0KLQkNCi0jaWZuZGVmIFdSSVRFX01FTQ0KLQkjZGVmaW5lIFdSSVRFX01FTSggYWRkciwgZGF0YSApIChSV19NRU0oIGFkZHIsIHdyaXRlICkgPSBkYXRhKQ0KLSNlbmRpZg0KLQ0KLSNkZWZpbmUgUkVBRF9XT1JEKCBhZGRyICkgICAgICAgICAgIEdFVF9MRTE2KCAmUldfTUVNKCBhZGRyLCByZWFkICkgKQ0KLSNkZWZpbmUgV1JJVEVfV09SRCggYWRkciwgZGF0YSApICAgIFNFVF9MRTE2KCAmUldfTUVNKCBhZGRyLCB3cml0ZSApLCBkYXRhICkNCi0NCi0vLyBUcnVuY2F0aW9uDQotI2RlZmluZSBCWVRFKCAgbiApICgodWludDhfdCApIChuKSkgLyogKHVuc2lnbmVkKSBuICYgMHhGRiAqLw0KLSNkZWZpbmUgU0JZVEUoIG4gKSAoKGludDhfdCAgKSAobikpIC8qIChCWVRFKCBuICkgXiAweDgwKSAtIDB4ODAgKi8NCi0jZGVmaW5lIFdPUkQoICBuICkgKCh1aW50MTZfdCkgKG4pKSAvKiAodW5zaWduZWQpIG4gJiAweEZGRkYgKi8NCi0NCi0vLyBNaXNjDQotI2RlZmluZSBDQVNFNSggYSwgYiwgYywgZCwgZSAgICAgICAgICApIGNhc2UgMHgjI2E6Y2FzZSAweCMjYjpjYXNlIDB4IyNjOmNhc2UgMHgjI2Q6Y2FzZSAweCMjZQ0KLSNkZWZpbmUgQ0FTRTYoIGEsIGIsIGMsIGQsIGUsIGYgICAgICAgKSBDQVNFNSggYSwgYiwgYywgZCwgZSAgICAgICApOiBjYXNlIDB4IyNmDQotI2RlZmluZSBDQVNFNyggYSwgYiwgYywgZCwgZSwgZiwgZyAgICApIENBU0U2KCBhLCBiLCBjLCBkLCBlLCBmICAgICk6IGNhc2UgMHgjI2cNCi0jZGVmaW5lIENBU0U4KCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoICkgQ0FTRTcoIGEsIGIsIGMsIGQsIGUsIGYsIGcgKTogY2FzZSAweCMjaA0KLQ0KLSNpZmRlZiBCTEFSR0dfQklHX0VORElBTg0KLQkjZGVmaW5lIFI4KCBuLCBvZmZzZXQgKSAoKHIucjhfIC0gb2Zmc2V0KSBbbl0pIA0KLSNlbGlmIEJMQVJHR19MSVRUTEVfRU5ESUFODQotCSNkZWZpbmUgUjgoIG4sIG9mZnNldCApICgoci5yOF8gLSBvZmZzZXQpIFsobikgXiAxXSkgDQotI2Vsc2UNCi0JI2Vycm9yICJCeXRlIG9yZGVyIG9mIENQVSBtdXN0IGJlIGtub3duIg0KLSNlbmRpZg0KLQ0KLSNkZWZpbmUgUjE2KCBuLCBzaGlmdCwgb2Zmc2V0ICkgKHIucjE2XyBbKCh1bnNpZ25lZCkgKG4pID4+IHNoaWZ0KSAtIChvZmZzZXQgPj4gc2hpZnQpXSkNCi0NCi0jZGVmaW5lIEVYKCB4LCB5ICkgXA0KLQl7XA0KLQkJaW50IHRlbXAgPSB4O1wNCi0JCXggPSB5O1wNCi0JCXkgPSB0ZW1wO1wNCi0JfQ0KLQkJDQotI2RlZmluZSBFWFgoIG5hbWUgKSBcDQotCUVYKCBSLmFsdC5uYW1lLCByLm5hbWUgKQ0KLQkJDQotYm9vbCB3YXJuaW5nID0gZmFsc2U7DQotew0KLQlzdHJ1Y3QgY3B1X3N0YXRlX3QgczsNCi0JI2lmZGVmIEZMQVRfTUVNDQotCQlzLmJhc2UgPSBjcHUtPmNwdV9zdGF0ZV8uYmFzZTsNCi0JI2Vsc2UNCi0JCXMgPSBjcHUtPmNwdV9zdGF0ZV87DQotCSNlbmRpZg0KLQljcHUtPmNwdV9zdGF0ZSA9ICZzOw0KLQkNCi0JDQotCXVuaW9uIHJfdCB7DQotCQlzdHJ1Y3QgcmVnc190IGI7DQotCQlzdHJ1Y3QgcGFpcnNfdCB3Ow0KLQkJYnl0ZSByOF8gWzhdOyAvLyBpbmRleGVkDQotCQl1aW50MTZfdCByMTZfIFs0XTsNCi0JfSByOw0KLQlyLmIgPSBSLmI7DQotCQ0KLQljcHVfdGltZV90IHNfdGltZSA9IGNwdS0+Y3B1X3N0YXRlXy50aW1lOw0KLQlpbnQgcGMgPSBSLnBjOw0KLQlpbnQgc3AgPSBSLnNwOw0KLQlpbnQgaXggPSBSLml4OyAvLyBUT0RPOiBrZWVwIGluIG1lbW9yeSBmb3IgZGlyZWN0IGFjY2Vzcz8NCi0JaW50IGl5ID0gUi5peTsNCi0JaW50IGZsYWdzID0gUi5iLmZsYWdzOw0KLQkNCi0JLy9nb3RvIGxvb3A7IC8vIGNvbmZ1c2VzIG9wdGltaXplcg0KLQlzX3RpbWUgKz0gNzsNCi0JcGMgLT0gMjsNCi0JDQotY2FsbF9ub3RfdGFrZW46DQotCXNfdGltZSAtPSA3OyANCi1qcF9ub3RfdGFrZW46DQotCXBjICs9IDI7DQotbG9vcDoNCi0JDQotCWNoZWNrKCAodW5zaWduZWQpIHBjIDwgMHgxMDAwMCArIDEgKTsgLy8gKzEgc28gZW11bGF0b3IgY2FuIGNhdGNoIHdyYXAtYXJvdW5kDQotCWNoZWNrKCAodW5zaWduZWQpIHNwIDwgMHgxMDAwMCApOw0KLQljaGVjayggKHVuc2lnbmVkKSBmbGFncyA8IDB4MTAwICk7DQotCWNoZWNrKCAodW5zaWduZWQpIGl4IDwgMHgxMDAwMCApOw0KLQljaGVjayggKHVuc2lnbmVkKSBpeSA8IDB4MTAwMDAgKTsNCi0JDQotCWJ5dGUgY29uc3QqIGluc3RyID0gUldfUEFHRSggcGMsIHJlYWQgKTsNCi0JDQotCWludCBvcGNvZGU7DQotCQ0KLQlpZiAoIFJXX09GRlNFVCggfjAgKSA9PSB+MCApDQotCXsNCi0JCW9wY29kZSA9IGluc3RyIFtSV19PRkZTRVQoIHBjICldOw0KLQkJcGMrKzsNCi0JCWluc3RyICs9IFJXX09GRlNFVCggcGMgKTsNCi0JfQ0KLQllbHNlDQotCXsNCi0JCWluc3RyICs9IFJXX09GRlNFVCggcGMgKTsNCi0JCW9wY29kZSA9ICppbnN0cisrOw0KLQkJcGMrKzsNCi0JfQ0KLQkNCi0Jc3RhdGljIGJ5dGUgY29uc3QgY2xvY2tfdGFibGUgWzI1NiAqIDJdID0gew0KLQkvLyAgIDAgIDEgIDIgIDMgIDQgIDUgIDYgIDcgIDggIDkgIEEgIEIgIEMgIEQgIEUgIEYNCi0JCSA0LDEwLCA3LCA2LCA0LCA0LCA3LCA0LCA0LDExLCA3LCA2LCA0LCA0LCA3LCA0LCAvLyAwDQotCQkgOCwxMCwgNywgNiwgNCwgNCwgNywgNCwxMiwxMSwgNywgNiwgNCwgNCwgNywgNCwgLy8gMQ0KLQkJIDcsMTAsMTYsIDYsIDQsIDQsIDcsIDQsIDcsMTEsMTYsIDYsIDQsIDQsIDcsIDQsIC8vIDINCi0JCSA3LDEwLDEzLCA2LDExLDExLDEwLCA0LCA3LDExLDEzLCA2LCA0LCA0LCA3LCA0LCAvLyAzDQotCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNA0KLQkJIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIC8vIDUNCi0JCSA0LCA0LCA0LCA0LCA0LCA0LCA3LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA3LCA0LCAvLyA2DQotCQkgNywgNywgNywgNywgNywgNywgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNw0KLQkJIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIC8vIDgNCi0JCSA0LCA0LCA0LCA0LCA0LCA0LCA3LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA3LCA0LCAvLyA5DQotCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gQQ0KLQkJIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDcsIDQsIC8vIEINCi0JCTExLDEwLDEwLDEwLDE3LDExLCA3LDExLDExLDEwLDEwLCA4LDE3LDE3LCA3LDExLCAvLyBDDQotCQkxMSwxMCwxMCwxMSwxNywxMSwgNywxMSwxMSwgNCwxMCwxMSwxNywgOCwgNywxMSwgLy8gRA0KLQkJMTEsMTAsMTAsMTksMTcsMTEsIDcsMTEsMTEsIDQsMTAsIDQsMTcsIDgsIDcsMTEsIC8vIEUNCi0JCTExLDEwLDEwLCA0LDE3LDExLCA3LDExLDExLCA2LDEwLCA0LDE3LCA4LCA3LDExLCAvLyBGDQotCQkNCi0JCS8vIGhpZ2ggZm91ciBiaXRzIGFyZSAkRUQgdGltZSAtIDgsIGxvdyBmb3VyIGJpdHMgYXJlICRERC8kRkQgdGltZSAtIDgNCi0JCS8vMCAgICAxICAgIDIgICAgMyAgICA0ICAgIDUgICAgNiAgICA3ICAgIDggICAgOSAgICBBICAgIEIgICAgQyAgICBEICAgIEUgICAgRg0KLQkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0JCTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotCQkweDAwLDB4MDYsMHgwQywweDAyLDB4MDAsMHgwMCwweDAzLDB4MDAsMHgwMCwweDA3LDB4MEMsMHgwMiwweDAwLDB4MDAsMHgwMywweDAwLA0KLQkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDBGLDB4MEYsMHgwQiwweDAwLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0JCTB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHgxMCwweDQwLDB4NDAsMHg3MCwweEMwLDB4MDAsMHg2MCwweDBCLDB4MTAsDQotCQkweDQwLDB4NDAsMHg3MCwweEMwLDB4MDAsMHg2MCwweDBCLDB4MTAsMHg0MCwweDQwLDB4NzAsMHhDMCwweDAwLDB4NjAsMHgwQiwweDEwLA0KLQkJMHg0MCwweDQwLDB4NzAsMHhDMCwweDAwLDB4NjAsMHgwQiwweEEwLDB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHhBMCwNCi0JCTB4NEIsMHg0QiwweDdCLDB4Q0IsMHgwQiwweDZCLDB4MDAsMHgwQiwweDQwLDB4NDAsMHg3MCwweEMwLDB4MDAsMHg2MCwweDBCLDB4MDAsDQotCQkweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBCLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwQiwweDAwLA0KLQkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwQiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MEIsMHgwMCwNCi0JCTB4ODAsMHg4MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MEIsMHgwMCwweDgwLDB4ODAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDBCLDB4MDAsDQotCQkweEQwLDB4RDAsMHhEMCwweEQwLDB4MDAsMHgwMCwweDBCLDB4MDAsMHhEMCwweEQwLDB4RDAsMHhEMCwweDAwLDB4MDAsMHgwQiwweDAwLA0KLQkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MEYsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0JCTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsDQotCQkweDAwLDB4MDYsMHgwMCwweDBGLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLA0KLQkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwNCi0JfTsNCi0JDQotCWlmICggc190aW1lID49IDAgKQ0KLQkJZ290byBvdXRfb2ZfdGltZTsNCi0Jc190aW1lICs9IGNsb2NrX3RhYmxlIFtvcGNvZGVdOw0KLQkNCi0JI2lmZGVmIFo4MF9DUFVfTE9HX0gNCi0JCS8vbG9nX29wY29kZSggb3Bjb2RlLCBSRUFEX0NPREUoIHBjICkgKTsNCi0JCXo4MF9jcHVfbG9nKCAibG9nLnR4dCIsIHBjIC0gMSwgb3Bjb2RlLCBSRUFEX0NPREUoIHBjICksDQotCQkJCVJFQURfQ09ERSggcGMgKyAxICksIFJFQURfQ09ERSggcGMgKyAyICkgKTsNCi0JCXo4MF9sb2dfcmVncyggci5iLmEsIHIudy5iYywgci53LmRlLCByLncuaGwsIHNwLCBpeCwgaXkgKTsNCi0JI2VuZGlmDQotCQ0KLSNkZWZpbmUgR0VUX0FERFIoKSAgR0VUX0xFMTYoICZJTlNUUiggMCwgcGMgKSApDQotDQotCWludCBkYXRhOw0KLQlkYXRhID0gSU5TVFIoIDAsIHBjICk7DQotCQ0KLQlzd2l0Y2ggKCBvcGNvZGUgKQ0KLQl7DQotLy8gQ29tbW9uDQotDQotCWNhc2UgMHgwMDogLy8gTk9QDQotCUNBU0U3KCA0MCwgNDksIDUyLCA1QiwgNjQsIDZELCA3RiApOiAvLyBMRCBCLEIgZXRjLg0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDA4OnsvLyBFWCBBRixBRicNCi0JCUVYWCggYi5hICk7DQotCQlFWCggUi5hbHQuYi5mbGFncywgZmxhZ3MgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweEQzOiAvLyBPVVQgKGltbSksQQ0KLQkJcGMrKzsNCi0JCU9VVF9QT1JUKCAoZGF0YSArIHIuYi5hICogMHgxMDApLCByLmIuYSApOw0KLQkJZ290byBsb29wOw0KLQkJDQotCWNhc2UgMHgyRTogLy8gTEQgTCxpbW0NCi0JCXBjKys7DQotCQlyLmIubCA9IGRhdGE7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4M0U6IC8vIExEIEEsaW1tDQotCQlwYysrOw0KLQkJci5iLmEgPSBkYXRhOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDNBOnsvLyBMRCBBLChhZGRyKQ0KLQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJcGMgKz0gMjsNCi0JCXIuYi5hID0gUkVBRF9NRU0oIGFkZHIgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0vLyBDb25kaXRpb25hbA0KLQ0KLSNkZWZpbmUgWkVSTyAgICAoZmxhZ3MgJiBaNDApDQotI2RlZmluZSBDQVJSWSAgIChmbGFncyAmIEMwMSkNCi0jZGVmaW5lIEVWRU4gICAgKGZsYWdzICYgUDA0KQ0KLSNkZWZpbmUgTUlOVVMgICAoZmxhZ3MgJiBTODApDQotDQotLy8gSlINCi0vLyBUT0RPOiBtb3JlIGVmZmljaWVudCB3YXkgdG8gaGFuZGxlIG5lZ2F0aXZlIGJyYW5jaCB0aGF0IHdyYXBzIFBDIGFyb3VuZA0KLSNkZWZpbmUgSlJfKCBjb25kLCBjbG9ja3MgKSB7XA0KLQlwYysrO1wNCi0JaWYgKCAhKGNvbmQpIClcDQotCQlnb3RvIGxvb3A7XA0KLQlpbnQgb2Zmc2V0ID0gU0JZVEUoIGRhdGEgKTtcDQotCXBjID0gV09SRCggcGMgKyBvZmZzZXQgKTtcDQotCXNfdGltZSArPSBjbG9ja3M7XA0KLQlnb3RvIGxvb3A7XA0KLX0NCi0NCi0jZGVmaW5lIEpSKCBjb25kICkgSlJfKCBjb25kLCA1ICkNCi0JDQotCWNhc2UgMHgyMDogSlIoICFaRVJPICApIC8vIEpSIE5aLGRpc3ANCi0JY2FzZSAweDI4OiBKUiggIFpFUk8gICkgLy8gSlIgWixkaXNwDQotCWNhc2UgMHgzMDogSlIoICFDQVJSWSApIC8vIEpSIE5DLGRpc3ANCi0JY2FzZSAweDM4OiBKUiggIENBUlJZICkgLy8gSlIgQyxkaXNwDQotCWNhc2UgMHgxODogSlJfKCB0cnVlLDApIC8vIEpSIGRpc3ANCi0NCi0JY2FzZSAweDEwOnsvLyBESk5aIGRpc3ANCi0JCWludCB0ZW1wID0gci5iLmIgLSAxOw0KLQkJci5iLmIgPSB0ZW1wOw0KLQkJSlIoIHRlbXAgKQ0KLQl9DQotCQ0KLS8vIEpQDQotI2RlZmluZSBKUCggY29uZCApIFwNCi0JaWYgKCAhKGNvbmQpIClcDQotCQlnb3RvIGpwX25vdF90YWtlbjtcDQotCXBjID0gR0VUX0FERFIoKTtcDQotCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhDMjogSlAoICFaRVJPICApIC8vIEpQIE5aLGFkZHINCi0JY2FzZSAweENBOiBKUCggIFpFUk8gICkgLy8gSlAgWixhZGRyDQotCWNhc2UgMHhEMjogSlAoICFDQVJSWSApIC8vIEpQIE5DLGFkZHINCi0JY2FzZSAweERBOiBKUCggIENBUlJZICkgLy8gSlAgQyxhZGRyDQotCWNhc2UgMHhFMjogSlAoICFFVkVOICApIC8vIEpQIFBPLGFkZHINCi0JY2FzZSAweEVBOiBKUCggIEVWRU4gICkgLy8gSlAgUEUsYWRkcg0KLQljYXNlIDB4RjI6IEpQKCAhTUlOVVMgKSAvLyBKUCBQLGFkZHINCi0JY2FzZSAweEZBOiBKUCggIE1JTlVTICkgLy8gSlAgTSxhZGRyDQotCQ0KLQljYXNlIDB4QzM6IC8vIEpQIGFkZHINCi0JCXBjID0gR0VUX0FERFIoKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhFOTogLy8gSlAgSEwNCi0JCXBjID0gci53LmhsOw0KLQkJZ290byBsb29wOw0KLQ0KLS8vIFJFVA0KLSNkZWZpbmUgUkVUKCBjb25kICkgXA0KLQlpZiAoIGNvbmQgKVwNCi0JCWdvdG8gcmV0X3Rha2VuO1wNCi0Jc190aW1lIC09IDY7XA0KLQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4QzA6IFJFVCggIVpFUk8gICkgLy8gUkVUIE5aDQotCWNhc2UgMHhDODogUkVUKCAgWkVSTyAgKSAvLyBSRVQgWg0KLQljYXNlIDB4RDA6IFJFVCggIUNBUlJZICkgLy8gUkVUIE5DDQotCWNhc2UgMHhEODogUkVUKCAgQ0FSUlkgKSAvLyBSRVQgQw0KLQljYXNlIDB4RTA6IFJFVCggIUVWRU4gICkgLy8gUkVUIFBPDQotCWNhc2UgMHhFODogUkVUKCAgRVZFTiAgKSAvLyBSRVQgUEUNCi0JY2FzZSAweEYwOiBSRVQoICFNSU5VUyApIC8vIFJFVCBQDQotCWNhc2UgMHhGODogUkVUKCAgTUlOVVMgKSAvLyBSRVQgTQ0KLQkNCi0JY2FzZSAweEM5OiAvLyBSRVQNCi0JcmV0X3Rha2VuOg0KLQkJcGMgPSBSRUFEX1dPUkQoIHNwICk7DQotCQlzcCA9IFdPUkQoIHNwICsgMiApOw0KLQkJZ290byBsb29wOw0KLQkNCi0vLyBDQUxMDQotI2RlZmluZSBDQUxMKCBjb25kICkgXA0KLQlpZiAoIGNvbmQgKVwNCi0JCWdvdG8gY2FsbF90YWtlbjtcDQotCWdvdG8gY2FsbF9ub3RfdGFrZW47DQotDQotCWNhc2UgMHhDNDogQ0FMTCggIVpFUk8gICkgLy8gQ0FMTCBOWixhZGRyDQotCWNhc2UgMHhDQzogQ0FMTCggIFpFUk8gICkgLy8gQ0FMTCBaLGFkZHINCi0JY2FzZSAweEQ0OiBDQUxMKCAhQ0FSUlkgKSAvLyBDQUxMIE5DLGFkZHINCi0JY2FzZSAweERDOiBDQUxMKCAgQ0FSUlkgKSAvLyBDQUxMIEMsYWRkcg0KLQljYXNlIDB4RTQ6IENBTEwoICFFVkVOICApIC8vIENBTEwgUE8sYWRkcg0KLQljYXNlIDB4RUM6IENBTEwoICBFVkVOICApIC8vIENBTEwgUEUsYWRkcg0KLQljYXNlIDB4RjQ6IENBTEwoICFNSU5VUyApIC8vIENBTEwgUCxhZGRyDQotCWNhc2UgMHhGQzogQ0FMTCggIE1JTlVTICkgLy8gQ0FMTCBNLGFkZHINCi0JDQotCWNhc2UgMHhDRDp7Ly8gQ0FMTCBhZGRyDQotCWNhbGxfdGFrZW46IHsNCi0JCQlpbnQgYWRkciA9IHBjICsgMjsNCi0JCQlwYyA9IEdFVF9BRERSKCk7DQotCQkJc3AgPSBXT1JEKCBzcCAtIDIgKTsNCi0JCQlXUklURV9XT1JEKCBzcCwgYWRkciApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JfQ0KLQkNCi0JY2FzZSAweEZGOiAvLyBSU1QNCi0JCSNpZmRlZiBJRExFX0FERFINCi0JCQlpZiAoIHBjID09IElETEVfQUREUiArIDEgKQ0KLQkJCQlnb3RvIGhpdF9pZGxlX2FkZHI7DQotCQkjZWxzZQ0KLQkJCWlmICggcGMgPiAweDEwMDAwICkNCi0JCQl7DQotCQkJCXBjID0gV09SRCggcGMgLSAxICk7DQotCQkJCXNfdGltZSAtPSAxMTsNCi0JCQkJZ290byBsb29wOw0KLQkJCX0NCi0JCSNlbmRpZg0KLQlDQVNFNyggQzcsIENGLCBENywgREYsIEU3LCBFRiwgRjcgKToNCi0JCWRhdGEgPSBwYzsNCi0JCXBjID0gb3Bjb2RlICYgMHgzODsNCi0JCSNpZmRlZiBSU1RfQkFTRQ0KLQkJCXBjICs9IFJTVF9CQVNFOw0KLQkJI2VuZGlmDQotCQlnb3RvIHB1c2hfZGF0YTsNCi0NCi0vLyBQVVNIL1BPUA0KLQljYXNlIDB4RjU6IC8vIFBVU0ggQUYNCi0JCWRhdGEgPSByLmIuYSAqIDB4MTAwdSArIGZsYWdzOw0KLQkJZ290byBwdXNoX2RhdGE7DQotCQ0KLQljYXNlIDB4QzU6IC8vIFBVU0ggQkMNCi0JY2FzZSAweEQ1OiAvLyBQVVNIIERFDQotCWNhc2UgMHhFNTogLy8gUFVTSCBITA0KLQkJZGF0YSA9IFIxNiggb3Bjb2RlLCA0LCAweEM1ICk7DQotCXB1c2hfZGF0YToNCi0JCXNwID0gV09SRCggc3AgLSAyICk7DQotCQlXUklURV9XT1JEKCBzcCwgZGF0YSApOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEYxOiAvLyBQT1AgQUYNCi0JCWZsYWdzID0gUkVBRF9NRU0oIHNwICk7DQotCQlyLmIuYSA9IFJFQURfTUVNKCAoc3AgKyAxKSApOw0KLQkJc3AgPSBXT1JEKCBzcCArIDIgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhDMTogLy8gUE9QIEJDDQotCWNhc2UgMHhEMTogLy8gUE9QIERFDQotCWNhc2UgMHhFMTogLy8gUE9QIEhMDQotCQlSMTYoIG9wY29kZSwgNCwgMHhDMSApID0gUkVBRF9XT1JEKCBzcCApOw0KLQkJc3AgPSBXT1JEKCBzcCArIDIgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotLy8gQURDL0FERC9TQkMvU1VCDQotCWNhc2UgMHg5NjogLy8gU1VCIChITCkNCi0JY2FzZSAweDg2OiAvLyBBREQgKEhMKQ0KLQkJZmxhZ3MgJj0gfkMwMTsNCi0JY2FzZSAweDlFOiAvLyBTQkMgKEhMKQ0KLQljYXNlIDB4OEU6IC8vIEFEQyAoSEwpDQotCQlkYXRhID0gUkVBRF9NRU0oIHIudy5obCApOw0KLQkJZ290byBhZGNfZGF0YTsNCi0JDQotCWNhc2UgMHhENjogLy8gU1VCIEEsaW1tDQotCWNhc2UgMHhDNjogLy8gQUREIGltbQ0KLQkJZmxhZ3MgJj0gfkMwMTsNCi0JY2FzZSAweERFOiAvLyBTQkMgQSxpbW0NCi0JY2FzZSAweENFOiAvLyBBREMgaW1tDQotCQlwYysrOw0KLQkJZ290byBhZGNfZGF0YTsNCi0JDQotCUNBU0U3KCA5MCwgOTEsIDkyLCA5MywgOTQsIDk1LCA5NyApOiAvLyBTVUIgcg0KLQlDQVNFNyggODAsIDgxLCA4MiwgODMsIDg0LCA4NSwgODcgKTogLy8gQUREIHINCi0JCWZsYWdzICY9IH5DMDE7DQotCUNBU0U3KCA5OCwgOTksIDlBLCA5QiwgOUMsIDlELCA5RiApOiAvLyBTQkMgcg0KLQlDQVNFNyggODgsIDg5LCA4QSwgOEIsIDhDLCA4RCwgOEYgKTogLy8gQURDIHINCi0JCWRhdGEgPSBSOCggb3Bjb2RlICYgNywgMCApOw0KLQlhZGNfZGF0YTogew0KLQkJaW50IHJlc3VsdCA9IGRhdGEgKyAoZmxhZ3MgJiBDMDEpOw0KLQkJZGF0YSBePSByLmIuYTsNCi0JCWZsYWdzID0gb3Bjb2RlID4+IDMgJiBOMDI7IC8vIGJpdCA0IGlzIHNldCBpbiBzdWJ0cmFjdCBvcGNvZGVzDQotCQlpZiAoIGZsYWdzICkNCi0JCQlyZXN1bHQgPSAtcmVzdWx0Ow0KLQkJcmVzdWx0ICs9IHIuYi5hOw0KLQkJZGF0YSBePSByZXN1bHQ7DQotCQlmbGFncyArPShkYXRhICYgSDEwKSArDQotCQkJCSgoZGF0YSArIDB4ODApID4+IDYgJiBWMDQpICsNCi0JCQkJU1oyOEMoIHJlc3VsdCAmIDB4MUZGICk7DQotCQlyLmIuYSA9IHJlc3VsdDsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQ0KLS8vIENQDQotCWNhc2UgMHhCRTogLy8gQ1AgKEhMKQ0KLQkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKTsNCi0JCWdvdG8gY3BfZGF0YTsNCi0JDQotCWNhc2UgMHhGRTogLy8gQ1AgaW1tDQotCQlwYysrOw0KLQkJZ290byBjcF9kYXRhOw0KLQkNCi0JQ0FTRTcoIEI4LCBCOSwgQkEsIEJCLCBCQywgQkQsIEJGICk6IC8vIENQIHINCi0JCWRhdGEgPSBSOCggb3Bjb2RlLCAweEI4ICk7DQotCWNwX2RhdGE6IHsNCi0JCWludCByZXN1bHQgPSByLmIuYSAtIGRhdGE7DQotCQlmbGFncyA9IE4wMiArIChkYXRhICYgKEYyMCB8IEYwOCkpICsgKHJlc3VsdCA+PiA4ICYgQzAxKTsNCi0JCWRhdGEgXj0gci5iLmE7DQotCQlmbGFncyArPSgoKHJlc3VsdCBeIHIuYi5hKSAmIGRhdGEpID4+IDUgJiBWMDQpICsNCi0JCQkJKCgoZGF0YSAmIEgxMCkgXiByZXN1bHQpICYgKFM4MCB8IEgxMCkpOw0KLQkJaWYgKCBCWVRFKCByZXN1bHQgKSApDQotCQkJZ290byBsb29wOw0KLQkJZmxhZ3MgKz0gWjQwOw0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLS8vIEFERCBITCxyLncNCi0JDQotCWNhc2UgMHgzOTogLy8gQUREIEhMLFNQDQotCQlkYXRhID0gc3A7DQotCQlnb3RvIGFkZF9obF9kYXRhOw0KLQkNCi0JY2FzZSAweDA5OiAvLyBBREQgSEwsQkMNCi0JY2FzZSAweDE5OiAvLyBBREQgSEwsREUNCi0JY2FzZSAweDI5OiAvLyBBREQgSEwsSEwNCi0JCWRhdGEgPSBSMTYoIG9wY29kZSwgNCwgMHgwOSApOw0KLQlhZGRfaGxfZGF0YTogew0KLQkJaW50IHN1bSA9IHIudy5obCArIGRhdGE7DQotCQlkYXRhIF49IHIudy5obDsNCi0JCXIudy5obCA9IHN1bTsNCi0JCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IFYwNCkpICsNCi0JCQkJKHN1bSA+PiAxNikgKw0KLQkJCQkoc3VtID4+IDggJiAoRjIwIHwgRjA4KSkgKw0KLQkJCQkoKGRhdGEgXiBzdW0pID4+IDggJiBIMTApOw0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLQljYXNlIDB4Mjc6ey8vIERBQQ0KLQkJaW50IGEgPSByLmIuYTsNCi0JCWlmICggYSA+IDB4OTkgKQ0KLQkJCWZsYWdzIHw9IEMwMTsNCi0JCQ0KLQkJaW50IGFkanVzdCA9IDB4NjAgKiAoZmxhZ3MgJiBDMDEpOw0KLQkJDQotCQlpZiAoIGZsYWdzICYgSDEwIHx8IChhICYgMHgwRikgPiA5ICkNCi0JCQlhZGp1c3QgKz0gMHgwNjsNCi0JCQ0KLQkJaWYgKCBmbGFncyAmIE4wMiApDQotCQkJYWRqdXN0ID0gLWFkanVzdDsNCi0JCWEgKz0gYWRqdXN0Ow0KLQkJDQotCQlmbGFncyA9IChmbGFncyAmIChDMDEgfCBOMDIpKSArDQotCQkJCSgoci5iLmEgXiBhKSAmIEgxMCkgKw0KLQkJCQlTWjI4UCggQllURSggYSApICk7DQotCQlyLmIuYSA9IGE7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotLy8gSU5DL0RFQw0KLQljYXNlIDB4MzQ6IC8vIElOQyAoSEwpDQotCQlkYXRhID0gUkVBRF9NRU0oIHIudy5obCApICsgMTsNCi0JCVdSSVRFX01FTSggci53LmhsLCBkYXRhICk7DQotCQlnb3RvIGluY19zZXRfZmxhZ3M7DQotCQ0KLQlDQVNFNyggMDQsIDBDLCAxNCwgMUMsIDI0LCAyQywgM0MgKTogLy8gSU5DIHINCi0JCWRhdGEgPSArK1I4KCBvcGNvZGUgPj4gMywgMCApOw0KLQlpbmNfc2V0X2ZsYWdzOg0KLQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsNCi0JCQkJKCgoZGF0YSAmIDB4MEYpIC0gMSkgJiBIMTApICsNCi0JCQkJU1oyOCggQllURSggZGF0YSApICk7DQotCQlpZiAoIGRhdGEgIT0gMHg4MCApDQotCQkJZ290byBsb29wOw0KLQkJZmxhZ3MgKz0gVjA0Ow0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDM1OiAvLyBERUMgKEhMKQ0KLQkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKSAtIDE7DQotCQlXUklURV9NRU0oIHIudy5obCwgZGF0YSApOw0KLQkJZ290byBkZWNfc2V0X2ZsYWdzOw0KLQkNCi0JQ0FTRTcoIDA1LCAwRCwgMTUsIDFELCAyNSwgMkQsIDNEICk6IC8vIERFQyByDQotCQlkYXRhID0gLS1SOCggb3Bjb2RlID4+IDMsIDAgKTsNCi0JZGVjX3NldF9mbGFnczoNCi0JCWZsYWdzID0gKGZsYWdzICYgQzAxKSArIE4wMiArDQotCQkJCSgoKGRhdGEgJiAweDBGKSArIDEpICYgSDEwKSArDQotCQkJCVNaMjgoIEJZVEUoIGRhdGEgKSApOw0KLQkJaWYgKCBkYXRhICE9IDB4N0YgKQ0KLQkJCWdvdG8gbG9vcDsNCi0JCWZsYWdzICs9IFYwNDsNCi0JCWdvdG8gbG9vcDsNCi0NCi0JY2FzZSAweDAzOiAvLyBJTkMgQkMNCi0JY2FzZSAweDEzOiAvLyBJTkMgREUNCi0JY2FzZSAweDIzOiAvLyBJTkMgSEwNCi0JCVIxNiggb3Bjb2RlLCA0LCAweDAzICkrKzsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHgzMzogLy8gSU5DIFNQDQotCQlzcCA9IFdPUkQoIHNwICsgMSApOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDBCOiAvLyBERUMgQkMNCi0JY2FzZSAweDFCOiAvLyBERUMgREUNCi0JY2FzZSAweDJCOiAvLyBERUMgSEwNCi0JCVIxNiggb3Bjb2RlLCA0LCAweDBCICktLTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHgzQjogLy8gREVDIFNQDQotCQlzcCA9IFdPUkQoIHNwIC0gMSApOw0KLQkJZ290byBsb29wOw0KLQkNCi0vLyBBTkQNCi0JY2FzZSAweEE2OiAvLyBBTkQgKEhMKQ0KLQkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKTsNCi0JCWdvdG8gYW5kX2RhdGE7DQotCQ0KLQljYXNlIDB4RTY6IC8vIEFORCBpbW0NCi0JCXBjKys7DQotCQlnb3RvIGFuZF9kYXRhOw0KLQkNCi0JQ0FTRTcoIEEwLCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE3ICk6IC8vIEFORCByDQotCQlkYXRhID0gUjgoIG9wY29kZSwgMHhBMCApOw0KLQlhbmRfZGF0YToNCi0JCXIuYi5hICY9IGRhdGE7DQotCQlmbGFncyA9IFNaMjhQKCByLmIuYSApICsgSDEwOw0KLQkJZ290byBsb29wOw0KLQkNCi0vLyBPUg0KLQljYXNlIDB4QjY6IC8vIE9SIChITCkNCi0JCWRhdGEgPSBSRUFEX01FTSggci53LmhsICk7DQotCQlnb3RvIG9yX2RhdGE7DQotCQ0KLQljYXNlIDB4RjY6IC8vIE9SIGltbQ0KLQkJcGMrKzsNCi0JCWdvdG8gb3JfZGF0YTsNCi0JDQotCUNBU0U3KCBCMCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNyApOiAvLyBPUiByDQotCQlkYXRhID0gUjgoIG9wY29kZSwgMHhCMCApOw0KLQlvcl9kYXRhOg0KLQkJci5iLmEgfD0gZGF0YTsNCi0JCWZsYWdzID0gU1oyOFAoIHIuYi5hICk7DQotCQlnb3RvIGxvb3A7DQotDQotLy8gWE9SDQotCWNhc2UgMHhBRTogLy8gWE9SIChITCkNCi0JCWRhdGEgPSBSRUFEX01FTSggci53LmhsICk7DQotCQlnb3RvIHhvcl9kYXRhOw0KLQkNCi0JY2FzZSAweEVFOiAvLyBYT1IgaW1tDQotCQlwYysrOw0KLQkJZ290byB4b3JfZGF0YTsNCi0JDQotCUNBU0U3KCBBOCwgQTksIEFBLCBBQiwgQUMsIEFELCBBRiApOiAvLyBYT1Igcg0KLQkJZGF0YSA9IFI4KCBvcGNvZGUsIDB4QTggKTsNCi0JeG9yX2RhdGE6DQotCQlyLmIuYSBePSBkYXRhOw0KLQkJZmxhZ3MgPSBTWjI4UCggci5iLmEgKTsNCi0JCWdvdG8gbG9vcDsNCi0NCi0vLyBMRA0KLQlDQVNFNyggNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzcgKTogLy8gTEQgKEhMKSxyDQotCQlXUklURV9NRU0oIHIudy5obCwgUjgoIG9wY29kZSwgMHg3MCApICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQlDQVNFNiggNDEsIDQyLCA0MywgNDQsIDQ1LCA0NyApOiAvLyBMRCBCLHINCi0JQ0FTRTYoIDQ4LCA0QSwgNEIsIDRDLCA0RCwgNEYgKTogLy8gTEQgQyxyDQotCUNBU0U2KCA1MCwgNTEsIDUzLCA1NCwgNTUsIDU3ICk6IC8vIExEIEQscg0KLQlDQVNFNiggNTgsIDU5LCA1QSwgNUMsIDVELCA1RiApOiAvLyBMRCBFLHINCi0JQ0FTRTYoIDYwLCA2MSwgNjIsIDYzLCA2NSwgNjcgKTogLy8gTEQgSCxyDQotCUNBU0U2KCA2OCwgNjksIDZBLCA2QiwgNkMsIDZGICk6IC8vIExEIEwscg0KLQlDQVNFNiggNzgsIDc5LCA3QSwgN0IsIDdDLCA3RCApOiAvLyBMRCBBLHINCi0JCVI4KCBvcGNvZGUgPj4gMyAmIDcsIDAgKSA9IFI4KCBvcGNvZGUgJiA3LCAwICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQlDQVNFNSggMDYsIDBFLCAxNiwgMUUsIDI2ICk6IC8vIExEIHIsaW1tDQotCQlSOCggb3Bjb2RlID4+IDMsIDAgKSA9IGRhdGE7DQotCQlwYysrOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDM2OiAvLyBMRCAoSEwpLGltbQ0KLQkJcGMrKzsNCi0JCVdSSVRFX01FTSggci53LmhsLCBkYXRhICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQlDQVNFNyggNDYsIDRFLCA1NiwgNUUsIDY2LCA2RSwgN0UgKTogLy8gTEQgciwoSEwpDQotCQlSOCggb3Bjb2RlID4+IDMsIDggKSA9IFJFQURfTUVNKCByLncuaGwgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHgwMTogLy8gTEQgci53LGltbQ0KLQljYXNlIDB4MTE6DQotCWNhc2UgMHgyMToNCi0JCVIxNiggb3Bjb2RlLCA0LCAweDAxICkgPSBHRVRfQUREUigpOw0KLQkJcGMgKz0gMjsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHgzMTogLy8gTEQgc3AsaW1tDQotCQlzcCA9IEdFVF9BRERSKCk7DQotCQlwYyArPSAyOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDJBOnsvLyBMRCBITCwoYWRkcikNCi0JCWludCBhZGRyID0gR0VUX0FERFIoKTsNCi0JCXBjICs9IDI7DQotCQlyLncuaGwgPSBSRUFEX1dPUkQoIGFkZHIgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDMyOnsvLyBMRCAoYWRkciksQQ0KLQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJcGMgKz0gMjsNCi0JCVdSSVRFX01FTSggYWRkciwgci5iLmEgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDIyOnsvLyBMRCAoYWRkciksSEwNCi0JCWludCBhZGRyID0gR0VUX0FERFIoKTsNCi0JCXBjICs9IDI7DQotCQlXUklURV9XT1JEKCBhZGRyLCByLncuaGwgKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDAyOiAvLyBMRCAoQkMpLEENCi0JY2FzZSAweDEyOiAvLyBMRCAoREUpLEENCi0JCVdSSVRFX01FTSggUjE2KCBvcGNvZGUsIDQsIDB4MDIgKSwgci5iLmEgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHgwQTogLy8gTEQgQSwoQkMpDQotCWNhc2UgMHgxQTogLy8gTEQgQSwoREUpDQotCQlyLmIuYSA9IFJFQURfTUVNKCBSMTYoIG9wY29kZSwgNCwgMHgwQSApICk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4Rjk6IC8vIExEIFNQLEhMDQotCQlzcCA9IHIudy5obDsNCi0JCWdvdG8gbG9vcDsNCi0JDQotLy8gUm90YXRlDQotCQ0KLQljYXNlIDB4MDc6ey8vIFJMQ0ENCi0JCWludCB0ZW1wID0gci5iLmE7DQotCQl0ZW1wID0gKHRlbXAgPDwgMSkgKyAodGVtcCA+PiA3KTsNCi0JCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IFAwNCkpICsNCi0JCQkJKHRlbXAgJiAoRjIwIHwgRjA4IHwgQzAxKSk7DQotCQlyLmIuYSA9IHRlbXA7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHgwRjp7Ly8gUlJDQQ0KLQkJaW50IHRlbXAgPSByLmIuYTsNCi0JCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IFAwNCkpICsNCi0JCQkJKHRlbXAgJiBDMDEpOw0KLQkJdGVtcCA9ICh0ZW1wIDw8IDcpICsgKHRlbXAgPj4gMSk7DQotCQlmbGFncyArPSB0ZW1wICYgKEYyMCB8IEYwOCk7DQotCQlyLmIuYSA9IHRlbXA7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHgxNzp7Ly8gUkxBDQotCQlpbnQgdGVtcCA9IChyLmIuYSA8PCAxKSArIChmbGFncyAmIEMwMSk7DQotCQlmbGFncyA9IChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQpKSArDQotCQkJCSh0ZW1wICYgKEYyMCB8IEYwOCkpICsNCi0JCQkJKHRlbXAgPj4gOCk7DQotCQlyLmIuYSA9IHRlbXA7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHgxRjp7Ly8gUlJBDQotCQlpbnQgdGVtcCA9IChmbGFncyA8PCA3KSArIChyLmIuYSA+PiAxKTsNCi0JCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IFAwNCkpICsNCi0JCQkJKHRlbXAgJiAoRjIwIHwgRjA4KSkgKw0KLQkJCQkoci5iLmEgJiBDMDEpOw0KLQkJci5iLmEgPSB0ZW1wOw0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLS8vIE1pc2MNCi0JY2FzZSAweDJGOnsvLyBDUEwNCi0JCWludCB0ZW1wID0gfnIuYi5hOw0KLQkJZmxhZ3MgPSAoZmxhZ3MgJiAoUzgwIHwgWjQwIHwgUDA0IHwgQzAxKSkgKw0KLQkJCQkodGVtcCAmIChGMjAgfCBGMDgpKSArDQotCQkJCShIMTAgfCBOMDIpOw0KLQkJci5iLmEgPSB0ZW1wOw0KLQkJZ290byBsb29wOw0KLQl9DQotCQ0KLQljYXNlIDB4M0Y6ey8vIENDRg0KLQkJZmxhZ3MgPSAoKGZsYWdzICYgKFM4MCB8IFo0MCB8IFAwNCB8IEMwMSkpIF4gQzAxKSArDQotCQkJCShmbGFncyA8PCA0ICYgSDEwKSArDQotCQkJCShyLmIuYSAmIChGMjAgfCBGMDgpKTsNCi0JCWdvdG8gbG9vcDsNCi0JfQ0KLQkNCi0JY2FzZSAweDM3OiAvLyBTQ0YNCi0JCWZsYWdzID0gKChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQpKSB8IEMwMSkgKw0KLQkJCQkoci5iLmEgJiAoRjIwIHwgRjA4KSk7DQotCQlnb3RvIGxvb3A7DQotCQ0KLQljYXNlIDB4REI6IC8vIElOIEEsKGltbSkNCi0JCXBjKys7DQotCQlyLmIuYSA9IElOX1BPUlQoIChkYXRhICsgci5iLmEgKiAweDEwMCkgKTsNCi0JCWdvdG8gbG9vcDsNCi0NCi0JY2FzZSAweEUzOnsvLyBFWCAoU1ApLEhMDQotCQlpbnQgdGVtcCA9IFJFQURfV09SRCggc3AgKTsNCi0JCVdSSVRFX1dPUkQoIHNwLCByLncuaGwgKTsNCi0JCXIudy5obCA9IHRlbXA7DQotCQlnb3RvIGxvb3A7DQotCX0NCi0JDQotCWNhc2UgMHhFQjogLy8gRVggREUsSEwNCi0JCUVYKCByLncuaGwsIHIudy5kZSApOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEQ5OiAvLyBFWFggREUsSEwNCi0JCUVYWCggdy5iYyApOw0KLQkJRVhYKCB3LmRlICk7DQotCQlFWFgoIHcuaGwgKTsNCi0JCWdvdG8gbG9vcDsNCi0JDQotCWNhc2UgMHhGMzogLy8gREkNCi0JCVIuaWZmMSA9IDA7DQotCQlSLmlmZjIgPSAwOw0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweEZCOiAvLyBFSQ0KLQkJUi5pZmYxID0gMTsNCi0JCVIuaWZmMiA9IDE7DQotCQkvLyBUT0RPOiBkZWxheWVkIGVmZmVjdA0KLQkJZ290byBsb29wOw0KLQkNCi0JY2FzZSAweDc2OiAvLyBIQUxUDQotCQlnb3RvIGhhbHQ7DQotCQ0KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gQ0IgcHJlZml4DQotCXsNCi0JY2FzZSAweENCOg0KLQkJcGMrKzsNCi0JCXN3aXRjaCAoIGRhdGEgKQ0KLQkJew0KLQkNCi0JLy8gUm90YXRlIGxlZnQNCi0JCQ0KLQkjZGVmaW5lIFJMQyggcmVhZCwgd3JpdGUgKSB7XA0KLQkJaW50IHJlc3VsdCA9IHJlYWQ7XA0KLQkJcmVzdWx0ID0gQllURSggcmVzdWx0IDw8IDEgKSArIChyZXN1bHQgPj4gNyk7XA0KLQkJZmxhZ3MgPSBTWjI4UCggcmVzdWx0ICkgKyAocmVzdWx0ICYgQzAxKTtcDQotCQl3cml0ZTtcDQotCQlnb3RvIGxvb3A7XA0KLQl9DQotCQkNCi0JCWNhc2UgMHgwNjogLy8gUkxDIChITCkNCi0JCQlzX3RpbWUgKz0gNzsNCi0JCQlkYXRhID0gci53LmhsOw0KLQkJcmxjX2RhdGFfYWRkcjoNCi0JCQlSTEMoIFJFQURfTUVNKCBkYXRhICksIFdSSVRFX01FTSggZGF0YSwgcmVzdWx0ICkgKQ0KLQkJDQotCQlDQVNFNyggMDAsIDAxLCAwMiwgMDMsIDA0LCAwNSwgMDcgKTp7Ly8gUkxDIHINCi0JCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDAgKTsNCi0JCQlSTEMoICpyZWcsICpyZWcgPSByZXN1bHQgKQ0KLQkJfQ0KLQkJDQotCSNkZWZpbmUgUkwoIHJlYWQsIHdyaXRlICkge1wNCi0JCWludCByZXN1bHQgPSAocmVhZCA8PCAxKSArIChmbGFncyAmIEMwMSk7XA0KLQkJZmxhZ3MgPSBTWjI4UEMoIHJlc3VsdCApO1wNCi0JCXdyaXRlO1wNCi0JCWdvdG8gbG9vcDtcDQotCX0NCi0JCQ0KLQkJY2FzZSAweDE2OiAvLyBSTCAoSEwpDQotCQkJc190aW1lICs9IDc7DQotCQkJZGF0YSA9IHIudy5obDsNCi0JCXJsX2RhdGFfYWRkcjoNCi0JCQlSTCggUkVBRF9NRU0oIGRhdGEgKSwgV1JJVEVfTUVNKCBkYXRhLCByZXN1bHQgKSApDQotCQkNCi0JCUNBU0U3KCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNyApOnsvLyBSTCByDQotCQkJYnl0ZSogcmVnID0gJlI4KCBkYXRhLCAweDEwICk7DQotCQkJUkwoICpyZWcsICpyZWcgPSByZXN1bHQgKQ0KLQkJfQ0KLQkJDQotCSNkZWZpbmUgU0xBKCByZWFkLCBsb3dfYml0LCB3cml0ZSApIHtcDQotCQlpbnQgcmVzdWx0ID0gKHJlYWQgPDwgMSkgKyBsb3dfYml0O1wNCi0JCWZsYWdzID0gU1oyOFBDKCByZXN1bHQgKTtcDQotCQl3cml0ZTtcDQotCQlnb3RvIGxvb3A7XA0KLQl9DQotCQkNCi0JCWNhc2UgMHgyNjogLy8gU0xBIChITCkNCi0JCQlzX3RpbWUgKz0gNzsNCi0JCQlkYXRhID0gci53LmhsOw0KLQkJc2xhX2RhdGFfYWRkcjoNCi0JCQlTTEEoIFJFQURfTUVNKCBkYXRhICksIDAsIFdSSVRFX01FTSggZGF0YSwgcmVzdWx0ICkgKQ0KLQkJDQotCQlDQVNFNyggMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjcgKTp7Ly8gU0xBIHINCi0JCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MjAgKTsNCi0JCQlTTEEoICpyZWcsIDAsICpyZWcgPSByZXN1bHQgKQ0KLQkJfQ0KLQkJDQotCQljYXNlIDB4MzY6IC8vIFNMTCAoSEwpDQotCQkJc190aW1lICs9IDc7DQotCQkJZGF0YSA9IHIudy5obDsNCi0JCXNsbF9kYXRhX2FkZHI6DQotCQkJU0xBKCBSRUFEX01FTSggZGF0YSApLCAxLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkNCi0JCQ0KLQkJQ0FTRTcoIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM3ICk6ey8vIFNMTCByDQotCQkJYnl0ZSogcmVnID0gJlI4KCBkYXRhLCAweDMwICk7DQotCQkJU0xBKCAqcmVnLCAxLCAqcmVnID0gcmVzdWx0ICkNCi0JCX0NCi0JCQ0KLQkvLyBSb3RhdGUgcmlnaHQNCi0JCQ0KLQkjZGVmaW5lIFJSQyggcmVhZCwgd3JpdGUgKSB7XA0KLQkJaW50IHJlc3VsdCA9IHJlYWQ7XA0KLQkJZmxhZ3MgPSByZXN1bHQgJiBDMDE7XA0KLQkJcmVzdWx0ID0gQllURSggcmVzdWx0IDw8IDcgKSArIChyZXN1bHQgPj4gMSk7XA0KLQkJZmxhZ3MgKz0gU1oyOFAoIHJlc3VsdCApO1wNCi0JCXdyaXRlO1wNCi0JCWdvdG8gbG9vcDtcDQotCX0NCi0JCQ0KLQkJY2FzZSAweDBFOiAvLyBSUkMgKEhMKQ0KLQkJCXNfdGltZSArPSA3Ow0KLQkJCWRhdGEgPSByLncuaGw7DQotCQlycmNfZGF0YV9hZGRyOg0KLQkJCVJSQyggUkVBRF9NRU0oIGRhdGEgKSwgV1JJVEVfTUVNKCBkYXRhLCByZXN1bHQgKSApDQotCQkNCi0JCUNBU0U3KCAwOCwgMDksIDBBLCAwQiwgMEMsIDBELCAwRiApOnsvLyBSUkMgcg0KLQkJCWJ5dGUqIHJlZyA9ICZSOCggZGF0YSwgMHgwOCApOw0KLQkJCVJSQyggKnJlZywgKnJlZyA9IHJlc3VsdCApDQotCQl9DQotCQkNCi0JI2RlZmluZSBSUiggcmVhZCwgd3JpdGUgKSB7XA0KLQkJaW50IHJlc3VsdCA9IHJlYWQ7XA0KLQkJaW50IHRlbXAgPSByZXN1bHQgJiBDMDE7XA0KLQkJcmVzdWx0ID0gQllURSggZmxhZ3MgPDwgNyApICsgKHJlc3VsdCA+PiAxKTtcDQotCQlmbGFncyA9IFNaMjhQKCByZXN1bHQgKSArIHRlbXA7XA0KLQkJd3JpdGU7XA0KLQkJZ290byBsb29wO1wNCi0JfQ0KLQkJDQotCQljYXNlIDB4MUU6IC8vIFJSIChITCkNCi0JCQlzX3RpbWUgKz0gNzsNCi0JCQlkYXRhID0gci53LmhsOw0KLQkJcnJfZGF0YV9hZGRyOg0KLQkJCVJSKCBSRUFEX01FTSggZGF0YSApLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkNCi0JCQ0KLQkJQ0FTRTcoIDE4LCAxOSwgMUEsIDFCLCAxQywgMUQsIDFGICk6ey8vIFJSIHINCi0JCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MTggKTsNCi0JCQlSUiggKnJlZywgKnJlZyA9IHJlc3VsdCApDQotCQl9DQotCQkNCi0JI2RlZmluZSBTUkEoIHJlYWQsIHdyaXRlICkge1wNCi0JCWludCByZXN1bHQgPSByZWFkO1wNCi0JCWZsYWdzID0gcmVzdWx0ICYgQzAxO1wNCi0JCXJlc3VsdCA9IChyZXN1bHQgJiAweDgwKSArIChyZXN1bHQgPj4gMSk7XA0KLQkJZmxhZ3MgKz0gU1oyOFAoIHJlc3VsdCApO1wNCi0JCXdyaXRlO1wNCi0JCWdvdG8gbG9vcDtcDQotCX0NCi0JCQ0KLQkJY2FzZSAweDJFOiAvLyBTUkEgKEhMKQ0KLQkJCWRhdGEgPSByLncuaGw7DQotCQkJc190aW1lICs9IDc7DQotCQlzcmFfZGF0YV9hZGRyOg0KLQkJCVNSQSggUkVBRF9NRU0oIGRhdGEgKSwgV1JJVEVfTUVNKCBkYXRhLCByZXN1bHQgKSApDQotCQkNCi0JCUNBU0U3KCAyOCwgMjksIDJBLCAyQiwgMkMsIDJELCAyRiApOnsvLyBTUkEgcg0KLQkJCWJ5dGUqIHJlZyA9ICZSOCggZGF0YSwgMHgyOCApOw0KLQkJCVNSQSggKnJlZywgKnJlZyA9IHJlc3VsdCApDQotCQl9DQotCQkNCi0JI2RlZmluZSBTUkwoIHJlYWQsIHdyaXRlICkge1wNCi0JCWludCByZXN1bHQgPSByZWFkO1wNCi0JCWZsYWdzID0gcmVzdWx0ICYgQzAxO1wNCi0JCXJlc3VsdCA+Pj0gMTtcDQotCQlmbGFncyArPSBTWjI4UCggcmVzdWx0ICk7XA0KLQkJd3JpdGU7XA0KLQkJZ290byBsb29wO1wNCi0JfQ0KLQkJDQotCQljYXNlIDB4M0U6IC8vIFNSTCAoSEwpDQotCQkJc190aW1lICs9IDc7DQotCQkJZGF0YSA9IHIudy5obDsNCi0JCXNybF9kYXRhX2FkZHI6DQotCQkJU1JMKCBSRUFEX01FTSggZGF0YSApLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkNCi0JCQ0KLQkJQ0FTRTcoIDM4LCAzOSwgM0EsIDNCLCAzQywgM0QsIDNGICk6ey8vIFNSTCByDQotCQkJYnl0ZSogcmVnID0gJlI4KCBkYXRhLCAweDM4ICk7DQotCQkJU1JMKCAqcmVnLCAqcmVnID0gcmVzdWx0ICkNCi0JCX0NCi0JCQ0KLQkvLyBCSVQNCi0JCXsNCi0JCQlpbnQgdGVtcDsNCi0JCUNBU0U4KCA0NiwgNEUsIDU2LCA1RSwgNjYsIDZFLCA3NiwgN0UgKTogLy8gQklUIGIsKEhMKQ0KLQkJCXNfdGltZSArPSA0Ow0KLQkJCXRlbXAgPSBSRUFEX01FTSggci53LmhsICk7DQotCQkJZmxhZ3MgJj0gQzAxOw0KLQkJCWdvdG8gYml0X3RlbXA7DQotCQlDQVNFNyggNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDcgKTogLy8gQklUIDAscg0KLQkJQ0FTRTcoIDQ4LCA0OSwgNEEsIDRCLCA0QywgNEQsIDRGICk6IC8vIEJJVCAxLHINCi0JCUNBU0U3KCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NyApOiAvLyBCSVQgMixyDQotCQlDQVNFNyggNTgsIDU5LCA1QSwgNUIsIDVDLCA1RCwgNUYgKTogLy8gQklUIDMscg0KLQkJQ0FTRTcoIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY3ICk6IC8vIEJJVCA0LHINCi0JCUNBU0U3KCA2OCwgNjksIDZBLCA2QiwgNkMsIDZELCA2RiApOiAvLyBCSVQgNSxyDQotCQlDQVNFNyggNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzcgKTogLy8gQklUIDYscg0KLQkJQ0FTRTcoIDc4LCA3OSwgN0EsIDdCLCA3QywgN0QsIDdGICk6IC8vIEJJVCA3LHINCi0JCQl0ZW1wID0gUjgoIGRhdGEgJiA3LCAwICk7DQotCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgKHRlbXAgJiAoRjIwIHwgRjA4KSk7DQotCQliaXRfdGVtcDoNCi0JCQl0ZW1wID0gdGVtcCAmICgxIDw8IChkYXRhID4+IDMgJiA3KSk7DQotCQkJZmxhZ3MgKz0gKHRlbXAgJiBTODApICsgSDEwOw0KLQkJCWZsYWdzICs9ICh1bnNpZ25lZCkgLS10ZW1wID4+IDggJiAoWjQwIHwgUDA0KTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JLy8gU0VUL1JFUw0KLQkJQ0FTRTgoIDg2LCA4RSwgOTYsIDlFLCBBNiwgQUUsIEI2LCBCRSApOiAvLyBSRVMgYiwoSEwpDQotCQlDQVNFOCggQzYsIENFLCBENiwgREUsIEU2LCBFRSwgRjYsIEZFICk6ey8vIFNFVCBiLChITCkNCi0JCQlzX3RpbWUgKz0gNzsNCi0JCQlpbnQgdGVtcCA9IFJFQURfTUVNKCByLncuaGwgKTsNCi0JCQlpbnQgYml0ID0gMSA8PCAoZGF0YSA+PiAzICYgNyk7DQotCQkJdGVtcCB8PSBiaXQ7IC8vIFNFVA0KLQkJCWlmICggIShkYXRhICYgMHg0MCkgKQ0KLQkJCQl0ZW1wIF49IGJpdDsgLy8gUkVTDQotCQkJV1JJVEVfTUVNKCByLncuaGwsIHRlbXAgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCUNBU0U3KCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNyApOiAvLyBTRVQgMCxyDQotCQlDQVNFNyggQzgsIEM5LCBDQSwgQ0IsIENDLCBDRCwgQ0YgKTogLy8gU0VUIDEscg0KLQkJQ0FTRTcoIEQwLCBEMSwgRDIsIEQzLCBENCwgRDUsIEQ3ICk6IC8vIFNFVCAyLHINCi0JCUNBU0U3KCBEOCwgRDksIERBLCBEQiwgREMsIERELCBERiApOiAvLyBTRVQgMyxyDQotCQlDQVNFNyggRTAsIEUxLCBFMiwgRTMsIEU0LCBFNSwgRTcgKTogLy8gU0VUIDQscg0KLQkJQ0FTRTcoIEU4LCBFOSwgRUEsIEVCLCBFQywgRUQsIEVGICk6IC8vIFNFVCA1LHINCi0JCUNBU0U3KCBGMCwgRjEsIEYyLCBGMywgRjQsIEY1LCBGNyApOiAvLyBTRVQgNixyDQotCQlDQVNFNyggRjgsIEY5LCBGQSwgRkIsIEZDLCBGRCwgRkYgKTogLy8gU0VUIDcscg0KLQkJCVI4KCBkYXRhICYgNywgMCApIHw9IDEgPDwgKGRhdGEgPj4gMyAmIDcpOw0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJQ0FTRTcoIDgwLCA4MSwgODIsIDgzLCA4NCwgODUsIDg3ICk6IC8vIFJFUyAwLHINCi0JCUNBU0U3KCA4OCwgODksIDhBLCA4QiwgOEMsIDhELCA4RiApOiAvLyBSRVMgMSxyDQotCQlDQVNFNyggOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTcgKTogLy8gUkVTIDIscg0KLQkJQ0FTRTcoIDk4LCA5OSwgOUEsIDlCLCA5QywgOUQsIDlGICk6IC8vIFJFUyAzLHINCi0JCUNBU0U3KCBBMCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNyApOiAvLyBSRVMgNCxyDQotCQlDQVNFNyggQTgsIEE5LCBBQSwgQUIsIEFDLCBBRCwgQUYgKTogLy8gUkVTIDUscg0KLQkJQ0FTRTcoIEIwLCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI3ICk6IC8vIFJFUyA2LHINCi0JCUNBU0U3KCBCOCwgQjksIEJBLCBCQiwgQkMsIEJELCBCRiApOiAvLyBSRVMgNyxyDQotCQkJUjgoIGRhdGEgJiA3LCAwICkgJj0gfigxIDw8IChkYXRhID4+IDMgJiA3KSk7DQotCQkJZ290byBsb29wOw0KLQkJfQ0KLQkJYXNzZXJ0KCBmYWxzZSApOw0KLQl9DQotDQotI3VuZGVmIEdFVF9BRERSDQotI2RlZmluZSBHRVRfQUREUigpICBHRVRfTEUxNiggJklOU1RSKCAxLCBwYyApICkNCi0NCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEVEIHByZWZpeA0KLQl7DQotCWNhc2UgMHhFRDoNCi0JCXBjKys7DQotCQlzX3RpbWUgKz0gKGNsb2NrX3RhYmxlICsgMjU2KSBbZGF0YV0gPj4gNDsNCi0JCXN3aXRjaCAoIGRhdGEgKQ0KLQkJew0KLQkJew0KLQkJCWludCB0ZW1wOw0KLQkJY2FzZSAweDcyOiAvLyBTQkMgSEwsU1ANCi0JCWNhc2UgMHg3QTogLy8gQURDIEhMLFNQDQotCQkJdGVtcCA9IHNwOw0KLQkJCWlmICggMCApDQotCQljYXNlIDB4NDI6IC8vIFNCQyBITCxCQw0KLQkJY2FzZSAweDUyOiAvLyBTQkMgSEwsREUNCi0JCWNhc2UgMHg2MjogLy8gU0JDIEhMLEhMDQotCQljYXNlIDB4NEE6IC8vIEFEQyBITCxCQw0KLQkJY2FzZSAweDVBOiAvLyBBREMgSEwsREUNCi0JCWNhc2UgMHg2QTogLy8gQURDIEhMLEhMDQotCQkJCXRlbXAgPSBSMTYoIGRhdGEgPj4gMyAmIDYsIDEsIDAgKTsNCi0JCQlpbnQgc3VtID0gdGVtcCArIChmbGFncyAmIEMwMSk7DQotCQkJZmxhZ3MgPSB+ZGF0YSA+PiAyICYgTjAyOw0KLQkJCWlmICggZmxhZ3MgKQ0KLQkJCQlzdW0gPSAtc3VtOw0KLQkJCXN1bSArPSByLncuaGw7DQotCQkJdGVtcCBePSByLncuaGw7DQotCQkJdGVtcCBePSBzdW07DQotCQkJZmxhZ3MgKz0oc3VtID4+IDE2ICYgQzAxKSArDQotCQkJCQkodGVtcCA+PiA4ICYgSDEwKSArDQotCQkJCQkoc3VtID4+IDggJiAoUzgwIHwgRjIwIHwgRjA4KSkgKw0KLQkJCQkJKCh0ZW1wICsgMHg4MDAwKSA+PiAxNCAmIFYwNCk7DQotCQkJci53LmhsID0gc3VtOw0KLQkJCWlmICggV09SRCggc3VtICkgKQ0KLQkJCQlnb3RvIGxvb3A7DQotCQkJZmxhZ3MgKz0gWjQwOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCQ0KLQkJQ0FTRTgoIDQwLCA0OCwgNTAsIDU4LCA2MCwgNjgsIDcwLCA3OCApOnsvLyBJTiByLChDKQ0KLQkJCWludCB0ZW1wID0gSU5fUE9SVCggci53LmJjICk7DQotCQkJUjgoIGRhdGEgPj4gMywgOCApID0gdGVtcDsNCi0JCQlmbGFncyA9IChmbGFncyAmIEMwMSkgKyBTWjI4UCggdGVtcCApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCQ0KLQkJY2FzZSAweDcxOiAvLyBPVVQgKEMpLDANCi0JCQlyLmIuZmxhZ3MgPSAwOw0KLQkJQ0FTRTcoIDQxLCA0OSwgNTEsIDU5LCA2MSwgNjksIDc5ICk6IC8vIE9VVCAoQykscg0KLQkJCU9VVF9QT1JUKCByLncuYmMsIFI4KCBkYXRhID4+IDMsIDggKSApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJew0KLQkJCWludCB0ZW1wOw0KLQkJY2FzZSAweDczOiAvLyBMRCAoQUREUiksU1ANCi0JCQl0ZW1wID0gc3A7DQotCQkJaWYgKCAwICkNCi0JCWNhc2UgMHg0MzogLy8gTEQgKEFERFIpLEJDDQotCQljYXNlIDB4NTM6IC8vIExEIChBRERSKSxERQ0KLQkJCQl0ZW1wID0gUjE2KCBkYXRhLCA0LCAweDQzICk7DQotCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJCXBjICs9IDI7DQotCQkJV1JJVEVfV09SRCggYWRkciwgdGVtcCApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCQ0KLQkJY2FzZSAweDRCOiAvLyBMRCBCQywoQUREUikNCi0JCWNhc2UgMHg1Qjp7Ly8gTEQgREUsKEFERFIpDQotCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJCXBjICs9IDI7DQotCQkJUjE2KCBkYXRhLCA0LCAweDRCICkgPSBSRUFEX1dPUkQoIGFkZHIgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCWNhc2UgMHg3Qjp7Ly8gTEQgU1AsKEFERFIpDQotCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJCXBjICs9IDI7DQotCQkJc3AgPSBSRUFEX1dPUkQoIGFkZHIgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCWNhc2UgMHg2Nzp7Ly8gUlJEDQotCQkJaW50IHRlbXAgPSBSRUFEX01FTSggci53LmhsICk7DQotCQkJV1JJVEVfTUVNKCByLncuaGwsICgoci5iLmEgPDwgNCkgKyAodGVtcCA+PiA0KSkgKTsNCi0JCQl0ZW1wID0gKHIuYi5hICYgMHhGMCkgKyAodGVtcCAmIDB4MEYpOw0KLQkJCWZsYWdzID0gKGZsYWdzICYgQzAxKSArIFNaMjhQKCB0ZW1wICk7DQotCQkJci5iLmEgPSB0ZW1wOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCQ0KLQkJY2FzZSAweDZGOnsvLyBSTEQNCi0JCQlpbnQgdGVtcCA9IFJFQURfTUVNKCByLncuaGwgKTsNCi0JCQlXUklURV9NRU0oIHIudy5obCwgKCh0ZW1wIDw8IDQpICsgKHIuYi5hICYgMHgwRikpICk7DQotCQkJdGVtcCA9IChyLmIuYSAmIDB4RjApICsgKHRlbXAgPj4gNCk7DQotCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgU1oyOFAoIHRlbXAgKTsNCi0JCQlyLmIuYSA9IHRlbXA7DQotCQkJZ290byBsb29wOw0KLQkJfQ0KLQkJDQotCQlDQVNFOCggNDQsIDRDLCA1NCwgNUMsIDY0LCA2QywgNzQsIDdDICk6IC8vIE5FRw0KLQkJCW9wY29kZSA9IDB4MTA7IC8vIGZsYWcgdG8gZG8gU0JDIGluc3RlYWQgb2YgQURDDQotCQkJZmxhZ3MgJj0gfkMwMTsNCi0JCQlkYXRhID0gci5iLmE7DQotCQkJci5iLmEgPSAwOw0KLQkJCWdvdG8gYWRjX2RhdGE7DQotCQkNCi0JCXsNCi0JCQlpbnQgaW5jOw0KLQkJY2FzZSAweEE5OiAvLyBDUEQNCi0JCWNhc2UgMHhCOTogLy8gQ1BEUg0KLQkJCWluYyA9IC0xOw0KLQkJCWlmICggMCApDQotCQljYXNlIDB4QTE6IC8vIENQSQ0KLQkJY2FzZSAweEIxOiAvLyBDUElSDQotCQkJCWluYyA9ICsxOw0KLQkJCWludCBhZGRyID0gci53LmhsOw0KLQkJCXIudy5obCA9IGFkZHIgKyBpbmM7DQotCQkJaW50IHRlbXAgPSBSRUFEX01FTSggYWRkciApOw0KLQkJCQ0KLQkJCWludCByZXN1bHQgPSByLmIuYSAtIHRlbXA7DQotCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgTjAyICsNCi0JCQkJCSgoKCh0ZW1wIF4gci5iLmEpICYgSDEwKSBeIHJlc3VsdCkgJiAoUzgwIHwgSDEwKSk7DQotCQkJDQotCQkJaWYgKCAhQllURSggcmVzdWx0ICkgKQ0KLQkJCQlmbGFncyArPSBaNDA7DQotCQkJcmVzdWx0IC09IChmbGFncyAmIEgxMCkgPj4gNDsNCi0JCQlmbGFncyArPSByZXN1bHQgJiBGMDg7DQotCQkJZmxhZ3MgKz0gcmVzdWx0IDw8IDQgJiBGMjA7DQotCQkJaWYgKCAhLS1yLncuYmMgKQ0KLQkJCQlnb3RvIGxvb3A7DQotCQkJDQotCQkJZmxhZ3MgKz0gVjA0Ow0KLQkJCWlmICggZmxhZ3MgJiBaNDAgfHwgZGF0YSA8IDB4QjAgKQ0KLQkJCQlnb3RvIGxvb3A7DQotCQkJDQotCQkJcGMgLT0gMjsNCi0JCQlzX3RpbWUgKz0gNTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCXsNCi0JCQlpbnQgaW5jOw0KLQkJY2FzZSAweEE4OiAvLyBMREQNCi0JCWNhc2UgMHhCODogLy8gTEREUg0KLQkJCWluYyA9IC0xOw0KLQkJCWlmICggMCApDQotCQljYXNlIDB4QTA6IC8vIExESQ0KLQkJY2FzZSAweEIwOiAvLyBMRElSDQotCQkJCWluYyA9ICsxOw0KLQkJCWludCBhZGRyID0gci53LmhsOw0KLQkJCXIudy5obCA9IGFkZHIgKyBpbmM7DQotCQkJaW50IHRlbXAgPSBSRUFEX01FTSggYWRkciApOw0KLQkJCQ0KLQkJCWFkZHIgPSByLncuZGU7DQotCQkJci53LmRlID0gYWRkciArIGluYzsNCi0JCQlXUklURV9NRU0oIGFkZHIsIHRlbXAgKTsNCi0JCQkNCi0JCQl0ZW1wICs9IHIuYi5hOw0KLQkJCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IEMwMSkpICsNCi0JCQkJCSh0ZW1wICYgRjA4KSArICh0ZW1wIDw8IDQgJiBGMjApOw0KLQkJCWlmICggIS0tci53LmJjICkNCi0JCQkJZ290byBsb29wOw0KLQkJCQ0KLQkJCWZsYWdzICs9IFYwNDsNCi0JCQlpZiAoIGRhdGEgPCAweEIwICkNCi0JCQkJZ290byBsb29wOw0KLQkJCQ0KLQkJCXBjIC09IDI7DQotCQkJc190aW1lICs9IDU7DQotCQkJZ290byBsb29wOw0KLQkJfQ0KLQkJDQotCQl7DQotCQkJaW50IGluYzsNCi0JCWNhc2UgMHhBQjogLy8gT1VURA0KLQkJY2FzZSAweEJCOiAvLyBPVERSDQotCQkJaW5jID0gLTE7DQotCQkJaWYgKCAwICkNCi0JCWNhc2UgMHhBMzogLy8gT1VUSQ0KLQkJY2FzZSAweEIzOiAvLyBPVElSDQotCQkJCWluYyA9ICsxOw0KLQkJCWludCBhZGRyID0gci53LmhsOw0KLQkJCXIudy5obCA9IGFkZHIgKyBpbmM7DQotCQkJaW50IHRlbXAgPSBSRUFEX01FTSggYWRkciApOw0KLQkJCQ0KLQkJCWludCBiID0gLS1yLmIuYjsNCi0JCQlmbGFncyA9ICh0ZW1wID4+IDYgJiBOMDIpICsgU1oyOCggYiApOw0KLQkJCWlmICggYiAmJiBkYXRhID49IDB4QjAgKQ0KLQkJCXsNCi0JCQkJcGMgLT0gMjsNCi0JCQkJc190aW1lICs9IDU7DQotCQkJfQ0KLQkJCQ0KLQkJCU9VVF9QT1JUKCByLncuYmMsIHRlbXAgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCXsNCi0JCQlpbnQgaW5jOw0KLQkJY2FzZSAweEFBOiAvLyBJTkQNCi0JCWNhc2UgMHhCQTogLy8gSU5EUg0KLQkJCWluYyA9IC0xOw0KLQkJCWlmICggMCApDQotCQljYXNlIDB4QTI6IC8vIElOSQ0KLQkJY2FzZSAweEIyOiAvLyBJTklSDQotCQkJCWluYyA9ICsxOw0KLQkJCQ0KLQkJCWludCBhZGRyID0gci53LmhsOw0KLQkJCXIudy5obCA9IGFkZHIgKyBpbmM7DQotCQkJDQotCQkJaW50IHRlbXAgPSBJTl9QT1JUKCByLncuYmMgKTsNCi0JCQkNCi0JCQlpbnQgYiA9IC0tci5iLmI7DQotCQkJZmxhZ3MgPSAodGVtcCA+PiA2ICYgTjAyKSArIFNaMjgoIGIgKTsNCi0JCQlpZiAoIGIgJiYgZGF0YSA+PSAweEIwICkNCi0JCQl7DQotCQkJCXBjIC09IDI7DQotCQkJCXNfdGltZSArPSA1Ow0KLQkJCX0NCi0JCQkNCi0JCQlXUklURV9NRU0oIGFkZHIsIHRlbXAgKTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQkNCi0JCWNhc2UgMHg0NzogLy8gTEQgSSxBDQotCQkJUi5pID0gci5iLmE7DQotCQkJZ290byBsb29wOw0KLQkJDQotCQljYXNlIDB4NEY6IC8vIExEIFIsQQ0KLQkJCVNFVF9SKCByLmIuYSApOw0KLQkJCWRwcmludGYoICJMRCBSLEEgbm90IHN1cHBvcnRlZFxuIiApOw0KLQkJCXdhcm5pbmcgPSB0cnVlOw0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJY2FzZSAweDU3OiAvLyBMRCBBLEkNCi0JCQlyLmIuYSA9IFIuaTsNCi0JCQlnb3RvIGxkX2FpX2NvbW1vbjsNCi0JCQ0KLQkJY2FzZSAweDVGOiAvLyBMRCBBLFINCi0JCQlyLmIuYSA9IEdFVF9SKCk7DQotCQkJZHByaW50ZiggIkxEIEEsUiBub3Qgc3VwcG9ydGVkXG4iICk7DQotCQkJd2FybmluZyA9IHRydWU7DQotCQlsZF9haV9jb21tb246DQotCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgU1oyOCggci5iLmEgKSArIChSLmlmZjIgPDwgMiAmIFYwNCk7DQotCQkJZ290byBsb29wOw0KLQkJDQotCQlDQVNFOCggNDUsIDRELCA1NSwgNUQsIDY1LCA2RCwgNzUsIDdEICk6IC8vIFJFVEkvUkVUTg0KLQkJCVIuaWZmMSA9IFIuaWZmMjsNCi0JCQlnb3RvIHJldF90YWtlbjsNCi0JCQ0KLQkJY2FzZSAweDQ2OiBjYXNlIDB4NEU6IGNhc2UgMHg2NjogY2FzZSAweDZFOiAvLyBJTSAwDQotCQkJUi5pbSA9IDA7DQotCQkJZ290byBsb29wOw0KLQkJDQotCQljYXNlIDB4NTY6IGNhc2UgMHg3NjogLy8gSU0gMQ0KLQkJCVIuaW0gPSAxOw0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJY2FzZSAweDVFOiBjYXNlIDB4N0U6IC8vIElNIDINCi0JCQlSLmltID0gMjsNCi0JCQlnb3RvIGxvb3A7DQotCQkNCi0JCWRlZmF1bHQ6DQotCQkJZHByaW50ZiggIk9wY29kZSAkRUQgJCUwMlggbm90IHN1cHBvcnRlZFxuIiwgZGF0YSApOw0KLQkJCXdhcm5pbmcgPSB0cnVlOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCWFzc2VydCggZmFsc2UgKTsNCi0JfQ0KLQ0KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gREQvRkQgcHJlZml4DQotCXsNCi0JaW50IGl4eTsNCi0JY2FzZSAweEREOg0KLQkJaXh5ID0gaXg7DQotCQlnb3RvIGl4X3ByZWZpeDsNCi0JY2FzZSAweEZEOg0KLQkJaXh5ID0gaXk7DQotCWl4X3ByZWZpeDoNCi0JCXBjKys7DQotCQlpbnQgZGF0YTIgPSBSRUFEX0NPREUoIHBjICk7DQotCQlzX3RpbWUgKz0gKGNsb2NrX3RhYmxlICsgMjU2KSBbZGF0YV0gJiAweDBGOw0KLQkJc3dpdGNoICggZGF0YSApDQotCQl7DQotCS8vIFRPRE86IG1vcmUgZWZmaWNpZW50IHdheSBvZiBhdm9pZCBuZWdhdGl2ZSBhZGRyZXNzDQotCS8vIFRPRE86IGF2b2lkIHVzaW5nIHRoaXMgYXMgYXJndW1lbnQgdG8gUkVBRF9NRU0oKSBzaW5jZSBpdCBpcyBldmFsdWF0ZWQgdHdpY2UNCi0JI2RlZmluZSBJWFlfRElTUCggaXh5LCBkaXNwICkgICBXT1JEKCAoaXh5ICkgKyAoZGlzcCkpDQotCQ0KLQkjZGVmaW5lIFNFVF9JWFkoIGluICkgaWYgKCBvcGNvZGUgPT0gMHhERCApIGl4ID0gaW47IGVsc2UgaXkgPSBpbjsNCi0JDQotCS8vIEFERC9BREMvU1VCL1NCQw0KLQkNCi0JCWNhc2UgMHg5NjogLy8gU1VCIChJWFkrZGlzcCkNCi0JCWNhc2UgMHg4NjogLy8gQUREIChJWFkrZGlzcCkNCi0JCQlmbGFncyAmPSB+QzAxOw0KLQkJY2FzZSAweDlFOiAvLyBTQkMgKElYWStkaXNwKQ0KLQkJY2FzZSAweDhFOiAvLyBBREMgKElYWStkaXNwKQ0KLQkJCXBjKys7DQotCQkJb3Bjb2RlID0gZGF0YTsNCi0JCQlkYXRhID0gUkVBRF9NRU0oIElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICkgKTsNCi0JCQlnb3RvIGFkY19kYXRhOw0KLQkJDQotCQljYXNlIDB4OTQ6IC8vIFNVQiBIWFkNCi0JCWNhc2UgMHg4NDogLy8gQUREIEhYWQ0KLQkJCWZsYWdzICY9IH5DMDE7DQotCQljYXNlIDB4OUM6IC8vIFNCQyBIWFkNCi0JCWNhc2UgMHg4QzogLy8gQURDIEhYWQ0KLQkJCW9wY29kZSA9IGRhdGE7DQotCQkJZGF0YSA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8gYWRjX2RhdGE7DQotCQkNCi0JCWNhc2UgMHg5NTogLy8gU1VCIExYWQ0KLQkJY2FzZSAweDg1OiAvLyBBREQgTFhZDQotCQkJZmxhZ3MgJj0gfkMwMTsNCi0JCWNhc2UgMHg5RDogLy8gU0JDIExYWQ0KLQkJY2FzZSAweDhEOiAvLyBBREMgTFhZDQotCQkJb3Bjb2RlID0gZGF0YTsNCi0JCQlkYXRhID0gQllURSggaXh5ICk7DQotCQkJZ290byBhZGNfZGF0YTsNCi0JCQ0KLQkJew0KLQkJCWludCB0ZW1wOw0KLQkJY2FzZSAweDM5OiAvLyBBREQgSVhZLFNQDQotCQkJdGVtcCA9IHNwOw0KLQkJCWdvdG8gYWRkX2l4eV9kYXRhOw0KLQkJDQotCQljYXNlIDB4Mjk6IC8vIEFERCBJWFksSEwNCi0JCQl0ZW1wID0gaXh5Ow0KLQkJCWdvdG8gYWRkX2l4eV9kYXRhOw0KLQkJDQotCQljYXNlIDB4MDk6IC8vIEFERCBJWFksQkMNCi0JCWNhc2UgMHgxOTogLy8gQUREIElYWSxERQ0KLQkJCXRlbXAgPSBSMTYoIGRhdGEsIDQsIDB4MDkgKTsNCi0JCWFkZF9peHlfZGF0YTogew0KLQkJCWludCBzdW0gPSBpeHkgKyB0ZW1wOw0KLQkJCXRlbXAgXj0gaXh5Ow0KLQkJCWl4eSA9IFdPUkQoIHN1bSApOw0KLQkJCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IFYwNCkpICsNCi0JCQkJCShzdW0gPj4gMTYpICsNCi0JCQkJCShzdW0gPj4gOCAmIChGMjAgfCBGMDgpKSArDQotCQkJCQkoKHRlbXAgXiBzdW0pID4+IDggJiBIMTApOw0KLQkJCWdvdG8gc2V0X2l4eTsNCi0JCX0NCi0JCX0NCi0JDQotCS8vIEFORA0KLQkJY2FzZSAweEE2OiAvLyBBTkQgKElYWStkaXNwKQ0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApICk7DQotCQkJZ290byBhbmRfZGF0YTsNCi0JCQ0KLQkJY2FzZSAweEE0OiAvLyBBTkQgSFhZDQotCQkJZGF0YSA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8gYW5kX2RhdGE7DQotCQkNCi0JCWNhc2UgMHhBNTogLy8gQU5EIExYWQ0KLQkJCWRhdGEgPSBCWVRFKCBpeHkgKTsNCi0JCQlnb3RvIGFuZF9kYXRhOw0KLQkNCi0JLy8gT1INCi0JCWNhc2UgMHhCNjogLy8gT1IgKElYWStkaXNwKQ0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApICk7DQotCQkJZ290byBvcl9kYXRhOw0KLQkJDQotCQljYXNlIDB4QjQ6IC8vIE9SIEhYWQ0KLQkJCWRhdGEgPSBpeHkgPj4gODsNCi0JCQlnb3RvIG9yX2RhdGE7DQotCQkNCi0JCWNhc2UgMHhCNTogLy8gT1IgTFhZDQotCQkJZGF0YSA9IEJZVEUoIGl4eSApOw0KLQkJCWdvdG8gb3JfZGF0YTsNCi0JDQotCS8vIFhPUg0KLQkJY2FzZSAweEFFOiAvLyBYT1IgKElYWStkaXNwKQ0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApICk7DQotCQkJZ290byB4b3JfZGF0YTsNCi0JCQ0KLQkJY2FzZSAweEFDOiAvLyBYT1IgSFhZDQotCQkJZGF0YSA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8geG9yX2RhdGE7DQotCQkNCi0JCWNhc2UgMHhBRDogLy8gWE9SIExYWQ0KLQkJCWRhdGEgPSBCWVRFKCBpeHkgKTsNCi0JCQlnb3RvIHhvcl9kYXRhOw0KLQkNCi0JLy8gQ1ANCi0JCWNhc2UgMHhCRTogLy8gQ1AgKElYWStkaXNwKQ0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApICApOw0KLQkJCWdvdG8gY3BfZGF0YTsNCi0JCQ0KLQkJY2FzZSAweEJDOiAvLyBDUCBIWFkNCi0JCQlkYXRhID0gaXh5ID4+IDg7DQotCQkJZ290byBjcF9kYXRhOw0KLQkJDQotCQljYXNlIDB4QkQ6IC8vIENQIExYWQ0KLQkJCWRhdGEgPSBCWVRFKCBpeHkgKTsNCi0JCQlnb3RvIGNwX2RhdGE7DQotCQkNCi0JLy8gTEQNCi0JCUNBU0U3KCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NyApOiAvLyBMRCAoSVhZK2Rpc3ApLHINCi0JCQlkYXRhID0gUjgoIGRhdGEsIDB4NzAgKTsNCi0JCQlpZiAoIDAgKQ0KLQkJY2FzZSAweDM2OiAvLyBMRCAoSVhZK2Rpc3ApLGltbQ0KLQkJCQlwYysrLCBkYXRhID0gUkVBRF9DT0RFKCBwYyApOw0KLQkJCXBjKys7DQotCQkJV1JJVEVfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApLCBkYXRhICk7DQotCQkJZ290byBsb29wOw0KLQ0KLQkJQ0FTRTUoIDQ0LCA0QywgNTQsIDVDLCA3QyApOiAvLyBMRCByLEhYWQ0KLQkJCVI4KCBkYXRhID4+IDMsIDggKSA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJY2FzZSAweDY0OiAvLyBMRCBIWFksSFhZDQotCQljYXNlIDB4NkQ6IC8vIExEIExYWSxMWFkNCi0JCQlnb3RvIGxvb3A7DQotCQkNCi0JCUNBU0U1KCA0NSwgNEQsIDU1LCA1RCwgN0QgKTogLy8gTEQgcixMWFkNCi0JCQlSOCggZGF0YSA+PiAzLCA4ICkgPSBpeHk7DQotCQkJZ290byBsb29wOw0KLQkJDQotCQlDQVNFNyggNDYsIDRFLCA1NiwgNUUsIDY2LCA2RSwgN0UgKTogLy8gTEQgciwoSVhZK2Rpc3ApDQotCQkJcGMrKzsNCi0JCQlSOCggZGF0YSA+PiAzLCA4ICkgPSBSRUFEX01FTSggSVhZX0RJU1AoIGl4eSwgU0JZVEUoIGRhdGEyICkgKSApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJY2FzZSAweDI2OiAvLyBMRCBIWFksaW1tDQotCQkJcGMrKzsNCi0JCQlnb3RvIGxkX2h4eV9kYXRhOw0KLQkJCQ0KLQkJY2FzZSAweDY1OiAvLyBMRCBIWFksTFhZDQotCQkJZGF0YTIgPSBCWVRFKCBpeHkgKTsNCi0JCQlnb3RvIGxkX2h4eV9kYXRhOw0KLQkJDQotCQlDQVNFNSggNjAsIDYxLCA2MiwgNjMsIDY3ICk6IC8vIExEIEhYWSxyDQotCQkJZGF0YTIgPSBSOCggZGF0YSwgMHg2MCApOw0KLQkJbGRfaHh5X2RhdGE6DQotCQkJaXh5ID0gQllURSggaXh5ICkgKyAoZGF0YTIgPDwgOCk7DQotCQkJZ290byBzZXRfaXh5Ow0KLQkJDQotCQljYXNlIDB4MkU6IC8vIExEIExYWSxpbW0NCi0JCQlwYysrOw0KLQkJCWdvdG8gbGRfbHh5X2RhdGE7DQotCQkJDQotCQljYXNlIDB4NkM6IC8vIExEIExYWSxIWFkNCi0JCQlkYXRhMiA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8gbGRfbHh5X2RhdGE7DQotCQkNCi0JCUNBU0U1KCA2OCwgNjksIDZBLCA2QiwgNkYgKTogLy8gTEQgTFhZLHINCi0JCQlkYXRhMiA9IFI4KCBkYXRhLCAweDY4ICk7DQotCQlsZF9seHlfZGF0YToNCi0JCQlpeHkgPSAoaXh5ICYgMHhGRjAwKSArIGRhdGEyOw0KLQkJc2V0X2l4eToNCi0JCQlpZiAoIG9wY29kZSA9PSAweEREICkNCi0JCQl7DQotCQkJCWl4ID0gaXh5Ow0KLQkJCQlnb3RvIGxvb3A7DQotCQkJfQ0KLQkJCWl5ID0gaXh5Ow0KLQkJCWdvdG8gbG9vcDsNCi0NCi0JCWNhc2UgMHhGOTogLy8gTEQgU1AsSVhZDQotCQkJc3AgPSBpeHk7DQotCQkJZ290byBsb29wOw0KLQkNCi0JCWNhc2UgMHgyMjp7Ly8gTEQgKEFERFIpLElYWQ0KLQkJCWludCBhZGRyID0gR0VUX0FERFIoKTsNCi0JCQlwYyArPSAyOw0KLQkJCVdSSVRFX1dPUkQoIGFkZHIsIGl4eSApOw0KLQkJCWdvdG8gbG9vcDsNCi0JCX0NCi0JCQ0KLQkJY2FzZSAweDIxOiAvLyBMRCBJWFksaW1tDQotCQkJaXh5ID0gR0VUX0FERFIoKTsNCi0JCQlwYyArPSAyOw0KLQkJCWdvdG8gc2V0X2l4eTsNCi0JCQ0KLQkJY2FzZSAweDJBOnsvLyBMRCBJWFksKGFkZHIpDQotCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOw0KLQkJCWl4eSA9IFJFQURfV09SRCggYWRkciApOw0KLQkJCXBjICs9IDI7DQotCQkJZ290byBzZXRfaXh5Ow0KLQkJfQ0KLQkJDQotCS8vIEREL0ZEIENCIHByZWZpeA0KLQkJY2FzZSAweENCOiB7DQotCQkJZGF0YSA9IElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICk7DQotCQkJcGMrKzsNCi0JCQlkYXRhMiA9IFJFQURfQ09ERSggcGMgKTsNCi0JCQlwYysrOw0KLQkJCXN3aXRjaCAoIGRhdGEyICkNCi0JCQl7DQotCQkJY2FzZSAweDA2OiBnb3RvIHJsY19kYXRhX2FkZHI7IC8vIFJMQyAoSVhZKQ0KLQkJCWNhc2UgMHgxNjogZ290byBybF9kYXRhX2FkZHI7ICAvLyBSTCAoSVhZKQ0KLQkJCWNhc2UgMHgyNjogZ290byBzbGFfZGF0YV9hZGRyOyAvLyBTTEEgKElYWSkNCi0JCQljYXNlIDB4MzY6IGdvdG8gc2xsX2RhdGFfYWRkcjsgLy8gU0xMIChJWFkpDQotCQkJY2FzZSAweDBFOiBnb3RvIHJyY19kYXRhX2FkZHI7IC8vIFJSQyAoSVhZKQ0KLQkJCWNhc2UgMHgxRTogZ290byBycl9kYXRhX2FkZHI7ICAvLyBSUiAoSVhZKQ0KLQkJCWNhc2UgMHgyRTogZ290byBzcmFfZGF0YV9hZGRyOyAvLyBTUkEgKElYWSkNCi0JCQljYXNlIDB4M0U6IGdvdG8gc3JsX2RhdGFfYWRkcjsgLy8gU1JMIChJWFkpDQotCQkJDQotCQkJQ0FTRTgoIDQ2LCA0RSwgNTYsIDVFLCA2NiwgNkUsIDc2LCA3RSApOnsvLyBCSVQgYiwoSVhZK2Rpc3ApDQotCQkJCWludCB0ZW1wID0gUkVBRF9NRU0oIGRhdGEgKTsNCi0JCQkJdGVtcCA9IHRlbXAgJiAoMSA8PCAoZGF0YTIgPj4gMyAmIDcpKTsNCi0JCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgSDEwICsgKHRlbXAgJiBTODApOw0KLQkJCQlmbGFncyArPSAodW5zaWduZWQpIC0tdGVtcCA+PiA4ICYgKFo0MCB8IFAwNCk7DQotCQkJCWdvdG8gbG9vcDsNCi0JCQl9DQotCQkJDQotCQkJQ0FTRTgoIDg2LCA4RSwgOTYsIDlFLCBBNiwgQUUsIEI2LCBCRSApOiAvLyBSRVMgYiwoSVhZK2Rpc3ApDQotCQkJQ0FTRTgoIEM2LCBDRSwgRDYsIERFLCBFNiwgRUUsIEY2LCBGRSApOnsvLyBTRVQgYiwoSVhZK2Rpc3ApDQotCQkJCWludCB0ZW1wID0gUkVBRF9NRU0oIGRhdGEgKTsNCi0JCQkJaW50IGJpdCA9IDEgPDwgKGRhdGEyID4+IDMgJiA3KTsNCi0JCQkJdGVtcCB8PSBiaXQ7IC8vIFNFVA0KLQkJCQlpZiAoICEoZGF0YTIgJiAweDQwKSApDQotCQkJCQl0ZW1wIF49IGJpdDsgLy8gUkVTDQotCQkJCVdSSVRFX01FTSggZGF0YSwgdGVtcCApOw0KLQkJCQlnb3RvIGxvb3A7DQotCQkJfQ0KLQkJCQ0KLQkJCWRlZmF1bHQ6DQotCQkJCWRwcmludGYoICJPcGNvZGUgJCUwMlggJENCICQlMDJYIG5vdCBzdXBwb3J0ZWRcbiIsIG9wY29kZSwgZGF0YTIgKTsNCi0JCQkJd2FybmluZyA9IHRydWU7DQotCQkJCWdvdG8gbG9vcDsNCi0JCQl9DQotCQkJYXNzZXJ0KCBmYWxzZSApOw0KLQkJfQ0KLQkJDQotCS8vIElOQy9ERUMNCi0JCWNhc2UgMHgyMzogLy8gSU5DIElYWQ0KLQkJCWl4eSA9IFdPUkQoIGl4eSArIDEgKTsNCi0JCQlnb3RvIHNldF9peHk7DQotCQkNCi0JCWNhc2UgMHgyQjogLy8gREVDIElYWQ0KLQkJCWl4eSA9IFdPUkQoIGl4eSAtIDEgKTsNCi0JCQlnb3RvIHNldF9peHk7DQotCQkNCi0JCWNhc2UgMHgzNDogLy8gSU5DIChJWFkrZGlzcCkNCi0JCQlpeHkgPSBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApOw0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBpeHkgKSArIDE7DQotCQkJV1JJVEVfTUVNKCBpeHksIGRhdGEgKTsNCi0JCQlnb3RvIGluY19zZXRfZmxhZ3M7DQotCQkNCi0JCWNhc2UgMHgzNTogLy8gREVDIChJWFkrZGlzcCkNCi0JCQlpeHkgPSBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApOw0KLQkJCXBjKys7DQotCQkJZGF0YSA9IFJFQURfTUVNKCBpeHkgKSAtIDE7DQotCQkJV1JJVEVfTUVNKCBpeHksIGRhdGEgKTsNCi0JCQlnb3RvIGRlY19zZXRfZmxhZ3M7DQotCQkNCi0JCWNhc2UgMHgyNDogLy8gSU5DIEhYWQ0KLQkJCWl4eSA9IFdPUkQoIGl4eSArIDB4MTAwICk7DQotCQkJZGF0YSA9IGl4eSA+PiA4Ow0KLQkJCWdvdG8gaW5jX3h5X2NvbW1vbjsNCi0JCQ0KLQkJY2FzZSAweDJDOiAvLyBJTkMgTFhZDQotCQkJZGF0YSA9IEJZVEUoIGl4eSArIDEgKTsNCi0JCQlpeHkgPSAoaXh5ICYgMHhGRjAwKSArIGRhdGE7DQotCQlpbmNfeHlfY29tbW9uOg0KLQkJCWlmICggb3Bjb2RlID09IDB4REQgKQ0KLQkJCXsNCi0JCQkJaXggPSBpeHk7DQotCQkJCWdvdG8gaW5jX3NldF9mbGFnczsNCi0JCQl9DQotCQkJaXkgPSBpeHk7DQotCQkJZ290byBpbmNfc2V0X2ZsYWdzOw0KLQkJDQotCQljYXNlIDB4MjU6IC8vIERFQyBIWFkNCi0JCQlpeHkgPSBXT1JEKCBpeHkgLSAweDEwMCApOw0KLQkJCWRhdGEgPSBpeHkgPj4gODsNCi0JCQlnb3RvIGRlY194eV9jb21tb247DQotCQkNCi0JCWNhc2UgMHgyRDogLy8gREVDIExYWQ0KLQkJCWRhdGEgPSBCWVRFKCBpeHkgLSAxICk7DQotCQkJaXh5ID0gKGl4eSAmIDB4RkYwMCkgKyBkYXRhOw0KLQkJZGVjX3h5X2NvbW1vbjoNCi0JCQlpZiAoIG9wY29kZSA9PSAweEREICkNCi0JCQl7DQotCQkJCWl4ID0gaXh5Ow0KLQkJCQlnb3RvIGRlY19zZXRfZmxhZ3M7DQotCQkJfQ0KLQkJCWl5ID0gaXh5Ow0KLQkJCWdvdG8gZGVjX3NldF9mbGFnczsNCi0JCQ0KLQkvLyBQVVNIL1BPUA0KLQkJY2FzZSAweEU1OiAvLyBQVVNIIElYWQ0KLQkJCWRhdGEgPSBpeHk7DQotCQkJZ290byBwdXNoX2RhdGE7DQotCQkNCi0JCWNhc2UgMHhFMTp7Ly8gUE9QIElYWQ0KLQkJCWl4eSA9IFJFQURfV09SRCggc3AgKTsNCi0JCQlzcCA9IFdPUkQoIHNwICsgMiApOw0KLQkJCWdvdG8gc2V0X2l4eTsNCi0JCX0NCi0JDQotCS8vIE1pc2MNCi0JCQ0KLQkJY2FzZSAweEU5OiAvLyBKUCAoSVhZKQ0KLQkJCXBjID0gaXh5Ow0KLQkJCWdvdG8gbG9vcDsNCi0JCQ0KLQkJY2FzZSAweEUzOnsvLyBFWCAoU1ApLElYWQ0KLQkJCWludCB0ZW1wID0gUkVBRF9XT1JEKCBzcCApOw0KLQkJCVdSSVRFX1dPUkQoIHNwLCBpeHkgKTsNCi0JCQlpeHkgPSB0ZW1wOw0KLQkJCWdvdG8gc2V0X2l4eTsNCi0JCX0NCi0JCQ0KLQkJZGVmYXVsdDoNCi0JCQlkcHJpbnRmKCAiVW5uZWNlc3NhcnkgREQvRkQgcHJlZml4IGVuY291bnRlcmVkXG4iICk7DQotCQkJd2FybmluZyA9IHRydWU7DQotCQkJcGMtLTsNCi0JCQlnb3RvIGxvb3A7DQotCQl9DQotCQlhc3NlcnQoIGZhbHNlICk7DQotCX0NCi0JDQotCX0NCi0JZHByaW50ZiggIlVuaGFuZGxlZCBtYWluIG9wY29kZTogJCUwMlhcbiIsIG9wY29kZSApOw0KLQlhc3NlcnQoIGZhbHNlICk7DQotCQ0KLSNpZmRlZiBJRExFX0FERFINCi1oaXRfaWRsZV9hZGRyOg0KLQlzX3RpbWUgLT0gMTE7DQotCWdvdG8gb3V0X29mX3RpbWU7DQotI2VuZGlmDQotaGFsdDoNCi0Jc190aW1lICY9IDM7IC8vIGluY3JlbWVudCBieSBtdWx0aXBsZSBvZiA0DQotb3V0X29mX3RpbWU6DQotCXBjLS07DQotCQ0KLQlyLmIuZmxhZ3MgPSBmbGFnczsNCi0JUi5peCAgICAgPSBpeDsNCi0JUi5peSAgICAgPSBpeTsNCi0JUi5zcCAgICAgPSBzcDsNCi0JUi5wYyAgICAgPSBwYzsNCi0JUi5iICAgICAgPSByLmI7DQotCQ0KLQljcHUtPmNwdV9zdGF0ZV8uYmFzZSA9IHMuYmFzZTsNCi0JY3B1LT5jcHVfc3RhdGVfLnRpbWUgPSBzX3RpbWU7DQotCWNwdS0+Y3B1X3N0YXRlID0gJmNwdS0+Y3B1X3N0YXRlXzsNCi19DQorLy8gR2FtZV9NdXNpY19FbXUgMC42LXByZS4gaHR0cDovL3d3dy5zbGFjay5uZXQvfmFudC8KKworLy8gTGFzdCB2YWxpZGF0ZWQgd2l0aCB6ZXhhbGwgMjAwOS4xMi4wNS4KKy8vIERvZXNuJ3QgaW1wbGVtZW50IHRoZSBSIHJlZ2lzdGVyIG9yIGltbWVkaWF0ZSBpbnRlcnJ1cHQgYWZ0ZXIgRUkuCisvLyBBZGRyZXNzIHdyYXAtYXJvdW5kIGlzbid0IGNvbXBsZXRlbHkgY29ycmVjdCwgYnV0IGlzIHByZXZlbnRlZCBmcm9tIGNyYXNoaW5nIGVtdWxhdG9yLgorLy8gMTYtYml0IG1lbW9yeSBhY2Nlc3NlcyBhcmUgbWFkZSBkaXJlY3RseSB0byBtYXBwZWQgbWVtb3J5LCBpbnN0ZWFkIG9mIHVzaW5nIG1hY3JvLgorCisjaWYgMAorLyogRGVmaW5lIHRoZXNlIG1hY3JvcyBpbiB0aGUgc291cmNlIGZpbGUgYmVmb3JlICNpbmNsdWRpbmcgdGhpcyBmaWxlLgorLSBQYXJhbWV0ZXJzIG1pZ2h0IGJlIGV4cHJlc3Npb25zLCBzbyB0aGV5IGFyZSBiZXN0IGV2YWx1YXRlZCBvbmx5IG9uY2UsCit0aG91Z2ggdGhleSBORVZFUiBoYXZlIHNpZGUtZWZmZWN0cywgc28gbXVsdGlwbGUgZXZhbHVhdGlvbiBpcyBPSy4KKy0gT3V0cHV0IHBhcmFtZXRlcnMgbWlnaHQgYmUgYSBtdWx0aXBsZS1hc3NpZ25tZW50IGV4cHJlc3Npb24gbGlrZSAiYT14IiwKK3NvIHRoZXkgbXVzdCBOT1QgYmUgcGFyZW50aGVzaXplZC4KKy0gRXhjZXB0IHdoZXJlIG5vdGVkLCB0aW1lKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHdpbGwgTk9UIHdvcmsKK2NvcnJlY3RseSBpbnNpZGUgYSBtYWNyby4gVElNRSgpIGlzIGFsd2F5cyBjb3JyZWN0LCBhbmQgYmV0d2VlbiBGTFVTSF9USU1FKCkgYW5kCitDQUNIRV9USU1FKCkgdGhlIG5vcm1hbCB0aW1lIGNoYW5naW5nIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZC4KKy0gTWFjcm9zICJyZXR1cm5pbmciIHZvaWQgbWF5IHVzZSBhIHt9IHN0YXRlbWVudCBibG9jay4gKi8KKworCS8vIDAgPD0gYWRkciA8PSAweEZGRkYgKyAweDEwMAorCS8vIE9wdGlvbmFsOyBkZWZhdWx0IHVzZXMgd2hhdGV2ZXIgd2FzIHNldCB3aXRoIG1hcF9tZW0oKQorCWludCAgUkVBRF9NRU0oICBhZGRyX3QgKTsKKwl2b2lkIFdSSVRFX01FTSggYWRkcl90LCBpbnQgZGF0YSApOworCQorCS8vIDAgPD0gcG9ydCA8PSAweEZGRkYgKGFwcGFyZW50bHkgdXBwZXIgOCBiaXRzIGFyZSBvdXRwdXQgYnkgaGFyZHdhcmUpCisJdm9pZCBPVVRfUE9SVCggaW50IHBvcnQsIGludCBkYXRhICk7CisJaW50ICBJTl9QT1JUICAgaW50IHBvcnQgKTsKKwkKKwkvLyBSZWZlcmVuY2UgdG8gWjgwX0NwdSBvYmplY3QgdXNlZCBmb3IgZW11bGF0aW9uCisJI2RlZmluZSBDUFUgY3B1CisJCisvLyBUaGUgZm9sbG93aW5nIGNhbiBiZSB1c2VkIHdpdGhpbiBtYWNyb3M6CisJCisJLy8gQ3VycmVudCB0aW1lCisJdGltZV90IFRJTUUoKTsKKwkKKwkvLyBBbGxvd3MgdXNlIG9mIHRpbWUgZnVuY3Rpb25zCisJdm9pZCBGTFVTSF9USU1FKCk7CisJCisJLy8gTXVzdCBiZSB1c2VkIGJlZm9yZSBlbmQgb2YgbWFjcm8gaWYgRkxVU0hfVElNRSgpIHdhcyB1c2VkIGVhcmxpZXIKKwl2b2lkIENBQ0hFX1RJTUUoKTsKKworLy8gQ29uZmlndXJhdGlvbiAob3B0aW9uYWw7IGNvbW1lbnRlZCBiZWhhdmlvciBpZiBkZWZpbmVkKQorCQorCS8vIE9wdGltaXplcyBhcyBpZiBtYXBfbWVtKCAwLCAweDEwMDAwLCBGTEFUX01FTSwgRkxBVF9NRU0gKSBpcyBhbHdheXMgaW4gZWZmZWN0CisJI2RlZmluZSBGTEFUX01FTSBteV9tZW1fYXJyYXkKKwkKKwkvLyBJZiBSU1QgNyAoJEZGKSBpcyBlbmNvdW50ZXJlZCBhbmQgUEMgPSBJRExFX0FERFIsIHN0b3BzIGV4ZWN1dGlvbgorCSNkZWZpbmUgSURMRV9BRERSIDB4MTIzNAorCQorCS8vIEV4cGFuZGVkIGp1c3QgYmVmb3JlIGJlZ2lubmluZyBvZiBjb2RlLCB0byBoZWxwIGRlYnVnZ2VyCisJI2RlZmluZSBDUFVfQkVHSU4gdm9pZCBteV9ydW5fY3B1KCkgeworCQorI2VuZGlmCisKKy8qIENvcHlyaWdodCAoQykgMjAwNi0yMDA4IFNoYXkgR3JlZW4uIFRoaXMgbW9kdWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdQorY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlcgorR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCit2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gVGhpcworbW9kdWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQorZGV0YWlscy4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbW9kdWxlOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCitJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBICovCisKKyNpZmRlZiBDUFVfQkVHSU4KKwlDUFVfQkVHSU4KKyNlbmRpZgorCisjZGVmaW5lIFIgY3B1LT5yCisKKy8vIGZsYWdzLCBuYW1lZCB3aXRoIGhleCB2YWx1ZSBmb3IgY2xhcml0eQoraW50IGNvbnN0IFM4MCA9IDB4ODA7CitpbnQgY29uc3QgWjQwID0gMHg0MDsKK2ludCBjb25zdCBGMjAgPSAweDIwOworaW50IGNvbnN0IEgxMCA9IDB4MTA7CitpbnQgY29uc3QgRjA4ID0gMHgwODsKK2ludCBjb25zdCBWMDQgPSAweDA0OworaW50IGNvbnN0IFAwNCA9IDB4MDQ7CitpbnQgY29uc3QgTjAyID0gMHgwMjsKK2ludCBjb25zdCBDMDEgPSAweDAxOworCisjZGVmaW5lIFNaMjhQKCBuICkgIGNwdS0+c3pwYyBbbl0KKyNkZWZpbmUgU1oyOFBDKCBuICkgY3B1LT5zenBjIFtuXQorI2RlZmluZSBTWjI4QyggbiApICAoY3B1LT5zenBjIFtuXSAmIH5QMDQpCisjZGVmaW5lIFNaMjgoIG4gKSAgIFNaMjhDKCBuICkKKworI2RlZmluZSBTRVRfUiggbiApICAodm9pZCkgKFIuciA9IG4pCisjZGVmaW5lIEdFVF9SKCkgICAgIChSLnIpCisKKy8vIFRpbWUKKyNkZWZpbmUgVElNRSgpICAgICAgICAgIChzX3RpbWUgKyBzLmJhc2UpCisjZGVmaW5lIEZMVVNIX1RJTUUoKSAgICB7cy50aW1lID0gc190aW1lO30KKyNkZWZpbmUgQ0FDSEVfVElNRSgpICAgIHtzX3RpbWUgPSBzLnRpbWU7fQorCisvLyBNZW1vcnkKKyNkZWZpbmUgUldfTUVNKCBhZGRyLCBydyApICAgICAgICAgIFJXX1BBR0UoIGFkZHIsIHJ3ICkgW1JXX09GRlNFVCggYWRkciApXQorI2RlZmluZSBSRUFEX0NPREUoIGFkZHIgKSAgICAgICAgICAgUldfTUVNKCBhZGRyLCByZWFkICkKKworI2lmZGVmIEZMQVRfTUVNCisJI2RlZmluZSBSV19QQUdFKCBhZGRyLCBydyApICAgICBGTEFUX01FTQorCSNkZWZpbmUgUldfT0ZGU0VUKCBhZGRyICkgICAgICAgKGFkZHIpCisJI2RlZmluZSBJTlNUUiggb2ZmLCBhZGRyICkgICAgICBSRUFEX0NPREUoIGFkZHIgKQorI2Vsc2UKKwkjZGVmaW5lIFJXX1BBR0UoIGFkZHIsIHJ3ICkgICAgIHMucncgWyh1bnNpZ25lZCkgKGFkZHIpID4+IHBhZ2VfYml0c10KKwkjZGVmaW5lIFJXX09GRlNFVCggYWRkciApICAgICAgIFo4MF9DUFVfT0ZGU0VUKCBhZGRyICkKKwkjZGVmaW5lIElOU1RSKCBvZmYsIGFkZHIgKSAgICAgIGluc3RyIFtvZmZdCisjZW5kaWYKKworI2lmbmRlZiBSRUFEX01FTQorCSNkZWZpbmUgUkVBRF9NRU0oIGFkZHIgKSAgICAgICAgUldfTUVNKCBhZGRyLCByZWFkICkKKyNlbmRpZgorCQorI2lmbmRlZiBXUklURV9NRU0KKwkjZGVmaW5lIFdSSVRFX01FTSggYWRkciwgZGF0YSApIChSV19NRU0oIGFkZHIsIHdyaXRlICkgPSBkYXRhKQorI2VuZGlmCisKKyNkZWZpbmUgUkVBRF9XT1JEKCBhZGRyICkgICAgICAgICAgIEdFVF9MRTE2KCAmUldfTUVNKCBhZGRyLCByZWFkICkgKQorI2RlZmluZSBXUklURV9XT1JEKCBhZGRyLCBkYXRhICkgICAgU0VUX0xFMTYoICZSV19NRU0oIGFkZHIsIHdyaXRlICksIGRhdGEgKQorCisvLyBUcnVuY2F0aW9uCisjZGVmaW5lIEJZVEUoICBuICkgKCh1aW50OF90ICkgKG4pKSAvKiAodW5zaWduZWQpIG4gJiAweEZGICovCisjZGVmaW5lIFNCWVRFKCBuICkgKChpbnQ4X3QgICkgKG4pKSAvKiAoQllURSggbiApIF4gMHg4MCkgLSAweDgwICovCisjZGVmaW5lIFdPUkQoICBuICkgKCh1aW50MTZfdCkgKG4pKSAvKiAodW5zaWduZWQpIG4gJiAweEZGRkYgKi8KKworLy8gTWlzYworI2RlZmluZSBDQVNFNSggYSwgYiwgYywgZCwgZSAgICAgICAgICApIGNhc2UgMHgjI2E6Y2FzZSAweCMjYjpjYXNlIDB4IyNjOmNhc2UgMHgjI2Q6Y2FzZSAweCMjZQorI2RlZmluZSBDQVNFNiggYSwgYiwgYywgZCwgZSwgZiAgICAgICApIENBU0U1KCBhLCBiLCBjLCBkLCBlICAgICAgICk6IGNhc2UgMHgjI2YKKyNkZWZpbmUgQ0FTRTcoIGEsIGIsIGMsIGQsIGUsIGYsIGcgICAgKSBDQVNFNiggYSwgYiwgYywgZCwgZSwgZiAgICApOiBjYXNlIDB4IyNnCisjZGVmaW5lIENBU0U4KCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoICkgQ0FTRTcoIGEsIGIsIGMsIGQsIGUsIGYsIGcgKTogY2FzZSAweCMjaAorCisjaWZkZWYgQkxBUkdHX0JJR19FTkRJQU4KKwkjZGVmaW5lIFI4KCBuLCBvZmZzZXQgKSAoKHIucjhfIC0gb2Zmc2V0KSBbbl0pIAorI2VsaWYgQkxBUkdHX0xJVFRMRV9FTkRJQU4KKwkjZGVmaW5lIFI4KCBuLCBvZmZzZXQgKSAoKHIucjhfIC0gb2Zmc2V0KSBbKG4pIF4gMV0pIAorI2Vsc2UKKwkjZXJyb3IgIkJ5dGUgb3JkZXIgb2YgQ1BVIG11c3QgYmUga25vd24iCisjZW5kaWYKKworI2RlZmluZSBSMTYoIG4sIHNoaWZ0LCBvZmZzZXQgKSAoci5yMTZfIFsoKHVuc2lnbmVkKSAobikgPj4gc2hpZnQpIC0gKG9mZnNldCA+PiBzaGlmdCldKQorCisjZGVmaW5lIEVYKCB4LCB5ICkgXAorCXtcCisJCWludCB0ZW1wID0geDtcCisJCXggPSB5O1wKKwkJeSA9IHRlbXA7XAorCX0KKwkJCisjZGVmaW5lIEVYWCggbmFtZSApIFwKKwlFWCggUi5hbHQubmFtZSwgci5uYW1lICkKKwkJCitib29sIHdhcm5pbmcgPSBmYWxzZTsKK3sKKwlzdHJ1Y3QgY3B1X3N0YXRlX3QgczsKKwkjaWZkZWYgRkxBVF9NRU0KKwkJcy5iYXNlID0gY3B1LT5jcHVfc3RhdGVfLmJhc2U7CisJI2Vsc2UKKwkJcyA9IGNwdS0+Y3B1X3N0YXRlXzsKKwkjZW5kaWYKKwljcHUtPmNwdV9zdGF0ZSA9ICZzOworCQorCQorCXVuaW9uIHJfdCB7CisJCXN0cnVjdCByZWdzX3QgYjsKKwkJc3RydWN0IHBhaXJzX3QgdzsKKwkJYnl0ZSByOF8gWzhdOyAvLyBpbmRleGVkCisJCXVpbnQxNl90IHIxNl8gWzRdOworCX0gcjsKKwlyLmIgPSBSLmI7CisJCisJY3B1X3RpbWVfdCBzX3RpbWUgPSBjcHUtPmNwdV9zdGF0ZV8udGltZTsKKwlpbnQgcGMgPSBSLnBjOworCWludCBzcCA9IFIuc3A7CisJaW50IGl4ID0gUi5peDsgLy8gVE9ETzoga2VlcCBpbiBtZW1vcnkgZm9yIGRpcmVjdCBhY2Nlc3M/CisJaW50IGl5ID0gUi5peTsKKwlpbnQgZmxhZ3MgPSBSLmIuZmxhZ3M7CisJCisJLy9nb3RvIGxvb3A7IC8vIGNvbmZ1c2VzIG9wdGltaXplcgorCXNfdGltZSArPSA3OworCXBjIC09IDI7CisJCitjYWxsX25vdF90YWtlbjoKKwlzX3RpbWUgLT0gNzsgCitqcF9ub3RfdGFrZW46CisJcGMgKz0gMjsKK2xvb3A6CisJCisJY2hlY2soICh1bnNpZ25lZCkgcGMgPCAweDEwMDAwICsgMSApOyAvLyArMSBzbyBlbXVsYXRvciBjYW4gY2F0Y2ggd3JhcC1hcm91bmQKKwljaGVjayggKHVuc2lnbmVkKSBzcCA8IDB4MTAwMDAgKTsKKwljaGVjayggKHVuc2lnbmVkKSBmbGFncyA8IDB4MTAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgaXggPCAweDEwMDAwICk7CisJY2hlY2soICh1bnNpZ25lZCkgaXkgPCAweDEwMDAwICk7CisJCisJYnl0ZSBjb25zdCogaW5zdHIgPSBSV19QQUdFKCBwYywgcmVhZCApOworCQorCWludCBvcGNvZGU7CisJCisJaWYgKCBSV19PRkZTRVQoIH4wICkgPT0gfjAgKQorCXsKKwkJb3Bjb2RlID0gaW5zdHIgW1JXX09GRlNFVCggcGMgKV07CisJCXBjKys7CisJCWluc3RyICs9IFJXX09GRlNFVCggcGMgKTsKKwl9CisJZWxzZQorCXsKKwkJaW5zdHIgKz0gUldfT0ZGU0VUKCBwYyApOworCQlvcGNvZGUgPSAqaW5zdHIrKzsKKwkJcGMrKzsKKwl9CisJCisJc3RhdGljIGJ5dGUgY29uc3QgY2xvY2tfdGFibGUgWzI1NiAqIDJdID0geworCS8vICAgMCAgMSAgMiAgMyAgNCAgNSAgNiAgNyAgOCAgOSAgQSAgQiAgQyAgRCAgRSAgRgorCQkgNCwxMCwgNywgNiwgNCwgNCwgNywgNCwgNCwxMSwgNywgNiwgNCwgNCwgNywgNCwgLy8gMAorCQkgOCwxMCwgNywgNiwgNCwgNCwgNywgNCwxMiwxMSwgNywgNiwgNCwgNCwgNywgNCwgLy8gMQorCQkgNywxMCwxNiwgNiwgNCwgNCwgNywgNCwgNywxMSwxNiwgNiwgNCwgNCwgNywgNCwgLy8gMgorCQkgNywxMCwxMywgNiwxMSwxMSwxMCwgNCwgNywxMSwxMywgNiwgNCwgNCwgNywgNCwgLy8gMworCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNAorCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNQorCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNgorCQkgNywgNywgNywgNywgNywgNywgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gNworCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gOAorCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gOQorCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gQQorCQkgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNywgNCwgLy8gQgorCQkxMSwxMCwxMCwxMCwxNywxMSwgNywxMSwxMSwxMCwxMCwgOCwxNywxNywgNywxMSwgLy8gQworCQkxMSwxMCwxMCwxMSwxNywxMSwgNywxMSwxMSwgNCwxMCwxMSwxNywgOCwgNywxMSwgLy8gRAorCQkxMSwxMCwxMCwxOSwxNywxMSwgNywxMSwxMSwgNCwxMCwgNCwxNywgOCwgNywxMSwgLy8gRQorCQkxMSwxMCwxMCwgNCwxNywxMSwgNywxMSwxMSwgNiwxMCwgNCwxNywgOCwgNywxMSwgLy8gRgorCQkKKwkJLy8gaGlnaCBmb3VyIGJpdHMgYXJlICRFRCB0aW1lIC0gOCwgbG93IGZvdXIgYml0cyBhcmUgJERELyRGRCB0aW1lIC0gOAorCQkvLzAgICAgMSAgICAyICAgIDMgICAgNCAgICA1ICAgIDYgICAgNyAgICA4ICAgIDkgICAgQSAgICBCICAgIEMgICAgRCAgICBFICAgIEYKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHgwMCwweDA2LDB4MEMsMHgwMiwweDAwLDB4MDAsMHgwMywweDAwLDB4MDAsMHgwNywweDBDLDB4MDIsMHgwMCwweDAwLDB4MDMsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDBGLDB4MEYsMHgwQiwweDAwLDB4MDAsMHgwNywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHg0MCwweDQwLDB4NzAsMHhDMCwweDAwLDB4NjAsMHgwQiwweDEwLDB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHgxMCwKKwkJMHg0MCwweDQwLDB4NzAsMHhDMCwweDAwLDB4NjAsMHgwQiwweDEwLDB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHgxMCwKKwkJMHg0MCwweDQwLDB4NzAsMHhDMCwweDAwLDB4NjAsMHgwQiwweEEwLDB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHhBMCwKKwkJMHg0QiwweDRCLDB4N0IsMHhDQiwweDBCLDB4NkIsMHgwMCwweDBCLDB4NDAsMHg0MCwweDcwLDB4QzAsMHgwMCwweDYwLDB4MEIsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwQiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MEIsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwQiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MEIsMHgwMCwKKwkJMHg4MCwweDgwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwQiwweDAwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MEIsMHgwMCwKKwkJMHhEMCwweEQwLDB4RDAsMHhEMCwweDAwLDB4MDAsMHgwQiwweDAwLDB4RDAsMHhEMCwweEQwLDB4RDAsMHgwMCwweDAwLDB4MEIsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MEYsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHgwMCwweDA2LDB4MDAsMHgwRiwweDAwLDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwkJMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKKwl9OworCQorCWlmICggc190aW1lID49IDAgKQorCQlnb3RvIG91dF9vZl90aW1lOworCXNfdGltZSArPSBjbG9ja190YWJsZSBbb3Bjb2RlXTsKKwkKKwkjaWZkZWYgWjgwX0NQVV9MT0dfSAorCQkvL2xvZ19vcGNvZGUoIG9wY29kZSwgUkVBRF9DT0RFKCBwYyApICk7CisJCXo4MF9jcHVfbG9nKCAibG9nLnR4dCIsIHBjIC0gMSwgb3Bjb2RlLCBSRUFEX0NPREUoIHBjICksCisJCQkJUkVBRF9DT0RFKCBwYyArIDEgKSwgUkVBRF9DT0RFKCBwYyArIDIgKSApOworCQl6ODBfbG9nX3JlZ3MoIHIuYi5hLCByLncuYmMsIHIudy5kZSwgci53LmhsLCBzcCwgaXgsIGl5ICk7CisJI2VuZGlmCisJCisjZGVmaW5lIEdFVF9BRERSKCkgIEdFVF9MRTE2KCAmSU5TVFIoIDAsIHBjICkgKQorCisJaW50IGRhdGE7CisJZGF0YSA9IElOU1RSKCAwLCBwYyApOworCQorCXN3aXRjaCAoIG9wY29kZSApCisJeworLy8gQ29tbW9uCisKKwljYXNlIDB4MDA6IC8vIE5PUAorCUNBU0U3KCA0MCwgNDksIDUyLCA1QiwgNjQsIDZELCA3RiApOiAvLyBMRCBCLEIgZXRjLgorCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDA4OnsvLyBFWCBBRixBRicKKwkJRVhYKCBiLmEgKTsKKwkJRVgoIFIuYWx0LmIuZmxhZ3MsIGZsYWdzICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweEQzOiAvLyBPVVQgKGltbSksQQorCQlwYysrOworCQlPVVRfUE9SVCggKGRhdGEgKyByLmIuYSAqIDB4MTAwKSwgci5iLmEgKTsKKwkJZ290byBsb29wOworCQkKKwljYXNlIDB4MkU6IC8vIExEIEwsaW1tCisJCXBjKys7CisJCXIuYi5sID0gZGF0YTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHgzRTogLy8gTEQgQSxpbW0KKwkJcGMrKzsKKwkJci5iLmEgPSBkYXRhOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDNBOnsvLyBMRCBBLChhZGRyKQorCQlpbnQgYWRkciA9IEdFVF9BRERSKCk7CisJCXBjICs9IDI7CisJCXIuYi5hID0gUkVBRF9NRU0oIGFkZHIgKTsKKwkJZ290byBsb29wOworCX0KKwkKKy8vIENvbmRpdGlvbmFsCisKKyNkZWZpbmUgWkVSTyAgICAoZmxhZ3MgJiBaNDApCisjZGVmaW5lIENBUlJZICAgKGZsYWdzICYgQzAxKQorI2RlZmluZSBFVkVOICAgIChmbGFncyAmIFAwNCkKKyNkZWZpbmUgTUlOVVMgICAoZmxhZ3MgJiBTODApCisKKy8vIEpSCisvLyBUT0RPOiBtb3JlIGVmZmljaWVudCB3YXkgdG8gaGFuZGxlIG5lZ2F0aXZlIGJyYW5jaCB0aGF0IHdyYXBzIFBDIGFyb3VuZAorI2RlZmluZSBKUl8oIGNvbmQsIGNsb2NrcyApIHtcCisJcGMrKztcCisJaWYgKCAhKGNvbmQpIClcCisJCWdvdG8gbG9vcDtcCisJaW50IG9mZnNldCA9IFNCWVRFKCBkYXRhICk7XAorCXBjID0gV09SRCggcGMgKyBvZmZzZXQgKTtcCisJc190aW1lICs9IGNsb2NrcztcCisJZ290byBsb29wO1wKK30KKworI2RlZmluZSBKUiggY29uZCApIEpSXyggY29uZCwgNSApCisJCisJY2FzZSAweDIwOiBKUiggIVpFUk8gICkgLy8gSlIgTlosZGlzcAorCWNhc2UgMHgyODogSlIoICBaRVJPICApIC8vIEpSIFosZGlzcAorCWNhc2UgMHgzMDogSlIoICFDQVJSWSApIC8vIEpSIE5DLGRpc3AKKwljYXNlIDB4Mzg6IEpSKCAgQ0FSUlkgKSAvLyBKUiBDLGRpc3AKKwljYXNlIDB4MTg6IEpSXyggdHJ1ZSwwKSAvLyBKUiBkaXNwCisKKwljYXNlIDB4MTA6ey8vIERKTlogZGlzcAorCQlpbnQgdGVtcCA9IHIuYi5iIC0gMTsKKwkJci5iLmIgPSB0ZW1wOworCQlKUiggdGVtcCApCisJfQorCQorLy8gSlAKKyNkZWZpbmUgSlAoIGNvbmQgKSBcCisJaWYgKCAhKGNvbmQpIClcCisJCWdvdG8ganBfbm90X3Rha2VuO1wKKwlwYyA9IEdFVF9BRERSKCk7XAorCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4QzI6IEpQKCAhWkVSTyAgKSAvLyBKUCBOWixhZGRyCisJY2FzZSAweENBOiBKUCggIFpFUk8gICkgLy8gSlAgWixhZGRyCisJY2FzZSAweEQyOiBKUCggIUNBUlJZICkgLy8gSlAgTkMsYWRkcgorCWNhc2UgMHhEQTogSlAoICBDQVJSWSApIC8vIEpQIEMsYWRkcgorCWNhc2UgMHhFMjogSlAoICFFVkVOICApIC8vIEpQIFBPLGFkZHIKKwljYXNlIDB4RUE6IEpQKCAgRVZFTiAgKSAvLyBKUCBQRSxhZGRyCisJY2FzZSAweEYyOiBKUCggIU1JTlVTICkgLy8gSlAgUCxhZGRyCisJY2FzZSAweEZBOiBKUCggIE1JTlVTICkgLy8gSlAgTSxhZGRyCisJCisJY2FzZSAweEMzOiAvLyBKUCBhZGRyCisJCXBjID0gR0VUX0FERFIoKTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHhFOTogLy8gSlAgSEwKKwkJcGMgPSByLncuaGw7CisJCWdvdG8gbG9vcDsKKworLy8gUkVUCisjZGVmaW5lIFJFVCggY29uZCApIFwKKwlpZiAoIGNvbmQgKVwKKwkJZ290byByZXRfdGFrZW47XAorCXNfdGltZSAtPSA2O1wKKwlnb3RvIGxvb3A7CisJCisJY2FzZSAweEMwOiBSRVQoICFaRVJPICApIC8vIFJFVCBOWgorCWNhc2UgMHhDODogUkVUKCAgWkVSTyAgKSAvLyBSRVQgWgorCWNhc2UgMHhEMDogUkVUKCAhQ0FSUlkgKSAvLyBSRVQgTkMKKwljYXNlIDB4RDg6IFJFVCggIENBUlJZICkgLy8gUkVUIEMKKwljYXNlIDB4RTA6IFJFVCggIUVWRU4gICkgLy8gUkVUIFBPCisJY2FzZSAweEU4OiBSRVQoICBFVkVOICApIC8vIFJFVCBQRQorCWNhc2UgMHhGMDogUkVUKCAhTUlOVVMgKSAvLyBSRVQgUAorCWNhc2UgMHhGODogUkVUKCAgTUlOVVMgKSAvLyBSRVQgTQorCQorCWNhc2UgMHhDOTogLy8gUkVUCisJcmV0X3Rha2VuOgorCQlwYyA9IFJFQURfV09SRCggc3AgKTsKKwkJc3AgPSBXT1JEKCBzcCArIDIgKTsKKwkJZ290byBsb29wOworCQorLy8gQ0FMTAorI2RlZmluZSBDQUxMKCBjb25kICkgXAorCWlmICggY29uZCApXAorCQlnb3RvIGNhbGxfdGFrZW47XAorCWdvdG8gY2FsbF9ub3RfdGFrZW47CisKKwljYXNlIDB4QzQ6IENBTEwoICFaRVJPICApIC8vIENBTEwgTlosYWRkcgorCWNhc2UgMHhDQzogQ0FMTCggIFpFUk8gICkgLy8gQ0FMTCBaLGFkZHIKKwljYXNlIDB4RDQ6IENBTEwoICFDQVJSWSApIC8vIENBTEwgTkMsYWRkcgorCWNhc2UgMHhEQzogQ0FMTCggIENBUlJZICkgLy8gQ0FMTCBDLGFkZHIKKwljYXNlIDB4RTQ6IENBTEwoICFFVkVOICApIC8vIENBTEwgUE8sYWRkcgorCWNhc2UgMHhFQzogQ0FMTCggIEVWRU4gICkgLy8gQ0FMTCBQRSxhZGRyCisJY2FzZSAweEY0OiBDQUxMKCAhTUlOVVMgKSAvLyBDQUxMIFAsYWRkcgorCWNhc2UgMHhGQzogQ0FMTCggIE1JTlVTICkgLy8gQ0FMTCBNLGFkZHIKKwkKKwljYXNlIDB4Q0Q6ey8vIENBTEwgYWRkcgorCWNhbGxfdGFrZW46IHsKKwkJCWludCBhZGRyID0gcGMgKyAyOworCQkJcGMgPSBHRVRfQUREUigpOworCQkJc3AgPSBXT1JEKCBzcCAtIDIgKTsKKwkJCVdSSVRFX1dPUkQoIHNwLCBhZGRyICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwl9CisJCisJY2FzZSAweEZGOiAvLyBSU1QKKwkJI2lmZGVmIElETEVfQUREUgorCQkJaWYgKCBwYyA9PSBJRExFX0FERFIgKyAxICkKKwkJCQlnb3RvIGhpdF9pZGxlX2FkZHI7CisJCSNlbHNlCisJCQlpZiAoIHBjID4gMHgxMDAwMCApCisJCQl7CisJCQkJcGMgPSBXT1JEKCBwYyAtIDEgKTsKKwkJCQlzX3RpbWUgLT0gMTE7CisJCQkJZ290byBsb29wOworCQkJfQorCQkjZW5kaWYKKwlDQVNFNyggQzcsIENGLCBENywgREYsIEU3LCBFRiwgRjcgKToKKwkJZGF0YSA9IHBjOworCQlwYyA9IG9wY29kZSAmIDB4Mzg7CisJCSNpZmRlZiBSU1RfQkFTRQorCQkJcGMgKz0gUlNUX0JBU0U7CisJCSNlbmRpZgorCQlnb3RvIHB1c2hfZGF0YTsKKworLy8gUFVTSC9QT1AKKwljYXNlIDB4RjU6IC8vIFBVU0ggQUYKKwkJZGF0YSA9IHIuYi5hICogMHgxMDB1ICsgZmxhZ3M7CisJCWdvdG8gcHVzaF9kYXRhOworCQorCWNhc2UgMHhDNTogLy8gUFVTSCBCQworCWNhc2UgMHhENTogLy8gUFVTSCBERQorCWNhc2UgMHhFNTogLy8gUFVTSCBITAorCQlkYXRhID0gUjE2KCBvcGNvZGUsIDQsIDB4QzUgKTsKKwlwdXNoX2RhdGE6CisJCXNwID0gV09SRCggc3AgLSAyICk7CisJCVdSSVRFX1dPUkQoIHNwLCBkYXRhICk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4RjE6IC8vIFBPUCBBRgorCQlmbGFncyA9IFJFQURfTUVNKCBzcCApOworCQlyLmIuYSA9IFJFQURfTUVNKCAoc3AgKyAxKSApOworCQlzcCA9IFdPUkQoIHNwICsgMiApOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEMxOiAvLyBQT1AgQkMKKwljYXNlIDB4RDE6IC8vIFBPUCBERQorCWNhc2UgMHhFMTogLy8gUE9QIEhMCisJCVIxNiggb3Bjb2RlLCA0LCAweEMxICkgPSBSRUFEX1dPUkQoIHNwICk7CisJCXNwID0gV09SRCggc3AgKyAyICk7CisJCWdvdG8gbG9vcDsKKwkKKy8vIEFEQy9BREQvU0JDL1NVQgorCWNhc2UgMHg5NjogLy8gU1VCIChITCkKKwljYXNlIDB4ODY6IC8vIEFERCAoSEwpCisJCWZsYWdzICY9IH5DMDE7CisJY2FzZSAweDlFOiAvLyBTQkMgKEhMKQorCWNhc2UgMHg4RTogLy8gQURDIChITCkKKwkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKTsKKwkJZ290byBhZGNfZGF0YTsKKwkKKwljYXNlIDB4RDY6IC8vIFNVQiBBLGltbQorCWNhc2UgMHhDNjogLy8gQUREIGltbQorCQlmbGFncyAmPSB+QzAxOworCWNhc2UgMHhERTogLy8gU0JDIEEsaW1tCisJY2FzZSAweENFOiAvLyBBREMgaW1tCisJCXBjKys7CisJCWdvdG8gYWRjX2RhdGE7CisJCisJQ0FTRTcoIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk3ICk6IC8vIFNVQiByCisJQ0FTRTcoIDgwLCA4MSwgODIsIDgzLCA4NCwgODUsIDg3ICk6IC8vIEFERCByCisJCWZsYWdzICY9IH5DMDE7CisJQ0FTRTcoIDk4LCA5OSwgOUEsIDlCLCA5QywgOUQsIDlGICk6IC8vIFNCQyByCisJQ0FTRTcoIDg4LCA4OSwgOEEsIDhCLCA4QywgOEQsIDhGICk6IC8vIEFEQyByCisJCWRhdGEgPSBSOCggb3Bjb2RlICYgNywgMCApOworCWFkY19kYXRhOiB7CisJCWludCByZXN1bHQgPSBkYXRhICsgKGZsYWdzICYgQzAxKTsKKwkJZGF0YSBePSByLmIuYTsKKwkJZmxhZ3MgPSBvcGNvZGUgPj4gMyAmIE4wMjsgLy8gYml0IDQgaXMgc2V0IGluIHN1YnRyYWN0IG9wY29kZXMKKwkJaWYgKCBmbGFncyApCisJCQlyZXN1bHQgPSAtcmVzdWx0OworCQlyZXN1bHQgKz0gci5iLmE7CisJCWRhdGEgXj0gcmVzdWx0OworCQlmbGFncyArPShkYXRhICYgSDEwKSArCisJCQkJKChkYXRhICsgMHg4MCkgPj4gNiAmIFYwNCkgKworCQkJCVNaMjhDKCByZXN1bHQgJiAweDFGRiApOworCQlyLmIuYSA9IHJlc3VsdDsKKwkJZ290byBsb29wOworCX0KKworLy8gQ1AKKwljYXNlIDB4QkU6IC8vIENQIChITCkKKwkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKTsKKwkJZ290byBjcF9kYXRhOworCQorCWNhc2UgMHhGRTogLy8gQ1AgaW1tCisJCXBjKys7CisJCWdvdG8gY3BfZGF0YTsKKwkKKwlDQVNFNyggQjgsIEI5LCBCQSwgQkIsIEJDLCBCRCwgQkYgKTogLy8gQ1AgcgorCQlkYXRhID0gUjgoIG9wY29kZSwgMHhCOCApOworCWNwX2RhdGE6IHsKKwkJaW50IHJlc3VsdCA9IHIuYi5hIC0gZGF0YTsKKwkJZmxhZ3MgPSBOMDIgKyAoZGF0YSAmIChGMjAgfCBGMDgpKSArIChyZXN1bHQgPj4gOCAmIEMwMSk7CisJCWRhdGEgXj0gci5iLmE7CisJCWZsYWdzICs9KCgocmVzdWx0IF4gci5iLmEpICYgZGF0YSkgPj4gNSAmIFYwNCkgKworCQkJCSgoKGRhdGEgJiBIMTApIF4gcmVzdWx0KSAmIChTODAgfCBIMTApKTsKKwkJaWYgKCBCWVRFKCByZXN1bHQgKSApCisJCQlnb3RvIGxvb3A7CisJCWZsYWdzICs9IFo0MDsKKwkJZ290byBsb29wOworCX0KKwkKKy8vIEFERCBITCxyLncKKwkKKwljYXNlIDB4Mzk6IC8vIEFERCBITCxTUAorCQlkYXRhID0gc3A7CisJCWdvdG8gYWRkX2hsX2RhdGE7CisJCisJY2FzZSAweDA5OiAvLyBBREQgSEwsQkMKKwljYXNlIDB4MTk6IC8vIEFERCBITCxERQorCWNhc2UgMHgyOTogLy8gQUREIEhMLEhMCisJCWRhdGEgPSBSMTYoIG9wY29kZSwgNCwgMHgwOSApOworCWFkZF9obF9kYXRhOiB7CisJCWludCBzdW0gPSByLncuaGwgKyBkYXRhOworCQlkYXRhIF49IHIudy5obDsKKwkJci53LmhsID0gc3VtOworCQlmbGFncyA9IChmbGFncyAmIChTODAgfCBaNDAgfCBWMDQpKSArCisJCQkJKHN1bSA+PiAxNikgKworCQkJCShzdW0gPj4gOCAmIChGMjAgfCBGMDgpKSArCisJCQkJKChkYXRhIF4gc3VtKSA+PiA4ICYgSDEwKTsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4Mjc6ey8vIERBQQorCQlpbnQgYSA9IHIuYi5hOworCQlpZiAoIGEgPiAweDk5ICkKKwkJCWZsYWdzIHw9IEMwMTsKKwkJCisJCWludCBhZGp1c3QgPSAweDYwICogKGZsYWdzICYgQzAxKTsKKwkJCisJCWlmICggZmxhZ3MgJiBIMTAgfHwgKGEgJiAweDBGKSA+IDkgKQorCQkJYWRqdXN0ICs9IDB4MDY7CisJCQorCQlpZiAoIGZsYWdzICYgTjAyICkKKwkJCWFkanVzdCA9IC1hZGp1c3Q7CisJCWEgKz0gYWRqdXN0OworCQkKKwkJZmxhZ3MgPSAoZmxhZ3MgJiAoQzAxIHwgTjAyKSkgKworCQkJCSgoci5iLmEgXiBhKSAmIEgxMCkgKworCQkJCVNaMjhQKCBCWVRFKCBhICkgKTsKKwkJci5iLmEgPSBhOworCQlnb3RvIGxvb3A7CisJfQorCQorLy8gSU5DL0RFQworCWNhc2UgMHgzNDogLy8gSU5DIChITCkKKwkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKSArIDE7CisJCVdSSVRFX01FTSggci53LmhsLCBkYXRhICk7CisJCWdvdG8gaW5jX3NldF9mbGFnczsKKwkKKwlDQVNFNyggMDQsIDBDLCAxNCwgMUMsIDI0LCAyQywgM0MgKTogLy8gSU5DIHIKKwkJZGF0YSA9ICsrUjgoIG9wY29kZSA+PiAzLCAwICk7CisJaW5jX3NldF9mbGFnczoKKwkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsKKwkJCQkoKChkYXRhICYgMHgwRikgLSAxKSAmIEgxMCkgKworCQkJCVNaMjgoIEJZVEUoIGRhdGEgKSApOworCQlpZiAoIGRhdGEgIT0gMHg4MCApCisJCQlnb3RvIGxvb3A7CisJCWZsYWdzICs9IFYwNDsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHgzNTogLy8gREVDIChITCkKKwkJZGF0YSA9IFJFQURfTUVNKCByLncuaGwgKSAtIDE7CisJCVdSSVRFX01FTSggci53LmhsLCBkYXRhICk7CisJCWdvdG8gZGVjX3NldF9mbGFnczsKKwkKKwlDQVNFNyggMDUsIDBELCAxNSwgMUQsIDI1LCAyRCwgM0QgKTogLy8gREVDIHIKKwkJZGF0YSA9IC0tUjgoIG9wY29kZSA+PiAzLCAwICk7CisJZGVjX3NldF9mbGFnczoKKwkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgTjAyICsKKwkJCQkoKChkYXRhICYgMHgwRikgKyAxKSAmIEgxMCkgKworCQkJCVNaMjgoIEJZVEUoIGRhdGEgKSApOworCQlpZiAoIGRhdGEgIT0gMHg3RiApCisJCQlnb3RvIGxvb3A7CisJCWZsYWdzICs9IFYwNDsKKwkJZ290byBsb29wOworCisJY2FzZSAweDAzOiAvLyBJTkMgQkMKKwljYXNlIDB4MTM6IC8vIElOQyBERQorCWNhc2UgMHgyMzogLy8gSU5DIEhMCisJCVIxNiggb3Bjb2RlLCA0LCAweDAzICkrKzsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHgzMzogLy8gSU5DIFNQCisJCXNwID0gV09SRCggc3AgKyAxICk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4MEI6IC8vIERFQyBCQworCWNhc2UgMHgxQjogLy8gREVDIERFCisJY2FzZSAweDJCOiAvLyBERUMgSEwKKwkJUjE2KCBvcGNvZGUsIDQsIDB4MEIgKS0tOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDNCOiAvLyBERUMgU1AKKwkJc3AgPSBXT1JEKCBzcCAtIDEgKTsKKwkJZ290byBsb29wOworCQorLy8gQU5ECisJY2FzZSAweEE2OiAvLyBBTkQgKEhMKQorCQlkYXRhID0gUkVBRF9NRU0oIHIudy5obCApOworCQlnb3RvIGFuZF9kYXRhOworCQorCWNhc2UgMHhFNjogLy8gQU5EIGltbQorCQlwYysrOworCQlnb3RvIGFuZF9kYXRhOworCQorCUNBU0U3KCBBMCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNyApOiAvLyBBTkQgcgorCQlkYXRhID0gUjgoIG9wY29kZSwgMHhBMCApOworCWFuZF9kYXRhOgorCQlyLmIuYSAmPSBkYXRhOworCQlmbGFncyA9IFNaMjhQKCByLmIuYSApICsgSDEwOworCQlnb3RvIGxvb3A7CisJCisvLyBPUgorCWNhc2UgMHhCNjogLy8gT1IgKEhMKQorCQlkYXRhID0gUkVBRF9NRU0oIHIudy5obCApOworCQlnb3RvIG9yX2RhdGE7CisJCisJY2FzZSAweEY2OiAvLyBPUiBpbW0KKwkJcGMrKzsKKwkJZ290byBvcl9kYXRhOworCQorCUNBU0U3KCBCMCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNyApOiAvLyBPUiByCisJCWRhdGEgPSBSOCggb3Bjb2RlLCAweEIwICk7CisJb3JfZGF0YToKKwkJci5iLmEgfD0gZGF0YTsKKwkJZmxhZ3MgPSBTWjI4UCggci5iLmEgKTsKKwkJZ290byBsb29wOworCisvLyBYT1IKKwljYXNlIDB4QUU6IC8vIFhPUiAoSEwpCisJCWRhdGEgPSBSRUFEX01FTSggci53LmhsICk7CisJCWdvdG8geG9yX2RhdGE7CisJCisJY2FzZSAweEVFOiAvLyBYT1IgaW1tCisJCXBjKys7CisJCWdvdG8geG9yX2RhdGE7CisJCisJQ0FTRTcoIEE4LCBBOSwgQUEsIEFCLCBBQywgQUQsIEFGICk6IC8vIFhPUiByCisJCWRhdGEgPSBSOCggb3Bjb2RlLCAweEE4ICk7CisJeG9yX2RhdGE6CisJCXIuYi5hIF49IGRhdGE7CisJCWZsYWdzID0gU1oyOFAoIHIuYi5hICk7CisJCWdvdG8gbG9vcDsKKworLy8gTEQKKwlDQVNFNyggNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzcgKTogLy8gTEQgKEhMKSxyCisJCVdSSVRFX01FTSggci53LmhsLCBSOCggb3Bjb2RlLCAweDcwICkgKTsKKwkJZ290byBsb29wOworCQorCUNBU0U2KCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ3ICk6IC8vIExEIEIscgorCUNBU0U2KCA0OCwgNEEsIDRCLCA0QywgNEQsIDRGICk6IC8vIExEIEMscgorCUNBU0U2KCA1MCwgNTEsIDUzLCA1NCwgNTUsIDU3ICk6IC8vIExEIEQscgorCUNBU0U2KCA1OCwgNTksIDVBLCA1QywgNUQsIDVGICk6IC8vIExEIEUscgorCUNBU0U2KCA2MCwgNjEsIDYyLCA2MywgNjUsIDY3ICk6IC8vIExEIEgscgorCUNBU0U2KCA2OCwgNjksIDZBLCA2QiwgNkMsIDZGICk6IC8vIExEIEwscgorCUNBU0U2KCA3OCwgNzksIDdBLCA3QiwgN0MsIDdEICk6IC8vIExEIEEscgorCQlSOCggb3Bjb2RlID4+IDMgJiA3LCAwICkgPSBSOCggb3Bjb2RlICYgNywgMCApOworCQlnb3RvIGxvb3A7CisJCisJQ0FTRTUoIDA2LCAwRSwgMTYsIDFFLCAyNiApOiAvLyBMRCByLGltbQorCQlSOCggb3Bjb2RlID4+IDMsIDAgKSA9IGRhdGE7CisJCXBjKys7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4MzY6IC8vIExEIChITCksaW1tCisJCXBjKys7CisJCVdSSVRFX01FTSggci53LmhsLCBkYXRhICk7CisJCWdvdG8gbG9vcDsKKwkKKwlDQVNFNyggNDYsIDRFLCA1NiwgNUUsIDY2LCA2RSwgN0UgKTogLy8gTEQgciwoSEwpCisJCVI4KCBvcGNvZGUgPj4gMywgOCApID0gUkVBRF9NRU0oIHIudy5obCApOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweDAxOiAvLyBMRCByLncsaW1tCisJY2FzZSAweDExOgorCWNhc2UgMHgyMToKKwkJUjE2KCBvcGNvZGUsIDQsIDB4MDEgKSA9IEdFVF9BRERSKCk7CisJCXBjICs9IDI7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4MzE6IC8vIExEIHNwLGltbQorCQlzcCA9IEdFVF9BRERSKCk7CisJCXBjICs9IDI7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4MkE6ey8vIExEIEhMLChhZGRyKQorCQlpbnQgYWRkciA9IEdFVF9BRERSKCk7CisJCXBjICs9IDI7CisJCXIudy5obCA9IFJFQURfV09SRCggYWRkciApOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgzMjp7Ly8gTEQgKGFkZHIpLEEKKwkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQlwYyArPSAyOworCQlXUklURV9NRU0oIGFkZHIsIHIuYi5hICk7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweDIyOnsvLyBMRCAoYWRkciksSEwKKwkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQlwYyArPSAyOworCQlXUklURV9XT1JEKCBhZGRyLCByLncuaGwgKTsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4MDI6IC8vIExEIChCQyksQQorCWNhc2UgMHgxMjogLy8gTEQgKERFKSxBCisJCVdSSVRFX01FTSggUjE2KCBvcGNvZGUsIDQsIDB4MDIgKSwgci5iLmEgKTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHgwQTogLy8gTEQgQSwoQkMpCisJY2FzZSAweDFBOiAvLyBMRCBBLChERSkKKwkJci5iLmEgPSBSRUFEX01FTSggUjE2KCBvcGNvZGUsIDQsIDB4MEEgKSApOworCQlnb3RvIGxvb3A7CisJCisJY2FzZSAweEY5OiAvLyBMRCBTUCxITAorCQlzcCA9IHIudy5obDsKKwkJZ290byBsb29wOworCQorLy8gUm90YXRlCisJCisJY2FzZSAweDA3OnsvLyBSTENBCisJCWludCB0ZW1wID0gci5iLmE7CisJCXRlbXAgPSAodGVtcCA8PCAxKSArICh0ZW1wID4+IDcpOworCQlmbGFncyA9IChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQpKSArCisJCQkJKHRlbXAgJiAoRjIwIHwgRjA4IHwgQzAxKSk7CisJCXIuYi5hID0gdGVtcDsKKwkJZ290byBsb29wOworCX0KKwkKKwljYXNlIDB4MEY6ey8vIFJSQ0EKKwkJaW50IHRlbXAgPSByLmIuYTsKKwkJZmxhZ3MgPSAoZmxhZ3MgJiAoUzgwIHwgWjQwIHwgUDA0KSkgKworCQkJCSh0ZW1wICYgQzAxKTsKKwkJdGVtcCA9ICh0ZW1wIDw8IDcpICsgKHRlbXAgPj4gMSk7CisJCWZsYWdzICs9IHRlbXAgJiAoRjIwIHwgRjA4KTsKKwkJci5iLmEgPSB0ZW1wOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgxNzp7Ly8gUkxBCisJCWludCB0ZW1wID0gKHIuYi5hIDw8IDEpICsgKGZsYWdzICYgQzAxKTsKKwkJZmxhZ3MgPSAoZmxhZ3MgJiAoUzgwIHwgWjQwIHwgUDA0KSkgKworCQkJCSh0ZW1wICYgKEYyMCB8IEYwOCkpICsKKwkJCQkodGVtcCA+PiA4KTsKKwkJci5iLmEgPSB0ZW1wOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgxRjp7Ly8gUlJBCisJCWludCB0ZW1wID0gKGZsYWdzIDw8IDcpICsgKHIuYi5hID4+IDEpOworCQlmbGFncyA9IChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQpKSArCisJCQkJKHRlbXAgJiAoRjIwIHwgRjA4KSkgKworCQkJCShyLmIuYSAmIEMwMSk7CisJCXIuYi5hID0gdGVtcDsKKwkJZ290byBsb29wOworCX0KKwkKKy8vIE1pc2MKKwljYXNlIDB4MkY6ey8vIENQTAorCQlpbnQgdGVtcCA9IH5yLmIuYTsKKwkJZmxhZ3MgPSAoZmxhZ3MgJiAoUzgwIHwgWjQwIHwgUDA0IHwgQzAxKSkgKworCQkJCSh0ZW1wICYgKEYyMCB8IEYwOCkpICsKKwkJCQkoSDEwIHwgTjAyKTsKKwkJci5iLmEgPSB0ZW1wOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgzRjp7Ly8gQ0NGCisJCWZsYWdzID0gKChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQgfCBDMDEpKSBeIEMwMSkgKworCQkJCShmbGFncyA8PCA0ICYgSDEwKSArCisJCQkJKHIuYi5hICYgKEYyMCB8IEYwOCkpOworCQlnb3RvIGxvb3A7CisJfQorCQorCWNhc2UgMHgzNzogLy8gU0NGCisJCWZsYWdzID0gKChmbGFncyAmIChTODAgfCBaNDAgfCBQMDQpKSB8IEMwMSkgKworCQkJCShyLmIuYSAmIChGMjAgfCBGMDgpKTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHhEQjogLy8gSU4gQSwoaW1tKQorCQlwYysrOworCQlyLmIuYSA9IElOX1BPUlQoIChkYXRhICsgci5iLmEgKiAweDEwMCkgKTsKKwkJZ290byBsb29wOworCisJY2FzZSAweEUzOnsvLyBFWCAoU1ApLEhMCisJCWludCB0ZW1wID0gUkVBRF9XT1JEKCBzcCApOworCQlXUklURV9XT1JEKCBzcCwgci53LmhsICk7CisJCXIudy5obCA9IHRlbXA7CisJCWdvdG8gbG9vcDsKKwl9CisJCisJY2FzZSAweEVCOiAvLyBFWCBERSxITAorCQlFWCggci53LmhsLCByLncuZGUgKTsKKwkJZ290byBsb29wOworCQorCWNhc2UgMHhEOTogLy8gRVhYIERFLEhMCisJCUVYWCggdy5iYyApOworCQlFWFgoIHcuZGUgKTsKKwkJRVhYKCB3LmhsICk7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4RjM6IC8vIERJCisJCVIuaWZmMSA9IDA7CisJCVIuaWZmMiA9IDA7CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4RkI6IC8vIEVJCisJCVIuaWZmMSA9IDE7CisJCVIuaWZmMiA9IDE7CisJCS8vIFRPRE86IGRlbGF5ZWQgZWZmZWN0CisJCWdvdG8gbG9vcDsKKwkKKwljYXNlIDB4NzY6IC8vIEhBTFQKKwkJZ290byBoYWx0OworCQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBDQiBwcmVmaXgKKwl7CisJY2FzZSAweENCOgorCQlwYysrOworCQlzd2l0Y2ggKCBkYXRhICkKKwkJeworCQorCS8vIFJvdGF0ZSBsZWZ0CisJCQorCSNkZWZpbmUgUkxDKCByZWFkLCB3cml0ZSApIHtcCisJCWludCByZXN1bHQgPSByZWFkO1wKKwkJcmVzdWx0ID0gQllURSggcmVzdWx0IDw8IDEgKSArIChyZXN1bHQgPj4gNyk7XAorCQlmbGFncyA9IFNaMjhQKCByZXN1bHQgKSArIChyZXN1bHQgJiBDMDEpO1wKKwkJd3JpdGU7XAorCQlnb3RvIGxvb3A7XAorCX0KKwkJCisJCWNhc2UgMHgwNjogLy8gUkxDIChITCkKKwkJCXNfdGltZSArPSA3OworCQkJZGF0YSA9IHIudy5obDsKKwkJcmxjX2RhdGFfYWRkcjoKKwkJCVJMQyggUkVBRF9NRU0oIGRhdGEgKSwgV1JJVEVfTUVNKCBkYXRhLCByZXN1bHQgKSApCisJCQorCQlDQVNFNyggMDAsIDAxLCAwMiwgMDMsIDA0LCAwNSwgMDcgKTp7Ly8gUkxDIHIKKwkJCWJ5dGUqIHJlZyA9ICZSOCggZGF0YSwgMCApOworCQkJUkxDKCAqcmVnLCAqcmVnID0gcmVzdWx0ICkKKwkJfQorCQkKKwkjZGVmaW5lIFJMKCByZWFkLCB3cml0ZSApIHtcCisJCWludCByZXN1bHQgPSAocmVhZCA8PCAxKSArIChmbGFncyAmIEMwMSk7XAorCQlmbGFncyA9IFNaMjhQQyggcmVzdWx0ICk7XAorCQl3cml0ZTtcCisJCWdvdG8gbG9vcDtcCisJfQorCQkKKwkJY2FzZSAweDE2OiAvLyBSTCAoSEwpCisJCQlzX3RpbWUgKz0gNzsKKwkJCWRhdGEgPSByLncuaGw7CisJCXJsX2RhdGFfYWRkcjoKKwkJCVJMKCBSRUFEX01FTSggZGF0YSApLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkKKwkJCisJCUNBU0U3KCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNyApOnsvLyBSTCByCisJCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MTAgKTsKKwkJCVJMKCAqcmVnLCAqcmVnID0gcmVzdWx0ICkKKwkJfQorCQkKKwkjZGVmaW5lIFNMQSggcmVhZCwgbG93X2JpdCwgd3JpdGUgKSB7XAorCQlpbnQgcmVzdWx0ID0gKHJlYWQgPDwgMSkgKyBsb3dfYml0O1wKKwkJZmxhZ3MgPSBTWjI4UEMoIHJlc3VsdCApO1wKKwkJd3JpdGU7XAorCQlnb3RvIGxvb3A7XAorCX0KKwkJCisJCWNhc2UgMHgyNjogLy8gU0xBIChITCkKKwkJCXNfdGltZSArPSA3OworCQkJZGF0YSA9IHIudy5obDsKKwkJc2xhX2RhdGFfYWRkcjoKKwkJCVNMQSggUkVBRF9NRU0oIGRhdGEgKSwgMCwgV1JJVEVfTUVNKCBkYXRhLCByZXN1bHQgKSApCisJCQorCQlDQVNFNyggMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjcgKTp7Ly8gU0xBIHIKKwkJCWJ5dGUqIHJlZyA9ICZSOCggZGF0YSwgMHgyMCApOworCQkJU0xBKCAqcmVnLCAwLCAqcmVnID0gcmVzdWx0ICkKKwkJfQorCQkKKwkJY2FzZSAweDM2OiAvLyBTTEwgKEhMKQorCQkJc190aW1lICs9IDc7CisJCQlkYXRhID0gci53LmhsOworCQlzbGxfZGF0YV9hZGRyOgorCQkJU0xBKCBSRUFEX01FTSggZGF0YSApLCAxLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkKKwkJCisJCUNBU0U3KCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNyApOnsvLyBTTEwgcgorCQkJYnl0ZSogcmVnID0gJlI4KCBkYXRhLCAweDMwICk7CisJCQlTTEEoICpyZWcsIDEsICpyZWcgPSByZXN1bHQgKQorCQl9CisJCQorCS8vIFJvdGF0ZSByaWdodAorCQkKKwkjZGVmaW5lIFJSQyggcmVhZCwgd3JpdGUgKSB7XAorCQlpbnQgcmVzdWx0ID0gcmVhZDtcCisJCWZsYWdzID0gcmVzdWx0ICYgQzAxO1wKKwkJcmVzdWx0ID0gQllURSggcmVzdWx0IDw8IDcgKSArIChyZXN1bHQgPj4gMSk7XAorCQlmbGFncyArPSBTWjI4UCggcmVzdWx0ICk7XAorCQl3cml0ZTtcCisJCWdvdG8gbG9vcDtcCisJfQorCQkKKwkJY2FzZSAweDBFOiAvLyBSUkMgKEhMKQorCQkJc190aW1lICs9IDc7CisJCQlkYXRhID0gci53LmhsOworCQlycmNfZGF0YV9hZGRyOgorCQkJUlJDKCBSRUFEX01FTSggZGF0YSApLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkKKwkJCisJCUNBU0U3KCAwOCwgMDksIDBBLCAwQiwgMEMsIDBELCAwRiApOnsvLyBSUkMgcgorCQkJYnl0ZSogcmVnID0gJlI4KCBkYXRhLCAweDA4ICk7CisJCQlSUkMoICpyZWcsICpyZWcgPSByZXN1bHQgKQorCQl9CisJCQorCSNkZWZpbmUgUlIoIHJlYWQsIHdyaXRlICkge1wKKwkJaW50IHJlc3VsdCA9IHJlYWQ7XAorCQlpbnQgdGVtcCA9IHJlc3VsdCAmIEMwMTtcCisJCXJlc3VsdCA9IEJZVEUoIGZsYWdzIDw8IDcgKSArIChyZXN1bHQgPj4gMSk7XAorCQlmbGFncyA9IFNaMjhQKCByZXN1bHQgKSArIHRlbXA7XAorCQl3cml0ZTtcCisJCWdvdG8gbG9vcDtcCisJfQorCQkKKwkJY2FzZSAweDFFOiAvLyBSUiAoSEwpCisJCQlzX3RpbWUgKz0gNzsKKwkJCWRhdGEgPSByLncuaGw7CisJCXJyX2RhdGFfYWRkcjoKKwkJCVJSKCBSRUFEX01FTSggZGF0YSApLCBXUklURV9NRU0oIGRhdGEsIHJlc3VsdCApICkKKwkJCisJCUNBU0U3KCAxOCwgMTksIDFBLCAxQiwgMUMsIDFELCAxRiApOnsvLyBSUiByCisJCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MTggKTsKKwkJCVJSKCAqcmVnLCAqcmVnID0gcmVzdWx0ICkKKwkJfQorCQkKKwkjZGVmaW5lIFNSQSggcmVhZCwgd3JpdGUgKSB7XAorCQlpbnQgcmVzdWx0ID0gcmVhZDtcCisJCWZsYWdzID0gcmVzdWx0ICYgQzAxO1wKKwkJcmVzdWx0ID0gKHJlc3VsdCAmIDB4ODApICsgKHJlc3VsdCA+PiAxKTtcCisJCWZsYWdzICs9IFNaMjhQKCByZXN1bHQgKTtcCisJCXdyaXRlO1wKKwkJZ290byBsb29wO1wKKwl9CisJCQorCQljYXNlIDB4MkU6IC8vIFNSQSAoSEwpCisJCQlkYXRhID0gci53LmhsOworCQkJc190aW1lICs9IDc7CisJCXNyYV9kYXRhX2FkZHI6CisJCQlTUkEoIFJFQURfTUVNKCBkYXRhICksIFdSSVRFX01FTSggZGF0YSwgcmVzdWx0ICkgKQorCQkKKwkJQ0FTRTcoIDI4LCAyOSwgMkEsIDJCLCAyQywgMkQsIDJGICk6ey8vIFNSQSByCisJCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MjggKTsKKwkJCVNSQSggKnJlZywgKnJlZyA9IHJlc3VsdCApCisJCX0KKwkJCisJI2RlZmluZSBTUkwoIHJlYWQsIHdyaXRlICkge1wKKwkJaW50IHJlc3VsdCA9IHJlYWQ7XAorCQlmbGFncyA9IHJlc3VsdCAmIEMwMTtcCisJCXJlc3VsdCA+Pj0gMTtcCisJCWZsYWdzICs9IFNaMjhQKCByZXN1bHQgKTtcCisJCXdyaXRlO1wKKwkJZ290byBsb29wO1wKKwl9CisJCQorCQljYXNlIDB4M0U6IC8vIFNSTCAoSEwpCisJCQlzX3RpbWUgKz0gNzsKKwkJCWRhdGEgPSByLncuaGw7CisJCXNybF9kYXRhX2FkZHI6CisJCQlTUkwoIFJFQURfTUVNKCBkYXRhICksIFdSSVRFX01FTSggZGF0YSwgcmVzdWx0ICkgKQorCQkKKwkJQ0FTRTcoIDM4LCAzOSwgM0EsIDNCLCAzQywgM0QsIDNGICk6ey8vIFNSTCByCisJCQlieXRlKiByZWcgPSAmUjgoIGRhdGEsIDB4MzggKTsKKwkJCVNSTCggKnJlZywgKnJlZyA9IHJlc3VsdCApCisJCX0KKwkJCisJLy8gQklUCisJCXsKKwkJCWludCB0ZW1wOworCQlDQVNFOCggNDYsIDRFLCA1NiwgNUUsIDY2LCA2RSwgNzYsIDdFICk6IC8vIEJJVCBiLChITCkKKwkJCXNfdGltZSArPSA0OworCQkJdGVtcCA9IFJFQURfTUVNKCByLncuaGwgKTsKKwkJCWZsYWdzICY9IEMwMTsKKwkJCWdvdG8gYml0X3RlbXA7CisJCUNBU0U3KCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NyApOiAvLyBCSVQgMCxyCisJCUNBU0U3KCA0OCwgNDksIDRBLCA0QiwgNEMsIDRELCA0RiApOiAvLyBCSVQgMSxyCisJCUNBU0U3KCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NyApOiAvLyBCSVQgMixyCisJCUNBU0U3KCA1OCwgNTksIDVBLCA1QiwgNUMsIDVELCA1RiApOiAvLyBCSVQgMyxyCisJCUNBU0U3KCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2NyApOiAvLyBCSVQgNCxyCisJCUNBU0U3KCA2OCwgNjksIDZBLCA2QiwgNkMsIDZELCA2RiApOiAvLyBCSVQgNSxyCisJCUNBU0U3KCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3NyApOiAvLyBCSVQgNixyCisJCUNBU0U3KCA3OCwgNzksIDdBLCA3QiwgN0MsIDdELCA3RiApOiAvLyBCSVQgNyxyCisJCQl0ZW1wID0gUjgoIGRhdGEgJiA3LCAwICk7CisJCQlmbGFncyA9IChmbGFncyAmIEMwMSkgKyAodGVtcCAmIChGMjAgfCBGMDgpKTsKKwkJYml0X3RlbXA6CisJCQl0ZW1wID0gdGVtcCAmICgxIDw8IChkYXRhID4+IDMgJiA3KSk7CisJCQlmbGFncyArPSAodGVtcCAmIFM4MCkgKyBIMTA7CisJCQlmbGFncyArPSAodW5zaWduZWQpIC0tdGVtcCA+PiA4ICYgKFo0MCB8IFAwNCk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJLy8gU0VUL1JFUworCQlDQVNFOCggODYsIDhFLCA5NiwgOUUsIEE2LCBBRSwgQjYsIEJFICk6IC8vIFJFUyBiLChITCkKKwkJQ0FTRTgoIEM2LCBDRSwgRDYsIERFLCBFNiwgRUUsIEY2LCBGRSApOnsvLyBTRVQgYiwoSEwpCisJCQlzX3RpbWUgKz0gNzsKKwkJCWludCB0ZW1wID0gUkVBRF9NRU0oIHIudy5obCApOworCQkJaW50IGJpdCA9IDEgPDwgKGRhdGEgPj4gMyAmIDcpOworCQkJdGVtcCB8PSBiaXQ7IC8vIFNFVAorCQkJaWYgKCAhKGRhdGEgJiAweDQwKSApCisJCQkJdGVtcCBePSBiaXQ7IC8vIFJFUworCQkJV1JJVEVfTUVNKCByLncuaGwsIHRlbXAgKTsKKwkJCWdvdG8gbG9vcDsKKwkJfQorCQkKKwkJQ0FTRTcoIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM3ICk6IC8vIFNFVCAwLHIKKwkJQ0FTRTcoIEM4LCBDOSwgQ0EsIENCLCBDQywgQ0QsIENGICk6IC8vIFNFVCAxLHIKKwkJQ0FTRTcoIEQwLCBEMSwgRDIsIEQzLCBENCwgRDUsIEQ3ICk6IC8vIFNFVCAyLHIKKwkJQ0FTRTcoIEQ4LCBEOSwgREEsIERCLCBEQywgREQsIERGICk6IC8vIFNFVCAzLHIKKwkJQ0FTRTcoIEUwLCBFMSwgRTIsIEUzLCBFNCwgRTUsIEU3ICk6IC8vIFNFVCA0LHIKKwkJQ0FTRTcoIEU4LCBFOSwgRUEsIEVCLCBFQywgRUQsIEVGICk6IC8vIFNFVCA1LHIKKwkJQ0FTRTcoIEYwLCBGMSwgRjIsIEYzLCBGNCwgRjUsIEY3ICk6IC8vIFNFVCA2LHIKKwkJQ0FTRTcoIEY4LCBGOSwgRkEsIEZCLCBGQywgRkQsIEZGICk6IC8vIFNFVCA3LHIKKwkJCVI4KCBkYXRhICYgNywgMCApIHw9IDEgPDwgKGRhdGEgPj4gMyAmIDcpOworCQkJZ290byBsb29wOworCQkKKwkJQ0FTRTcoIDgwLCA4MSwgODIsIDgzLCA4NCwgODUsIDg3ICk6IC8vIFJFUyAwLHIKKwkJQ0FTRTcoIDg4LCA4OSwgOEEsIDhCLCA4QywgOEQsIDhGICk6IC8vIFJFUyAxLHIKKwkJQ0FTRTcoIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk3ICk6IC8vIFJFUyAyLHIKKwkJQ0FTRTcoIDk4LCA5OSwgOUEsIDlCLCA5QywgOUQsIDlGICk6IC8vIFJFUyAzLHIKKwkJQ0FTRTcoIEEwLCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE3ICk6IC8vIFJFUyA0LHIKKwkJQ0FTRTcoIEE4LCBBOSwgQUEsIEFCLCBBQywgQUQsIEFGICk6IC8vIFJFUyA1LHIKKwkJQ0FTRTcoIEIwLCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI3ICk6IC8vIFJFUyA2LHIKKwkJQ0FTRTcoIEI4LCBCOSwgQkEsIEJCLCBCQywgQkQsIEJGICk6IC8vIFJFUyA3LHIKKwkJCVI4KCBkYXRhICYgNywgMCApICY9IH4oMSA8PCAoZGF0YSA+PiAzICYgNykpOworCQkJZ290byBsb29wOworCQl9CisJCWFzc2VydCggZmFsc2UgKTsKKwl9CisKKyN1bmRlZiBHRVRfQUREUgorI2RlZmluZSBHRVRfQUREUigpICBHRVRfTEUxNiggJklOU1RSKCAxLCBwYyApICkKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBFRCBwcmVmaXgKKwl7CisJY2FzZSAweEVEOgorCQlwYysrOworCQlzX3RpbWUgKz0gKGNsb2NrX3RhYmxlICsgMjU2KSBbZGF0YV0gPj4gNDsKKwkJc3dpdGNoICggZGF0YSApCisJCXsKKwkJeworCQkJaW50IHRlbXA7CisJCWNhc2UgMHg3MjogLy8gU0JDIEhMLFNQCisJCWNhc2UgMHg3QTogLy8gQURDIEhMLFNQCisJCQl0ZW1wID0gc3A7CisJCQlpZiAoIDAgKQorCQljYXNlIDB4NDI6IC8vIFNCQyBITCxCQworCQljYXNlIDB4NTI6IC8vIFNCQyBITCxERQorCQljYXNlIDB4NjI6IC8vIFNCQyBITCxITAorCQljYXNlIDB4NEE6IC8vIEFEQyBITCxCQworCQljYXNlIDB4NUE6IC8vIEFEQyBITCxERQorCQljYXNlIDB4NkE6IC8vIEFEQyBITCxITAorCQkJCXRlbXAgPSBSMTYoIGRhdGEgPj4gMyAmIDYsIDEsIDAgKTsKKwkJCWludCBzdW0gPSB0ZW1wICsgKGZsYWdzICYgQzAxKTsKKwkJCWZsYWdzID0gfmRhdGEgPj4gMiAmIE4wMjsKKwkJCWlmICggZmxhZ3MgKQorCQkJCXN1bSA9IC1zdW07CisJCQlzdW0gKz0gci53LmhsOworCQkJdGVtcCBePSByLncuaGw7CisJCQl0ZW1wIF49IHN1bTsKKwkJCWZsYWdzICs9KHN1bSA+PiAxNiAmIEMwMSkgKworCQkJCQkodGVtcCA+PiA4ICYgSDEwKSArCisJCQkJCShzdW0gPj4gOCAmIChTODAgfCBGMjAgfCBGMDgpKSArCisJCQkJCSgodGVtcCArIDB4ODAwMCkgPj4gMTQgJiBWMDQpOworCQkJci53LmhsID0gc3VtOworCQkJaWYgKCBXT1JEKCBzdW0gKSApCisJCQkJZ290byBsb29wOworCQkJZmxhZ3MgKz0gWjQwOworCQkJZ290byBsb29wOworCQl9CisJCQorCQlDQVNFOCggNDAsIDQ4LCA1MCwgNTgsIDYwLCA2OCwgNzAsIDc4ICk6ey8vIElOIHIsKEMpCisJCQlpbnQgdGVtcCA9IElOX1BPUlQoIHIudy5iYyApOworCQkJUjgoIGRhdGEgPj4gMywgOCApID0gdGVtcDsKKwkJCWZsYWdzID0gKGZsYWdzICYgQzAxKSArIFNaMjhQKCB0ZW1wICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCWNhc2UgMHg3MTogLy8gT1VUIChDKSwwCisJCQlyLmIuZmxhZ3MgPSAwOworCQlDQVNFNyggNDEsIDQ5LCA1MSwgNTksIDYxLCA2OSwgNzkgKTogLy8gT1VUIChDKSxyCisJCQlPVVRfUE9SVCggci53LmJjLCBSOCggZGF0YSA+PiAzLCA4ICkgKTsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCXsKKwkJCWludCB0ZW1wOworCQljYXNlIDB4NzM6IC8vIExEIChBRERSKSxTUAorCQkJdGVtcCA9IHNwOworCQkJaWYgKCAwICkKKwkJY2FzZSAweDQzOiAvLyBMRCAoQUREUiksQkMKKwkJY2FzZSAweDUzOiAvLyBMRCAoQUREUiksREUKKwkJCQl0ZW1wID0gUjE2KCBkYXRhLCA0LCAweDQzICk7CisJCQlpbnQgYWRkciA9IEdFVF9BRERSKCk7CisJCQlwYyArPSAyOworCQkJV1JJVEVfV09SRCggYWRkciwgdGVtcCApOworCQkJZ290byBsb29wOworCQl9CisJCQorCQljYXNlIDB4NEI6IC8vIExEIEJDLChBRERSKQorCQljYXNlIDB4NUI6ey8vIExEIERFLChBRERSKQorCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQkJcGMgKz0gMjsKKwkJCVIxNiggZGF0YSwgNCwgMHg0QiApID0gUkVBRF9XT1JEKCBhZGRyICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCWNhc2UgMHg3Qjp7Ly8gTEQgU1AsKEFERFIpCisJCQlpbnQgYWRkciA9IEdFVF9BRERSKCk7CisJCQlwYyArPSAyOworCQkJc3AgPSBSRUFEX1dPUkQoIGFkZHIgKTsKKwkJCWdvdG8gbG9vcDsKKwkJfQorCQkKKwkJY2FzZSAweDY3OnsvLyBSUkQKKwkJCWludCB0ZW1wID0gUkVBRF9NRU0oIHIudy5obCApOworCQkJV1JJVEVfTUVNKCByLncuaGwsICgoci5iLmEgPDwgNCkgKyAodGVtcCA+PiA0KSkgKTsKKwkJCXRlbXAgPSAoci5iLmEgJiAweEYwKSArICh0ZW1wICYgMHgwRik7CisJCQlmbGFncyA9IChmbGFncyAmIEMwMSkgKyBTWjI4UCggdGVtcCApOworCQkJci5iLmEgPSB0ZW1wOworCQkJZ290byBsb29wOworCQl9CisJCQorCQljYXNlIDB4NkY6ey8vIFJMRAorCQkJaW50IHRlbXAgPSBSRUFEX01FTSggci53LmhsICk7CisJCQlXUklURV9NRU0oIHIudy5obCwgKCh0ZW1wIDw8IDQpICsgKHIuYi5hICYgMHgwRikpICk7CisJCQl0ZW1wID0gKHIuYi5hICYgMHhGMCkgKyAodGVtcCA+PiA0KTsKKwkJCWZsYWdzID0gKGZsYWdzICYgQzAxKSArIFNaMjhQKCB0ZW1wICk7CisJCQlyLmIuYSA9IHRlbXA7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCUNBU0U4KCA0NCwgNEMsIDU0LCA1QywgNjQsIDZDLCA3NCwgN0MgKTogLy8gTkVHCisJCQlvcGNvZGUgPSAweDEwOyAvLyBmbGFnIHRvIGRvIFNCQyBpbnN0ZWFkIG9mIEFEQworCQkJZmxhZ3MgJj0gfkMwMTsKKwkJCWRhdGEgPSByLmIuYTsKKwkJCXIuYi5hID0gMDsKKwkJCWdvdG8gYWRjX2RhdGE7CisJCQorCQl7CisJCQlpbnQgaW5jOworCQljYXNlIDB4QTk6IC8vIENQRAorCQljYXNlIDB4Qjk6IC8vIENQRFIKKwkJCWluYyA9IC0xOworCQkJaWYgKCAwICkKKwkJY2FzZSAweEExOiAvLyBDUEkKKwkJY2FzZSAweEIxOiAvLyBDUElSCisJCQkJaW5jID0gKzE7CisJCQlpbnQgYWRkciA9IHIudy5obDsKKwkJCXIudy5obCA9IGFkZHIgKyBpbmM7CisJCQlpbnQgdGVtcCA9IFJFQURfTUVNKCBhZGRyICk7CisJCQkKKwkJCWludCByZXN1bHQgPSByLmIuYSAtIHRlbXA7CisJCQlmbGFncyA9IChmbGFncyAmIEMwMSkgKyBOMDIgKworCQkJCQkoKCgodGVtcCBeIHIuYi5hKSAmIEgxMCkgXiByZXN1bHQpICYgKFM4MCB8IEgxMCkpOworCQkJCisJCQlpZiAoICFCWVRFKCByZXN1bHQgKSApCisJCQkJZmxhZ3MgKz0gWjQwOworCQkJcmVzdWx0IC09IChmbGFncyAmIEgxMCkgPj4gNDsKKwkJCWZsYWdzICs9IHJlc3VsdCAmIEYwODsKKwkJCWZsYWdzICs9IHJlc3VsdCA8PCA0ICYgRjIwOworCQkJaWYgKCAhLS1yLncuYmMgKQorCQkJCWdvdG8gbG9vcDsKKwkJCQorCQkJZmxhZ3MgKz0gVjA0OworCQkJaWYgKCBmbGFncyAmIFo0MCB8fCBkYXRhIDwgMHhCMCApCisJCQkJZ290byBsb29wOworCQkJCisJCQlwYyAtPSAyOworCQkJc190aW1lICs9IDU7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCXsKKwkJCWludCBpbmM7CisJCWNhc2UgMHhBODogLy8gTERECisJCWNhc2UgMHhCODogLy8gTEREUgorCQkJaW5jID0gLTE7CisJCQlpZiAoIDAgKQorCQljYXNlIDB4QTA6IC8vIExESQorCQljYXNlIDB4QjA6IC8vIExESVIKKwkJCQlpbmMgPSArMTsKKwkJCWludCBhZGRyID0gci53LmhsOworCQkJci53LmhsID0gYWRkciArIGluYzsKKwkJCWludCB0ZW1wID0gUkVBRF9NRU0oIGFkZHIgKTsKKwkJCQorCQkJYWRkciA9IHIudy5kZTsKKwkJCXIudy5kZSA9IGFkZHIgKyBpbmM7CisJCQlXUklURV9NRU0oIGFkZHIsIHRlbXAgKTsKKwkJCQorCQkJdGVtcCArPSByLmIuYTsKKwkJCWZsYWdzID0gKGZsYWdzICYgKFM4MCB8IFo0MCB8IEMwMSkpICsKKwkJCQkJKHRlbXAgJiBGMDgpICsgKHRlbXAgPDwgNCAmIEYyMCk7CisJCQlpZiAoICEtLXIudy5iYyApCisJCQkJZ290byBsb29wOworCQkJCisJCQlmbGFncyArPSBWMDQ7CisJCQlpZiAoIGRhdGEgPCAweEIwICkKKwkJCQlnb3RvIGxvb3A7CisJCQkKKwkJCXBjIC09IDI7CisJCQlzX3RpbWUgKz0gNTsKKwkJCWdvdG8gbG9vcDsKKwkJfQorCQkKKwkJeworCQkJaW50IGluYzsKKwkJY2FzZSAweEFCOiAvLyBPVVRECisJCWNhc2UgMHhCQjogLy8gT1REUgorCQkJaW5jID0gLTE7CisJCQlpZiAoIDAgKQorCQljYXNlIDB4QTM6IC8vIE9VVEkKKwkJY2FzZSAweEIzOiAvLyBPVElSCisJCQkJaW5jID0gKzE7CisJCQlpbnQgYWRkciA9IHIudy5obDsKKwkJCXIudy5obCA9IGFkZHIgKyBpbmM7CisJCQlpbnQgdGVtcCA9IFJFQURfTUVNKCBhZGRyICk7CisJCQkKKwkJCWludCBiID0gLS1yLmIuYjsKKwkJCWZsYWdzID0gKHRlbXAgPj4gNiAmIE4wMikgKyBTWjI4KCBiICk7CisJCQlpZiAoIGIgJiYgZGF0YSA+PSAweEIwICkKKwkJCXsKKwkJCQlwYyAtPSAyOworCQkJCXNfdGltZSArPSA1OworCQkJfQorCQkJCisJCQlPVVRfUE9SVCggci53LmJjLCB0ZW1wICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCXsKKwkJCWludCBpbmM7CisJCWNhc2UgMHhBQTogLy8gSU5ECisJCWNhc2UgMHhCQTogLy8gSU5EUgorCQkJaW5jID0gLTE7CisJCQlpZiAoIDAgKQorCQljYXNlIDB4QTI6IC8vIElOSQorCQljYXNlIDB4QjI6IC8vIElOSVIKKwkJCQlpbmMgPSArMTsKKwkJCQorCQkJaW50IGFkZHIgPSByLncuaGw7CisJCQlyLncuaGwgPSBhZGRyICsgaW5jOworCQkJCisJCQlpbnQgdGVtcCA9IElOX1BPUlQoIHIudy5iYyApOworCQkJCisJCQlpbnQgYiA9IC0tci5iLmI7CisJCQlmbGFncyA9ICh0ZW1wID4+IDYgJiBOMDIpICsgU1oyOCggYiApOworCQkJaWYgKCBiICYmIGRhdGEgPj0gMHhCMCApCisJCQl7CisJCQkJcGMgLT0gMjsKKwkJCQlzX3RpbWUgKz0gNTsKKwkJCX0KKwkJCQorCQkJV1JJVEVfTUVNKCBhZGRyLCB0ZW1wICk7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJCisJCWNhc2UgMHg0NzogLy8gTEQgSSxBCisJCQlSLmkgPSByLmIuYTsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCWNhc2UgMHg0RjogLy8gTEQgUixBCisJCQlTRVRfUiggci5iLmEgKTsKKwkJCWRwcmludGYoICJMRCBSLEEgbm90IHN1cHBvcnRlZFxuIiApOworCQkJd2FybmluZyA9IHRydWU7CisJCQlnb3RvIGxvb3A7CisJCQorCQljYXNlIDB4NTc6IC8vIExEIEEsSQorCQkJci5iLmEgPSBSLmk7CisJCQlnb3RvIGxkX2FpX2NvbW1vbjsKKwkJCisJCWNhc2UgMHg1RjogLy8gTEQgQSxSCisJCQlyLmIuYSA9IEdFVF9SKCk7CisJCQlkcHJpbnRmKCAiTEQgQSxSIG5vdCBzdXBwb3J0ZWRcbiIgKTsKKwkJCXdhcm5pbmcgPSB0cnVlOworCQlsZF9haV9jb21tb246CisJCQlmbGFncyA9IChmbGFncyAmIEMwMSkgKyBTWjI4KCByLmIuYSApICsgKFIuaWZmMiA8PCAyICYgVjA0KTsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCUNBU0U4KCA0NSwgNEQsIDU1LCA1RCwgNjUsIDZELCA3NSwgN0QgKTogLy8gUkVUSS9SRVROCisJCQlSLmlmZjEgPSBSLmlmZjI7CisJCQlnb3RvIHJldF90YWtlbjsKKwkJCisJCWNhc2UgMHg0NjogY2FzZSAweDRFOiBjYXNlIDB4NjY6IGNhc2UgMHg2RTogLy8gSU0gMAorCQkJUi5pbSA9IDA7CisJCQlnb3RvIGxvb3A7CisJCQorCQljYXNlIDB4NTY6IGNhc2UgMHg3NjogLy8gSU0gMQorCQkJUi5pbSA9IDE7CisJCQlnb3RvIGxvb3A7CisJCQorCQljYXNlIDB4NUU6IGNhc2UgMHg3RTogLy8gSU0gMgorCQkJUi5pbSA9IDI7CisJCQlnb3RvIGxvb3A7CisJCQorCQlkZWZhdWx0OgorCQkJZHByaW50ZiggIk9wY29kZSAkRUQgJCUwMlggbm90IHN1cHBvcnRlZFxuIiwgZGF0YSApOworCQkJd2FybmluZyA9IHRydWU7CisJCQlnb3RvIGxvb3A7CisJCX0KKwkJYXNzZXJ0KCBmYWxzZSApOworCX0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBERC9GRCBwcmVmaXgKKwl7CisJaW50IGl4eTsKKwljYXNlIDB4REQ6CisJCWl4eSA9IGl4OworCQlnb3RvIGl4X3ByZWZpeDsKKwljYXNlIDB4RkQ6CisJCWl4eSA9IGl5OworCWl4X3ByZWZpeDoKKwkJcGMrKzsKKwkJaW50IGRhdGEyID0gUkVBRF9DT0RFKCBwYyApOworCQlzX3RpbWUgKz0gKGNsb2NrX3RhYmxlICsgMjU2KSBbZGF0YV0gJiAweDBGOworCQlzd2l0Y2ggKCBkYXRhICkKKwkJeworCS8vIFRPRE86IG1vcmUgZWZmaWNpZW50IHdheSBvZiBhdm9pZCBuZWdhdGl2ZSBhZGRyZXNzCisJLy8gVE9ETzogYXZvaWQgdXNpbmcgdGhpcyBhcyBhcmd1bWVudCB0byBSRUFEX01FTSgpIHNpbmNlIGl0IGlzIGV2YWx1YXRlZCB0d2ljZQorCSNkZWZpbmUgSVhZX0RJU1AoIGl4eSwgZGlzcCApICAgV09SRCggKGl4eSApICsgKGRpc3ApKQorCQorCSNkZWZpbmUgU0VUX0lYWSggaW4gKSBpZiAoIG9wY29kZSA9PSAweEREICkgaXggPSBpbjsgZWxzZSBpeSA9IGluOworCQorCS8vIEFERC9BREMvU1VCL1NCQworCQorCQljYXNlIDB4OTY6IC8vIFNVQiAoSVhZK2Rpc3ApCisJCWNhc2UgMHg4NjogLy8gQUREIChJWFkrZGlzcCkKKwkJCWZsYWdzICY9IH5DMDE7CisJCWNhc2UgMHg5RTogLy8gU0JDIChJWFkrZGlzcCkKKwkJY2FzZSAweDhFOiAvLyBBREMgKElYWStkaXNwKQorCQkJcGMrKzsKKwkJCW9wY29kZSA9IGRhdGE7CisJCQlkYXRhID0gUkVBRF9NRU0oIElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICkgKTsKKwkJCWdvdG8gYWRjX2RhdGE7CisJCQorCQljYXNlIDB4OTQ6IC8vIFNVQiBIWFkKKwkJY2FzZSAweDg0OiAvLyBBREQgSFhZCisJCQlmbGFncyAmPSB+QzAxOworCQljYXNlIDB4OUM6IC8vIFNCQyBIWFkKKwkJY2FzZSAweDhDOiAvLyBBREMgSFhZCisJCQlvcGNvZGUgPSBkYXRhOworCQkJZGF0YSA9IGl4eSA+PiA4OworCQkJZ290byBhZGNfZGF0YTsKKwkJCisJCWNhc2UgMHg5NTogLy8gU1VCIExYWQorCQljYXNlIDB4ODU6IC8vIEFERCBMWFkKKwkJCWZsYWdzICY9IH5DMDE7CisJCWNhc2UgMHg5RDogLy8gU0JDIExYWQorCQljYXNlIDB4OEQ6IC8vIEFEQyBMWFkKKwkJCW9wY29kZSA9IGRhdGE7CisJCQlkYXRhID0gQllURSggaXh5ICk7CisJCQlnb3RvIGFkY19kYXRhOworCQkKKwkJeworCQkJaW50IHRlbXA7CisJCWNhc2UgMHgzOTogLy8gQUREIElYWSxTUAorCQkJdGVtcCA9IHNwOworCQkJZ290byBhZGRfaXh5X2RhdGE7CisJCQorCQljYXNlIDB4Mjk6IC8vIEFERCBJWFksSEwKKwkJCXRlbXAgPSBpeHk7CisJCQlnb3RvIGFkZF9peHlfZGF0YTsKKwkJCisJCWNhc2UgMHgwOTogLy8gQUREIElYWSxCQworCQljYXNlIDB4MTk6IC8vIEFERCBJWFksREUKKwkJCXRlbXAgPSBSMTYoIGRhdGEsIDQsIDB4MDkgKTsKKwkJYWRkX2l4eV9kYXRhOiB7CisJCQlpbnQgc3VtID0gaXh5ICsgdGVtcDsKKwkJCXRlbXAgXj0gaXh5OworCQkJaXh5ID0gV09SRCggc3VtICk7CisJCQlmbGFncyA9IChmbGFncyAmIChTODAgfCBaNDAgfCBWMDQpKSArCisJCQkJCShzdW0gPj4gMTYpICsKKwkJCQkJKHN1bSA+PiA4ICYgKEYyMCB8IEYwOCkpICsKKwkJCQkJKCh0ZW1wIF4gc3VtKSA+PiA4ICYgSDEwKTsKKwkJCWdvdG8gc2V0X2l4eTsKKwkJfQorCQl9CisJCisJLy8gQU5ECisJCWNhc2UgMHhBNjogLy8gQU5EIChJWFkrZGlzcCkKKwkJCXBjKys7CisJCQlkYXRhID0gUkVBRF9NRU0oIElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICkgKTsKKwkJCWdvdG8gYW5kX2RhdGE7CisJCQorCQljYXNlIDB4QTQ6IC8vIEFORCBIWFkKKwkJCWRhdGEgPSBpeHkgPj4gODsKKwkJCWdvdG8gYW5kX2RhdGE7CisJCQorCQljYXNlIDB4QTU6IC8vIEFORCBMWFkKKwkJCWRhdGEgPSBCWVRFKCBpeHkgKTsKKwkJCWdvdG8gYW5kX2RhdGE7CisJCisJLy8gT1IKKwkJY2FzZSAweEI2OiAvLyBPUiAoSVhZK2Rpc3ApCisJCQlwYysrOworCQkJZGF0YSA9IFJFQURfTUVNKCBJWFlfRElTUCggaXh5LCBTQllURSggZGF0YTIgKSApICk7CisJCQlnb3RvIG9yX2RhdGE7CisJCQorCQljYXNlIDB4QjQ6IC8vIE9SIEhYWQorCQkJZGF0YSA9IGl4eSA+PiA4OworCQkJZ290byBvcl9kYXRhOworCQkKKwkJY2FzZSAweEI1OiAvLyBPUiBMWFkKKwkJCWRhdGEgPSBCWVRFKCBpeHkgKTsKKwkJCWdvdG8gb3JfZGF0YTsKKwkKKwkvLyBYT1IKKwkJY2FzZSAweEFFOiAvLyBYT1IgKElYWStkaXNwKQorCQkJcGMrKzsKKwkJCWRhdGEgPSBSRUFEX01FTSggSVhZX0RJU1AoIGl4eSwgU0JZVEUoIGRhdGEyICkgKSApOworCQkJZ290byB4b3JfZGF0YTsKKwkJCisJCWNhc2UgMHhBQzogLy8gWE9SIEhYWQorCQkJZGF0YSA9IGl4eSA+PiA4OworCQkJZ290byB4b3JfZGF0YTsKKwkJCisJCWNhc2UgMHhBRDogLy8gWE9SIExYWQorCQkJZGF0YSA9IEJZVEUoIGl4eSApOworCQkJZ290byB4b3JfZGF0YTsKKwkKKwkvLyBDUAorCQljYXNlIDB4QkU6IC8vIENQIChJWFkrZGlzcCkKKwkJCXBjKys7CisJCQlkYXRhID0gUkVBRF9NRU0oIElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICkgICk7CisJCQlnb3RvIGNwX2RhdGE7CisJCQorCQljYXNlIDB4QkM6IC8vIENQIEhYWQorCQkJZGF0YSA9IGl4eSA+PiA4OworCQkJZ290byBjcF9kYXRhOworCQkKKwkJY2FzZSAweEJEOiAvLyBDUCBMWFkKKwkJCWRhdGEgPSBCWVRFKCBpeHkgKTsKKwkJCWdvdG8gY3BfZGF0YTsKKwkJCisJLy8gTEQKKwkJQ0FTRTcoIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc3ICk6IC8vIExEIChJWFkrZGlzcCkscgorCQkJZGF0YSA9IFI4KCBkYXRhLCAweDcwICk7CisJCQlpZiAoIDAgKQorCQljYXNlIDB4MzY6IC8vIExEIChJWFkrZGlzcCksaW1tCisJCQkJcGMrKywgZGF0YSA9IFJFQURfQ09ERSggcGMgKTsKKwkJCXBjKys7CisJCQlXUklURV9NRU0oIElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICksIGRhdGEgKTsKKwkJCWdvdG8gbG9vcDsKKworCQlDQVNFNSggNDQsIDRDLCA1NCwgNUMsIDdDICk6IC8vIExEIHIsSFhZCisJCQlSOCggZGF0YSA+PiAzLCA4ICkgPSBpeHkgPj4gODsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCWNhc2UgMHg2NDogLy8gTEQgSFhZLEhYWQorCQljYXNlIDB4NkQ6IC8vIExEIExYWSxMWFkKKwkJCWdvdG8gbG9vcDsKKwkJCisJCUNBU0U1KCA0NSwgNEQsIDU1LCA1RCwgN0QgKTogLy8gTEQgcixMWFkKKwkJCVI4KCBkYXRhID4+IDMsIDggKSA9IGl4eTsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCUNBU0U3KCA0NiwgNEUsIDU2LCA1RSwgNjYsIDZFLCA3RSApOiAvLyBMRCByLChJWFkrZGlzcCkKKwkJCXBjKys7CisJCQlSOCggZGF0YSA+PiAzLCA4ICkgPSBSRUFEX01FTSggSVhZX0RJU1AoIGl4eSwgU0JZVEUoIGRhdGEyICkgKSApOworCQkJZ290byBsb29wOworCQkKKwkJY2FzZSAweDI2OiAvLyBMRCBIWFksaW1tCisJCQlwYysrOworCQkJZ290byBsZF9oeHlfZGF0YTsKKwkJCQorCQljYXNlIDB4NjU6IC8vIExEIEhYWSxMWFkKKwkJCWRhdGEyID0gQllURSggaXh5ICk7CisJCQlnb3RvIGxkX2h4eV9kYXRhOworCQkKKwkJQ0FTRTUoIDYwLCA2MSwgNjIsIDYzLCA2NyApOiAvLyBMRCBIWFkscgorCQkJZGF0YTIgPSBSOCggZGF0YSwgMHg2MCApOworCQlsZF9oeHlfZGF0YToKKwkJCWl4eSA9IEJZVEUoIGl4eSApICsgKGRhdGEyIDw8IDgpOworCQkJZ290byBzZXRfaXh5OworCQkKKwkJY2FzZSAweDJFOiAvLyBMRCBMWFksaW1tCisJCQlwYysrOworCQkJZ290byBsZF9seHlfZGF0YTsKKwkJCQorCQljYXNlIDB4NkM6IC8vIExEIExYWSxIWFkKKwkJCWRhdGEyID0gaXh5ID4+IDg7CisJCQlnb3RvIGxkX2x4eV9kYXRhOworCQkKKwkJQ0FTRTUoIDY4LCA2OSwgNkEsIDZCLCA2RiApOiAvLyBMRCBMWFkscgorCQkJZGF0YTIgPSBSOCggZGF0YSwgMHg2OCApOworCQlsZF9seHlfZGF0YToKKwkJCWl4eSA9IChpeHkgJiAweEZGMDApICsgZGF0YTI7CisJCXNldF9peHk6CisJCQlpZiAoIG9wY29kZSA9PSAweEREICkKKwkJCXsKKwkJCQlpeCA9IGl4eTsKKwkJCQlnb3RvIGxvb3A7CisJCQl9CisJCQlpeSA9IGl4eTsKKwkJCWdvdG8gbG9vcDsKKworCQljYXNlIDB4Rjk6IC8vIExEIFNQLElYWQorCQkJc3AgPSBpeHk7CisJCQlnb3RvIGxvb3A7CisJCisJCWNhc2UgMHgyMjp7Ly8gTEQgKEFERFIpLElYWQorCQkJaW50IGFkZHIgPSBHRVRfQUREUigpOworCQkJcGMgKz0gMjsKKwkJCVdSSVRFX1dPUkQoIGFkZHIsIGl4eSApOworCQkJZ290byBsb29wOworCQl9CisJCQorCQljYXNlIDB4MjE6IC8vIExEIElYWSxpbW0KKwkJCWl4eSA9IEdFVF9BRERSKCk7CisJCQlwYyArPSAyOworCQkJZ290byBzZXRfaXh5OworCQkKKwkJY2FzZSAweDJBOnsvLyBMRCBJWFksKGFkZHIpCisJCQlpbnQgYWRkciA9IEdFVF9BRERSKCk7CisJCQlpeHkgPSBSRUFEX1dPUkQoIGFkZHIgKTsKKwkJCXBjICs9IDI7CisJCQlnb3RvIHNldF9peHk7CisJCX0KKwkJCisJLy8gREQvRkQgQ0IgcHJlZml4CisJCWNhc2UgMHhDQjogeworCQkJZGF0YSA9IElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICk7CisJCQlwYysrOworCQkJZGF0YTIgPSBSRUFEX0NPREUoIHBjICk7CisJCQlwYysrOworCQkJc3dpdGNoICggZGF0YTIgKQorCQkJeworCQkJY2FzZSAweDA2OiBnb3RvIHJsY19kYXRhX2FkZHI7IC8vIFJMQyAoSVhZKQorCQkJY2FzZSAweDE2OiBnb3RvIHJsX2RhdGFfYWRkcjsgIC8vIFJMIChJWFkpCisJCQljYXNlIDB4MjY6IGdvdG8gc2xhX2RhdGFfYWRkcjsgLy8gU0xBIChJWFkpCisJCQljYXNlIDB4MzY6IGdvdG8gc2xsX2RhdGFfYWRkcjsgLy8gU0xMIChJWFkpCisJCQljYXNlIDB4MEU6IGdvdG8gcnJjX2RhdGFfYWRkcjsgLy8gUlJDIChJWFkpCisJCQljYXNlIDB4MUU6IGdvdG8gcnJfZGF0YV9hZGRyOyAgLy8gUlIgKElYWSkKKwkJCWNhc2UgMHgyRTogZ290byBzcmFfZGF0YV9hZGRyOyAvLyBTUkEgKElYWSkKKwkJCWNhc2UgMHgzRTogZ290byBzcmxfZGF0YV9hZGRyOyAvLyBTUkwgKElYWSkKKwkJCQorCQkJQ0FTRTgoIDQ2LCA0RSwgNTYsIDVFLCA2NiwgNkUsIDc2LCA3RSApOnsvLyBCSVQgYiwoSVhZK2Rpc3ApCisJCQkJaW50IHRlbXAgPSBSRUFEX01FTSggZGF0YSApOworCQkJCXRlbXAgPSB0ZW1wICYgKDEgPDwgKGRhdGEyID4+IDMgJiA3KSk7CisJCQkJZmxhZ3MgPSAoZmxhZ3MgJiBDMDEpICsgSDEwICsgKHRlbXAgJiBTODApOworCQkJCWZsYWdzICs9ICh1bnNpZ25lZCkgLS10ZW1wID4+IDggJiAoWjQwIHwgUDA0KTsKKwkJCQlnb3RvIGxvb3A7CisJCQl9CisJCQkKKwkJCUNBU0U4KCA4NiwgOEUsIDk2LCA5RSwgQTYsIEFFLCBCNiwgQkUgKTogLy8gUkVTIGIsKElYWStkaXNwKQorCQkJQ0FTRTgoIEM2LCBDRSwgRDYsIERFLCBFNiwgRUUsIEY2LCBGRSApOnsvLyBTRVQgYiwoSVhZK2Rpc3ApCisJCQkJaW50IHRlbXAgPSBSRUFEX01FTSggZGF0YSApOworCQkJCWludCBiaXQgPSAxIDw8IChkYXRhMiA+PiAzICYgNyk7CisJCQkJdGVtcCB8PSBiaXQ7IC8vIFNFVAorCQkJCWlmICggIShkYXRhMiAmIDB4NDApICkKKwkJCQkJdGVtcCBePSBiaXQ7IC8vIFJFUworCQkJCVdSSVRFX01FTSggZGF0YSwgdGVtcCApOworCQkJCWdvdG8gbG9vcDsKKwkJCX0KKwkJCQorCQkJZGVmYXVsdDoKKwkJCQlkcHJpbnRmKCAiT3Bjb2RlICQlMDJYICRDQiAkJTAyWCBub3Qgc3VwcG9ydGVkXG4iLCBvcGNvZGUsIGRhdGEyICk7CisJCQkJd2FybmluZyA9IHRydWU7CisJCQkJZ290byBsb29wOworCQkJfQorCQkJYXNzZXJ0KCBmYWxzZSApOworCQl9CisJCQorCS8vIElOQy9ERUMKKwkJY2FzZSAweDIzOiAvLyBJTkMgSVhZCisJCQlpeHkgPSBXT1JEKCBpeHkgKyAxICk7CisJCQlnb3RvIHNldF9peHk7CisJCQorCQljYXNlIDB4MkI6IC8vIERFQyBJWFkKKwkJCWl4eSA9IFdPUkQoIGl4eSAtIDEgKTsKKwkJCWdvdG8gc2V0X2l4eTsKKwkJCisJCWNhc2UgMHgzNDogLy8gSU5DIChJWFkrZGlzcCkKKwkJCWl4eSA9IElYWV9ESVNQKCBpeHksIFNCWVRFKCBkYXRhMiApICk7CisJCQlwYysrOworCQkJZGF0YSA9IFJFQURfTUVNKCBpeHkgKSArIDE7CisJCQlXUklURV9NRU0oIGl4eSwgZGF0YSApOworCQkJZ290byBpbmNfc2V0X2ZsYWdzOworCQkKKwkJY2FzZSAweDM1OiAvLyBERUMgKElYWStkaXNwKQorCQkJaXh5ID0gSVhZX0RJU1AoIGl4eSwgU0JZVEUoIGRhdGEyICkgKTsKKwkJCXBjKys7CisJCQlkYXRhID0gUkVBRF9NRU0oIGl4eSApIC0gMTsKKwkJCVdSSVRFX01FTSggaXh5LCBkYXRhICk7CisJCQlnb3RvIGRlY19zZXRfZmxhZ3M7CisJCQorCQljYXNlIDB4MjQ6IC8vIElOQyBIWFkKKwkJCWl4eSA9IFdPUkQoIGl4eSArIDB4MTAwICk7CisJCQlkYXRhID0gaXh5ID4+IDg7CisJCQlnb3RvIGluY194eV9jb21tb247CisJCQorCQljYXNlIDB4MkM6IC8vIElOQyBMWFkKKwkJCWRhdGEgPSBCWVRFKCBpeHkgKyAxICk7CisJCQlpeHkgPSAoaXh5ICYgMHhGRjAwKSArIGRhdGE7CisJCWluY194eV9jb21tb246CisJCQlpZiAoIG9wY29kZSA9PSAweEREICkKKwkJCXsKKwkJCQlpeCA9IGl4eTsKKwkJCQlnb3RvIGluY19zZXRfZmxhZ3M7CisJCQl9CisJCQlpeSA9IGl4eTsKKwkJCWdvdG8gaW5jX3NldF9mbGFnczsKKwkJCisJCWNhc2UgMHgyNTogLy8gREVDIEhYWQorCQkJaXh5ID0gV09SRCggaXh5IC0gMHgxMDAgKTsKKwkJCWRhdGEgPSBpeHkgPj4gODsKKwkJCWdvdG8gZGVjX3h5X2NvbW1vbjsKKwkJCisJCWNhc2UgMHgyRDogLy8gREVDIExYWQorCQkJZGF0YSA9IEJZVEUoIGl4eSAtIDEgKTsKKwkJCWl4eSA9IChpeHkgJiAweEZGMDApICsgZGF0YTsKKwkJZGVjX3h5X2NvbW1vbjoKKwkJCWlmICggb3Bjb2RlID09IDB4REQgKQorCQkJeworCQkJCWl4ID0gaXh5OworCQkJCWdvdG8gZGVjX3NldF9mbGFnczsKKwkJCX0KKwkJCWl5ID0gaXh5OworCQkJZ290byBkZWNfc2V0X2ZsYWdzOworCQkKKwkvLyBQVVNIL1BPUAorCQljYXNlIDB4RTU6IC8vIFBVU0ggSVhZCisJCQlkYXRhID0gaXh5OworCQkJZ290byBwdXNoX2RhdGE7CisJCQorCQljYXNlIDB4RTE6ey8vIFBPUCBJWFkKKwkJCWl4eSA9IFJFQURfV09SRCggc3AgKTsKKwkJCXNwID0gV09SRCggc3AgKyAyICk7CisJCQlnb3RvIHNldF9peHk7CisJCX0KKwkKKwkvLyBNaXNjCisJCQorCQljYXNlIDB4RTk6IC8vIEpQIChJWFkpCisJCQlwYyA9IGl4eTsKKwkJCWdvdG8gbG9vcDsKKwkJCisJCWNhc2UgMHhFMzp7Ly8gRVggKFNQKSxJWFkKKwkJCWludCB0ZW1wID0gUkVBRF9XT1JEKCBzcCApOworCQkJV1JJVEVfV09SRCggc3AsIGl4eSApOworCQkJaXh5ID0gdGVtcDsKKwkJCWdvdG8gc2V0X2l4eTsKKwkJfQorCQkKKwkJZGVmYXVsdDoKKwkJCWRwcmludGYoICJVbm5lY2Vzc2FyeSBERC9GRCBwcmVmaXggZW5jb3VudGVyZWRcbiIgKTsKKwkJCXdhcm5pbmcgPSB0cnVlOworCQkJcGMtLTsKKwkJCWdvdG8gbG9vcDsKKwkJfQorCQlhc3NlcnQoIGZhbHNlICk7CisJfQorCQorCX0KKwlkcHJpbnRmKCAiVW5oYW5kbGVkIG1haW4gb3Bjb2RlOiAkJTAyWFxuIiwgb3Bjb2RlICk7CisJYXNzZXJ0KCBmYWxzZSApOworCQorI2lmZGVmIElETEVfQUREUgoraGl0X2lkbGVfYWRkcjoKKwlzX3RpbWUgLT0gMTE7CisJZ290byBvdXRfb2ZfdGltZTsKKyNlbmRpZgoraGFsdDoKKwlzX3RpbWUgJj0gMzsgLy8gaW5jcmVtZW50IGJ5IG11bHRpcGxlIG9mIDQKK291dF9vZl90aW1lOgorCXBjLS07CisJCisJci5iLmZsYWdzID0gZmxhZ3M7CisJUi5peCAgICAgPSBpeDsKKwlSLml5ICAgICA9IGl5OworCVIuc3AgICAgID0gc3A7CisJUi5wYyAgICAgPSBwYzsKKwlSLmIgICAgICA9IHIuYjsKKwkKKwljcHUtPmNwdV9zdGF0ZV8uYmFzZSA9IHMuYmFzZTsKKwljcHUtPmNwdV9zdGF0ZV8udGltZSA9IHNfdGltZTsKKwljcHUtPmNwdV9zdGF0ZSA9ICZjcHUtPmNwdV9zdGF0ZV87Cit9CmRpZmYgLS1naXQgYS9hcHBzL2xhbmcvYXJhYmljLmxhbmcgYi9hcHBzL2xhbmcvYXJhYmljLmxhbmcKaW5kZXggMTJlODRjOC4uYjk0NTBjMSAxMDA2NDQKLS0tIGEvYXBwcy9sYW5nL2FyYWJpYy5sYW5nCisrKyBiL2FwcHMvbGFuZy9hcmFiaWMubGFuZwpAQCAtNzAxMCwxNyArNzAxMCwxNyBAQAogICAgIHJhZGlvOiAi2YLYp9im2YXYqSDYp9iw2KfYudipINin2YEg2KfZhSIKICAgPC92b2ljZT4KIDwvcGhyYXNlPgotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZJTEVTSVpFDQotICBkZXNjOiBpbiByZWNvcmQgdGltZXNwbGl0IG9wdGlvbnMgYW5kIGluIHRyYWNrIGluZm9ybWF0aW9uIHZpZXdlciANCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGaWxlc2l6ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICLYrdis2YUg2KfZhNmF2YTZgSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogItit2KzZhSDYp9mE2YXZhNmBIg0KLSAgPC92b2ljZT4NCis8cGhyYXNlPgorICBpZDogTEFOR19GSUxFU0laRQorICBkZXNjOiBpbiByZWNvcmQgdGltZXNwbGl0IG9wdGlvbnMgYW5kIGluIHRyYWNrIGluZm9ybWF0aW9uIHZpZXdlciAKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGaWxlc2l6ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICLYrdis2YUg2KfZhNmF2YTZgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogItit2KzZhSDYp9mE2YXZhNmBIgorICA8L3ZvaWNlPgogPC9waHJhc2U+CmRpZmYgLS1naXQgYS9hcHBzL2xhbmcvbGF0dmllc3UubGFuZyBiL2FwcHMvbGFuZy9sYXR2aWVzdS5sYW5nCmluZGV4IDBmYjBhZmEuLjg2NjgyMGQgMTAwNjQ0Ci0tLSBhL2FwcHMvbGFuZy9sYXR2aWVzdS5sYW5nCisrKyBiL2FwcHMvbGFuZy9sYXR2aWVzdS5sYW5nCkBAIC0xLDEyNzUwICsxLDEyNzUwIEBACi0jICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0jICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXw0KLSMgICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvDQotIyAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSMgICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcDQotIyAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8NCi0jICRJZCQNCi0jDQotIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQotIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSMgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDINCi0jIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KLSMNCi0jIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCi0jIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotIw0KLSMgDQotIyBMYXR2aWFuIGxhbmd1YWdlIGZpbGUsIHRyYW5zbGF0ZWQgYnkgTcSBcnRpxYbFoSDFoGltaXMgamViIG1zaA0KLQ0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVRfQk9PTF9ZRVMNCi0gIGRlc2M6IGJvb2wgdHJ1ZSByZXByZXNlbnRhdGlvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlllcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJKxIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJqYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVRfQk9PTF9OTw0KLSAgZGVzYzogYm9vbCBmYWxzZSByZXByZXNlbnRhdGlvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk5vIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk7EkyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5lZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX09ODQotICBkZXNjOiBVc2VkIGluIGEgbG90IG9mIHBsYWNlcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkllc2zEk2d0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImllc2xlZWd0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX09GRg0KLSAgZGVzYzogVXNlZCBpbiBhIGxvdCBvZiBwbGFjZXMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJPZmYiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpzbMSTZ3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpzbGVlZ3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQVNLDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQXNrIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlByYXPEq3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwcmFzaWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUxXQVlTDQotICBkZXNjOiB1c2VkIGluIHZhcmlvdXMgcGxhY2VzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWx3YXlzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlZpZW5txJNyIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmllbm1lZXIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19OT1JNQUwNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJOb3JtYWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTm9ybcSBbHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJub3JtYWFscyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0dBSU4NCi0gIGRlc2M6IEdlbmVyaWMgc3RyaW5nIGZvciBnYWluIHVzZWQgaW4gRVEgbWVudSBhbmQgcmVjb3JkaW5nIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkdhaW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUGFzdGlwcmluxIFqdW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGFzdGlwcmluYWFqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0FJVA0KLSAgZGVzYzogZ2VuZXJhbCBwbGVhc2Ugd2FpdCBzcGxhc2gNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJMb2FkaW5nLi4uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkllbMSBZMSTLi4uIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibm90aWVrIGllbGFhZGUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MT0FESU5HX1BFUkNFTlQNCi0gIGRlc2M6IHNwbGFzaCBudW1iZXIgb2YgcGVyY2VudHMgbG9hZGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTG9hZGluZy4uLiAlZCUlIGRvbmUgKCVzKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJpZWxhYWRlLi4uICVkJSUgZ2F0YXZzICglcykiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TQ0FOTklOR19ESVNLDQotICBkZXNjOiB3aGVuIGJvb3RpbmcgdXAgYW5kIHJlYnVpbGRpbmcgdGhlIGNhY2hlIGFuZCBjYWxjdWxhdGluZyBmcmVlIHNwYWNlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2Nhbm5pbmcgZGlzay4uLiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTa2FuxJMgYXRtacWGdS4uLiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNrYW5lZSBhdG1pbmp1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0hVVFRJTkdET1dODQotICBkZXNjOiBpbiBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTaHV0dGluZyBkb3duLi4uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6c2zEk2R6YXMuLi4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenNsZWVkemFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0FOQ0VMDQotICBkZXNjOiBWaXN1YWwgY29uZmlybWF0aW9uIG9mIGNhbmNlbGluZyBhIGNoYW5nZWQgc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNhbmNlbGxlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdGNlbHRzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRjZWx0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZBSUxFRA0KLSAgZGVzYzogU29tZXRoaW5nIGZhaWxlZC4gVG8gYmUgYXBwZW5kZWQgYWZ0ZXIgYWN0aW9ucw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZhaWxlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOZWl6ZGV2xIFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibmVpemRldmFhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NIQU5ORUxTDQotICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNoYW5uZWxzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkthbsSBbGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJrYW5hYWxpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVTRVRfQVNLDQotICBkZXNjOiBjb25maXJtIHRvIHJlc2V0IHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQXJlIFlvdSBTdXJlPyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJWYWkgZXNpIHDEgXJsaWVjaW7EgXRzPyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZhaSBlc2kgcGFhcmxpZWNpbmFhdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT05GSVJNX1dJVEhfQlVUVE9ODQotICBkZXNjOiBHZW5lcmljIHN0cmluZyB0byB1c2UgdG8gY29uZmlybQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBMQVkgPSBZZXMiDQotICAgIGNvd29uZDIqOiAiTUVOVSwgb3IgdG9wLXJpZ2h0ID0gWWVzIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIk5BVkkgPSBZZXMiDQotICAgIHNhbXN1bmd5aCosaXBvZCosaWF1ZGlveDUsaWF1ZGlvbTUsZ2lnYWJlYXQqLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixtcm9iZTEwMCxzYW5zYWNsaXAqLHNhbnNhZnV6ZSo6ICJTRUxFQ1QgPSBZZXMiDQotICAgIG1yb2JlNTAwOiAiUExBWSwgUE9XRVIsIG9yIHRvcC1yaWdodCA9IFllcyINCi0gICAgYXJjaG9zcGxheWVyOiAiKFBMQVkvU1RPUCkiDQotICAgIHZpYmU1MDA6ICJPSyA9IFllcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQTEFZID0gSsSBIg0KLSAgICBjb3dvbmQyKjogIk1FTlUsIHZhaSBsYWLEgSBhdWfFocSTasSBID0gSsSBIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIk5BVkkgPSBKxIEiDQotICAgIHNhbXN1bmd5aCosaXBvZCosaWF1ZGlveDUsaWF1ZGlvbTUsZ2lnYWJlYXQqLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixtcm9iZTEwMCxzYW5zYWNsaXAqLHNhbnNhZnV6ZSo6ICJTRUxFQ1QgPSBKxIEiDQotICAgIG1yb2JlNTAwOiAiUExBWSwgUE9XRVIsIHZhaSBsYWLEgSBhdWfFocSTasSBID0gSsSBIg0KLSAgICBhcmNob3NwbGF5ZXI6ICIoUExBWS9TVE9QKSINCi0gICAgdmliZTUwMDogIk9LID0gSsSBIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0FOQ0VMX1dJVEhfQU5ZDQotICBkZXNjOiBHZW5lcmljIHN0cmluZyB0byB1c2UgdG8gY2FuY2VsDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQW55IE90aGVyID0gTm8iDQotICAgIGFyY2hvc3BsYXllcjogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkplYmthcyBjaXRzID0gTsSTIg0KLSAgICBhcmNob3NwbGF5ZXI6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gICAgYXJjaG9zcGxheWVyOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ST0NLQk9YX1RJVExFDQotICBkZXNjOiBtYWluIG1lbnUgdGl0bGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSb2NrYm94Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJvY2tib3giDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJSb2NrYm94Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfTUVOVV9SRUNFTlRfQk9PS01BUktTDQotICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVjZW50IEJvb2ttYXJrcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOZXNlbsSBcyBHcsSBbWF0esSrbWVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibmVzZW5hYXMgZ3JhYW1hdHppaW1lcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJUl9CUk9XU0VSDQotICBkZXNjOiBtYWluIG1lbnUgdGl0bGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGaWxlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJGYWlsaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImZhaWxpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVEFHQ0FDSEUNCi0gIGRlc2M6IGluIHRoZSBtYWluIG1lbnUgYW5kIHRoZSBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGF0YWJhc2UiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRGF0dWLEgXplIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGF0dWJhYXplIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTk9XX1BMQVlJTkcNCi0gIGRlc2M6IGluIHRoZSBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJOb3cgUGxheWluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICLFoG9icsSrZCBBdHNrYcWGbyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNob2JyaWlkIGF0c2thbmpvIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVTVU1FX1BMQVlCQUNLDQotICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVzdW1lIFBsYXliYWNrIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlR1cnBpbsSBdCBBdHNrYcWGb8WhYW51Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidHVycGluYWF0IGF0c2thbmpvc2hhbnUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVRUSU5HUw0KLSAgZGVzYzogIGluIG1haW4gbWVudSBhbmQgdmlzdWFsIGNvbmZpcm1hdGlvbiBhZnRlciBzZXR0aW5ncyByZXNldA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlV6c3TEgWTEq2p1bWkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ1enN0YWFkaWlqdW1pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JESU5HDQotICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlJlY29yZGluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiSWVyYWtzdMSrxaFhbmEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiaWVyYWtzdGlpc2hhbmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9SQURJTw0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkZNIFJhZGlvIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkZNIFJhZGlvIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiZm0gcmFkaW8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTEFZTElTVFMNCi0gIGRlc2M6IGluIHRoZSBmaWxlIHZpZXcgc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBsYXlsaXN0cyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemxhc2VzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpsYXNlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMVUdJTlMNCi0gIGRlc2M6IGluIHRoZSBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQbHVnaW5zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNwcmF1ZMWGaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNwcmF1ZG5qaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NZU1RFTQ0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudSBhbmQgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlN5c3RlbSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTaXN0xJNtYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNpc3RlZW1hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfU0VMRUNUX0JPT0tNQVJLDQotICBkZXNjOiBib29rbWFyayBzZWxlY3Rpb24gbGlzdCB0aXRsZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNlbGVjdCBCb29rbWFyayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJenbEk2zEk3RpZXMgR3LEgW1hdHrEq21pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXp2ZWVsZWV0aWVzIGdyYWFtYXR6aWltaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX0RPTlRfUkVTVU1FDQotICBkZXNjOiB0b3AgaXRlbSBpbiB0aGUgbGlzdCB3aGVuIGFza2luZyB1c2VyIGFib3V0IGJvb2ttYXJrIGF1dG8gbG9hZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIjxEb24ndCBSZXN1bWU+Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIjxOZWF0c8SBa3Q+Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibmVhdHNhYWt0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfU0hVRkZMRQ0KLSAgZGVzYzogYm9va21hcmsgc2VsZWN0aW9uIGxpc3QsIGJvb2ttYXJrIGVuYWJsZXMgc2h1ZmZsZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiwgU2h1ZmZsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIsIFDEgXJtYWnFhnVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfSU5WQUxJRA0KLSAgZGVzYzogYm9va21hcmsgc2VsZWN0aW9uIGxpc3QsIGJvb2ttYXJrIGNvdWxkbid0IGJlIHBhcnNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIjxJbnZhbGlkIEJvb2ttYXJrPiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICI8TmVkZXLEq2dhIEdyxIFtYXR6xKttZT4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuZWRlcmlpZ2EgZ3JhYW1hdHppaW1lIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfQ09OVEVYVF9NRU5VDQotICBkZXNjOiBib29rbWFyayBzZWxlY3Rpb24gbGlzdCBjb250ZXh0IG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCb29rbWFyayBBY3Rpb25zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkdyxIFtYXR6xKttanUgRGFyYsSrYmFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ3JhYW1hdHppaW1qdSBkYXJiaWliYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19DT05URVhUX1JFU1VNRQ0KLSAgZGVzYzogYm9va21hcmsgY29udGV4dCBtZW51LCByZXN1bWUgdGhpcyBib29rbWFyaw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlJlc3VtZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdHPEgWt0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRzYWFrdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX0NPTlRFWFRfREVMRVRFDQotICBkZXNjOiBib29rbWFyayBjb250ZXh0IG1lbnUsIGRlbGV0ZSB0aGlzIGJvb2ttYXJrDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGVsZXRlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6ZHrEk3N0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpkemVlc3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVVRPX0JPT0tNQVJLX1FVRVJZDQotICBkZXNjOiBwcm9tcHQgZm9yIHVzZXIgdG8gZGVjaWRlIHRvIGNyZWF0ZSBhbiBib29rbWFyaw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNyZWF0ZSBhIEJvb2ttYXJrPyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJenZlaWRvdCBHcsSBbWF0esSrbWk/Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmFpIGl6dmVpZG90IGdyYWFtYXR6aWltaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX0NSRUFURV9TVUNDRVNTDQotICBkZXNjOiBJbmRpY2F0ZXMgYm9va21hcmsgd2FzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm9va21hcmsgQ3JlYXRlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJHcsSBbWF0esSrbWUgSXp2ZWlkb3RhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ3JhYW1hdHppaW1lIGl6dmVpZG90YSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX0NSRUFURV9GQUlMVVJFDQotICBkZXNjOiBJbmRpY2F0ZXMgYm9va21hcmsgd2FzIG5vdCBjcmVhdGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm9va21hcmsgRmFpbGVkISINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOZWl6ZGV2xIFzIEl6dmVpZG90ISINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5laXpkZXZhYXMgaXp2ZWlkb3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19MT0FEX0VNUFRZDQotICBkZXNjOiBJbmRpY2F0ZXMgYm9va21hcmsgd2FzIGVtcHR5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm9va21hcmsgRW1wdHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVHVrxaFhIEdyxIFtYXR6xKttZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInR1a3NoYSBncmFhbWF0emlpbWUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1VORF9TRVRUSU5HUw0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNvdW5kIFNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNrYcWGYXMgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNrYW5qYXMgdXpzdGFhZGlpanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZPTFVNRQ0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJWb2x1bWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJza2FsanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBU1MNCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQmFzcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJCYXNpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYmFzaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RSRUJMRQ0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUcmVibGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXVnxaFhcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF1Z3NoYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQUxBTkNFDQotICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJhbGFuY2UiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQmFsYW5zcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJhbGFuc3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DSEFOTkVMX0NPTkZJR1VSQVRJT04NCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQ2hhbm5lbCBDb25maWd1cmF0aW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkthbsSBbHUgS29uZmlndXLEgWNpamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJrYW5hYWx1IGtvbmZpZ3VyYWFjaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0hBTk5FTF9TVEVSRU8NCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU3RlcmVvIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlN0ZXJlbyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInN0ZXJlbyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NIQU5ORUxfTU9OTw0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJNb25vIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1vbm8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtb25vIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0hBTk5FTF9DVVNUT00NCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQ3VzdG9tIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5lc3RhbmRhcnRhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibmVzdGFuZGFydGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DSEFOTkVMX0xFRlQNCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTW9ubyBMZWZ0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1vbm8gS3JlaXNhaXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtb25vIGtyZWlzYWlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0hBTk5FTF9SSUdIVA0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJNb25vIFJpZ2h0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1vbm8gTGFiYWlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibW9ubyBsYWJhaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DSEFOTkVMX0xFRlRSSUdIVA0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJNb25vIExlZnQgKyBSaWdodCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJLcmVpc2FpcyArIExhYmFpcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmdfc3djb2RlYzogIm1vbm8ga3JlaXNhaXMgcGx1cyBsYWJhaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DSEFOTkVMX0tBUkFPS0UNCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiS2FyYW9rZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLYXJhb2tlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia2FyYW9rZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NURVJFT19XSURUSA0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTdGVyZW8gV2lkdGgiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU3RlcmVvIFBsYXR1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzdGVyZW8gcGxhdHVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NST1NTRkVFRA0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkNyb3NzZmVlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkthbsSBbHUgSXpsxKtkemluxIHFoWFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAia2FuYWFsdSBpemxpaWR6aW5hYXNoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1JPU1NGRUVEX0RJUkVDVF9HQUlODQotICBkZXNjOiBpbiBjcm9zc2ZlZWQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkRpcmVjdCBHYWluIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiVGllxaFhaXMgU2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogInRpZXNoYWlzIHNrYWxqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1JPU1NGRUVEX0NST1NTX0dBSU4NCi0gIGRlc2M6IGluIGNyb3NzZmVlZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQ3Jvc3MgR2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlN0YXJwc2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogInN0YXJwc2thbGp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DUk9TU0ZFRURfSEZfQVRURU5VQVRJT04NCi0gIGRlc2M6IGluIGNyb3NzZmVlZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiSGlnaC1GcmVxdWVuY3kgQXR0ZW51YXRpb24iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJBdWdzdG8gRnJla3ZlbsSNdSBWxIFqaW7EgWp1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImF1Z3N0byBmcmVrdmVuY2h1IHZhYWppbmFhanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NST1NTRkVFRF9IRl9DVVRPRkYNCi0gIGRlc2M6IGluIGNyb3NzZmVlZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiSGlnaC1GcmVxdWVuY3kgQ3V0b2ZmIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQXVnc3RvIEZyZWt2ZW7EjXUgU8SBa3VtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiYXVnc3RvIGZyZWt2ZW5jaHUgc2Fha3VtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUg0KLSAgZGVzYzogaW4gdGhlIHNvdW5kIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkVxdWFsaXplciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkVrdmFsYWl6ZXJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJla3ZhbGFpemVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9FTkFCTEVEDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkVuYWJsZSBFUSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkllc2zEk2d0IEVrdmFsYWl6ZXJ1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJpZXNsxJNndCBla3ZhbGFpemVydSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9HUkFQSElDQUwNCi0gIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiR3JhcGhpY2FsIEVRIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiR3JhZmlza2FpcyBFa3ZhbGFpemVycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiZ3JhZmlza2FpcyBla3ZhbGFpemVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9QUkVDVVQNCi0gIGRlc2M6IGluIGVxIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJQcmVjdXQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJQYXN0aXByaW7EgWp1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImtvcGVlamFpcyBmcmVrdmVuY2h1IHBhc3RpcHJpbmFhanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9HQUlODQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlNpbXBsZSBFUSBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlZpZW5rxIFyxaFvdGFpcyBFa3ZhbGFpemVycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAidmllbmthYXJzaG90YWlzIGVrdmFsYWl6ZXJzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRVFVQUxJWkVSX0FEVkFOQ0VEDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkFkdmFuY2VkIEVRIFNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUGFwaWxkdXMgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAicGFwaWxkdXMgdXpzdGFhZGlpanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9TQVZFDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlNhdmUgRVEgUHJlc2V0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU2FnbGFixIF0IFV6c3TEgWTEq2p1bXVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJzYWdsYWJhYXQgZWt2YWxhaXplcmEgdXpzdGFhZGlpanVtdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FUVVBTElaRVJfQlJPV1NFDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkJyb3dzZSBFUSBQcmVzZXRzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQXBsxatrb3QgVXpzdMSBZMSranVtdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImFwbHV1a290IGVrdmFsYWl6ZXJhIHV6c3RhYWRpaWp1bXVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRVFVQUxJWkVSX0VESVRfTU9ERQ0KLSAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJFZGl0IG1vZGU6ICVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUmXFvsSrbXM6ICVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FUVVBTElaRVJfR0FJTl9JVEVNDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIiVkIEh6IEJhbmQgR2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIiVkIEh6IEpvc2xhcyBTdGlwcnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiam9zbGFzIHN0aXBydW1zIGhlcmNvcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0VRVUFMSVpFUl9CQU5EX0xPV19TSEVMRg0KLSAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJMb3cgU2hlbGYgRmlsdGVyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQmFzdSBGaWx0cnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImJhc3UgZmlsdHJzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfUEVBSw0KLSAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJQZWFrIEZpbHRlciAlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlDEq8S3YSBGaWx0cnMgJWQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogInBpaWtqYSBmaWx0cnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FUVVBTElaRVJfQkFORF9ISUdIX1NIRUxGDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkhpZ2ggU2hlbGYgRmlsdGVyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQXVnc3RvIEZyZWt2ZW7EjXUgRmlsdHJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJhdWdzdG8gZnJla3ZlbmNodSBmaWx0cnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FUVVBTElaRVJfQkFORF9DVVRPRkYNCi0gIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQ3V0b2ZmIEZyZXF1ZW5jeSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlJvYmXFvmZyZWt2ZW5jZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAicm9iZXpoZnJla3ZlbmNlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfQ0VOVEVSDQotICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkNlbnRyZSBGcmVxdWVuY3kiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJDZW50cmEgRnJla3ZlbmNlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJjZW50cmEgZnJla3ZlbmNlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfUQ0KLSAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJRIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUGxhdHVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAicGxhdHVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJVEhFUklORw0KLSAgZGVzYzogaW4gdGhlIHNvdW5kIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkRpdGhlcmluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlNrYcWGYXMgSXpsxKtkemluxIHFoWFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAic2thbmphcyBpemxpaWR6aW5hYXNoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTE9VRE5FU1MNCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJMb3VkbmVzcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIlNrYcS8dW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJza2FsanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FVVE9WT0wNCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJBdXRvIFZvbHVtZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIkF1dG8gU2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogImF1dG8gc2thbGp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERUNBWQ0KLSAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIkFWIERlY2F5IFRpbWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJBUyBSZWd1bMSTxaFhbmFzIExhaWtzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVVBFUkJBU1MNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJTdXBlciBCYXNzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAiQmFzdSBQYXN0aXByaW7EgWp1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogImJhc3UgcGFzdGlwcmluYWFqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTURCX0VOQUJMRQ0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIk1EQiBFbmFibGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJJZXNsxJNndCBNxIFrc2zEq2dvcyBCYXN1cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAiaWVzbGVlZ3QgbWFha3NsaWlnb3MgYmFzdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NREJfU1RSRU5HVEgNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJNREIgU3RyZW5ndGgiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJNQiBTdGlwcnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAibWFha3NsaWlnbyBiYXN1IHN0aXBydW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTURCX0hBUk1PTklDUw0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIk1EQiBIYXJtb25pY3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJNQiBLb252ZXJ0xJPFoWFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAibWFha3NsaWlnbyBiYXN1IGtvbnZlcnRlZXNoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTURCX0NFTlRFUg0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbWFzZjogIk1EQiBDZW50cmUgRnJlcXVlbmN5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAiTUIgQ2VudHJhIEZyZWt2ZW5jZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAibWFha3NsaWlnbyBiYXN1IGNlbnRyYSBmcmVrdmVuY2UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NREJfU0hBUEUNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJNREIgU2hhcGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG1hc2Y6ICJNQiBGb3JtYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtYXNmOiAibWFha3NsaWlnbyBiYXN1IGZvcm1hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfR0VORVJBTF9TRVRUSU5HUw0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkdlbmVyYWwgU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVmlzcMSBcsSTamkgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZpc3BhYXJlZWppIHV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTEFZQkFDSw0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSgpDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGxheWJhY2sgU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXRza2HFhm/FoWFuYXMgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0c2thbmpvc2hhbmFzIFV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TSFVGRkxFDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2h1ZmZsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJKYXVrdGEgU2VjxKtiYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImphdWt0YSBzZWNpaWJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVQRUFUDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVwZWF0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0a8SBcnRvdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0a2FhcnRvdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FMTA0KLSAgZGVzYzogZ2VuZXJpYyBzdHJpbmcgdXNlZCBib3RoIGluIGRpciBmaWxlIGZpbHRlciBhbmQgcmVwZWF0IG1vZGUgc2VsZWN0aW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWxsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlZpc3VzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmlzdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRVBFQVRfT05FDQotICBkZXNjOiByZXBlYXQgb25lIHNvbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJPbmUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVmllbnUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2aWVudSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFUEVBVF9BQg0KLSAgZGVzYzogcmVwZWF0IHJhbmdlIGZyb20gcG9pbnQgQSB0byBCDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQS1CIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkEtQiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFhLWJlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlfU0VMRUNURUQNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQbGF5IFNlbGVjdGVkIEZpcnN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6dsSTbMSTdG8gQXRza2HFhm90IFBpcm1vIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXp2ZWVsZWV0byBmYWlsdSBhdHNrYW5qb3QgcGlybW8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XSU5EX01FTlUNCi0gIGRlc2M6IGluIHRoZSBwbGF5YmFjayBzdWIgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZhc3QtRm9yd2FyZC9SZXdpbmQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUMSBcnTEq8WhYW5hL0F0dMSrxaFhbmEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhYXRyYWEgcGFhcnRpaXNoYW5hIHVuIGF0dGlpc2hhbmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GRlJXX1NURVANCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGRi9SVyBNaW4gU3RlcCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQVC9BVFQgTWluIFNvbGlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibWluaW1hYWxhaXMgc29saXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GRlJXX0FDQ0VMDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRkYvUlcgQWNjZWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUFQvQVRUIFBhxIF0cmluIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiUGFhYXRyaW5hYWp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NUDNCVUZGRVJfTUFSR0lODQotICBkZXNjOiBNUDMgYnVmZmVyIG1hcmdpbiB0aW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQW50aS1Ta2lwIEJ1ZmZlciINCi0gICAgZmxhc2hfc3RvcmFnZTogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlByZXRyYXVzdMSrxaFhbsSBcyBCdWZlcmlzIg0KLSAgICBmbGFzaF9zdG9yYWdlOiBub25lDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwcmV0cmF1c3RpaXNoYW5hYXMgYnVmZXJpcyINCi0gICAgZmxhc2hfc3RvcmFnZTogbm9uZQ0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRkFERV9PTl9TVE9QDQotICBkZXNjOiBvcHRpb25zIG1lbnUgdG8gc2V0IGZhZGUgb24gc3RvcCBvciBwYXVzZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZhZGUgb24gU3RvcC9QYXVzZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemR6acWhYW5hIHBpZSBTdG9wL1BhdXplcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6ZHppc2hhbmEgcGllIHN0b3AgdmFpIHBhdXplcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BBUlRZX01PREUNCi0gIGRlc2M6IHBhcnR5IG1vZGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQYXJ0eSBNb2RlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkJhbGzEq3RlcyBSZcW+xKttcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJhbGxpaXRlcyByZXpoaWltcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NST1NTRkFERQ0KLSAgZGVzYzogaW4gcGxheWJhY2sgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiQ3Jvc3NmYWRlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJQxIFya2zEgcWhYW7EgXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAicGFhcmtsYWFzaGFuYWFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1JPU1NGQURFX0VOQUJMRQ0KLSAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiRW5hYmxlIENyb3NzZmFkZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiSXptYW50b3QgUMSBcmtsxIHFoWFub3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiaXptYW50b3QgcGFhcmtsYWFzaGFub3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NQU5UUkFDS1NLSVANCi0gIGRlc2M6IGluIGNyb3NzZmFkZSBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJNYW51YWwgVHJhY2sgU2tpcCBPbmx5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJUaWthaSBQxIFyc2zEk2R6b3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAidGlrYWkgcGFhcnNsZWVkem90IGR6aWVzbWFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0hVRkZMRV9UUkFDS1NLSVANCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiU2h1ZmZsZSBvciBNYW51YWwgVHJhY2sgU2tpcCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiSmF1a3RhIFNlY8SrYmEgVmFpIFDEgXJzbMSTZHpvdGllcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJhdHNrYW5qb2pvdCBqYXVrdGFhIHNlY2lpYmFhIHZhaSBwYWFyc2xlZWR6b3RpZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DUk9TU0ZBREVfRkFERV9JTl9ERUxBWQ0KLSAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiRmFkZS1JbiBEZWxheSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiSWV2YWRhIEFpenR1cmUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiaWV2YWRhIGFpenR1cmUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DUk9TU0ZBREVfRkFERV9JTl9EVVJBVElPTg0KLSAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiRmFkZS1JbiBEdXJhdGlvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiSWV2YWRhIEdhcnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJpZXZhZGEgZ2FydW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1JPU1NGQURFX0ZBREVfT1VUX0RFTEFZDQotICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJGYWRlLU91dCBEZWxheSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiQmVpZ3UgQWl6dHVyZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJiZWlndSBhaXp0dXJlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1JPU1NGQURFX0ZBREVfT1VUX0RVUkFUSU9ODQotICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJGYWRlLU91dCBEdXJhdGlvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiQmVpZ3UgR2FydW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGNyb3NzZmFkZTogImJlaWd1IGdhcnVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NST1NTRkFERV9GQURFX09VVF9NT0RFDQotICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJGYWRlLU91dCBNb2RlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJCZWlndSBSZcW+xKttcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJiZWlndSByZXpoaWltcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01JWA0KLSAgZGVzYzogaW4gcGxheWJhY2sgc2V0dGluZ3MsIGNyb3NzZmFkZSBvcHRpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiTWl4Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJTYWphdWvFoWFuxIFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGNyb3NzZmFkZTogInNhamF1a3NoYW5hYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRVBMQVlHQUlODQotICBkZXNjOiBpbiByZXBsYXlnYWluDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVwbGF5Z2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTa2HEvHVtYSBOb3JtYWxpesSBY2lqYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNrYWxqdW1hIG5vcm1hbGl6YWFjaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVQTEFZR0FJTl9OT0NMSVANCi0gIGRlc2M6IGluIHJlcGxheWdhaW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlByZXZlbnQgQ2xpcHBpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJOb3bEk3JzdCBQxIFybGlla3UgU2thxLx1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIm5vdmVlcnN0IHBhYXJsaWVrdSBza2FsanVtdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFUExBWUdBSU5fTU9ERQ0KLSAgZGVzYzogaW4gcmVwbGF5Z2Fpbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlJlcGxheWdhaW4gVHlwZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOb3JtYWxpesSBY2lqYXMgVmVpZHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJub3JtYWxpemFhY2lqYXMgdmVpZHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BTEJVTV9HQUlODQotICBkZXNjOiBpbiByZXBsYXlnYWluDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWxidW0gR2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBbGLFq211IFNrYcS8dW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYWxidXVtdSBza2FsanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RSQUNLX0dBSU4NCi0gIGRlc2M6IGluIHJlcGxheWdhaW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUcmFjayBHYWluIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkR6aWVzbXUgU2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkemllc211IHNrYWxqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0hVRkZMRV9HQUlODQotICBkZXNjOiB1c2UgdHJhY2sgZ2FpbiBpZiBzaHVmZmxlIG1vZGUgaXMgb24sIGFsYnVtIGdhaW4gb3RoZXJ3aXNlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVHJhY2sgR2FpbiBpZiBTaHVmZmxpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRHppZXNtdSBKYSBKYXVrdGEgU2VjxKtiYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImR6aWVzbXUgamEgamF1a3RhIHNlY2lpYmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRVBMQVlHQUlOX1BSRUFNUA0KLSAgZGVzYzogaW4gcmVwbGF5Z2FpbiBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlByZS1hbXAiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUHJpZWvFoXBhc3RpcHJpbsSBanVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInByaWVrc2hwYXN0aXByaW5hYWp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CRUVQDQotICBkZXNjOiBpbiBwbGF5YmFjayBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiVHJhY2sgU2tpcCBCZWVwIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiRHouUMSBcnNsxJNnxaFhbmFzIFDEq2tzdGllbnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImR6aWVzbXUgcGFhcnNsZWVnc2hhbmFzIHBpaWtzdGllbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XRUFLDQotICBkZXNjOiBpbiBiZWVwIHZvbHVtZSBpbiBwbGF5YmFjayBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiV2VhayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlbEgWrFoSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAidmFhanNoIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9ERVJBVEUNCi0gIGRlc2M6IGluIGJlZXAgdm9sdW1lIGluIHBsYXliYWNrIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJNb2RlcmF0ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlZpZHV2xJNqcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAidmlkdXZlZWpzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1RST05HDQotICBkZXNjOiBpbiBiZWVwIHZvbHVtZSBpbiBwbGF5YmFjayBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU3Ryb25nIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU3DEk2PEq2dzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJzcGVlY2lpZ3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TUERJRl9FTkFCTEUNCi0gIGRlc2M6IGluIHBsYXliYWNrIHNldHRpbmdzIG1lbnUuIGVuYWJsZS9kaXNhYmxlIHRoZSBvcHRpY2FsIG91dA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzcGRpZl9wb3dlcjogIk9wdGljYWwgT3V0cHV0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzcGRpZl9wb3dlcjogIk9wdGlza8SBIEl6ZWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHNwZGlmX3Bvd2VyOiAib3B0aXNrYWEgaXplamEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ORVhUX0ZPTERFUg0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudS4gU2hvdWxkIHdlIGFsbG93IG1vdmUgdG8gbmV4dC9wcmV2IGZvbGRlciBmcm9tIGxhc3QvZmlyc3QgdHJhY2sgb2YgY3VycmVudCBvbmUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJBdXRvLUNoYW5nZSBEaXJlY3RvcnkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXV0b23EgXRpc2tpIE1haW7Eq3QgTWFwaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF1dG9tYWF0aXNraSBtYWluaWl0IG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SQU5ET00NCi0gIGRlc2M6IHJhbmRvbSBmb2xkZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSYW5kb20iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSmF1a3TEgSBTZWPEq2LEgSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImphdWt0YWEgc2VjaWliYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVURJT1NDUk9CQkxFUg0KLSAgZGVzYzogIkxhc3QuZm0gTG9nIiBpbiB0aGUgcGxheWJhY2sgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkxhc3QuZm0gTG9nIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlZlaWRvdCBMYXN0LmZtIExvZ3UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2ZWlkb3QgTGFzdC5mbSBsb2d1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1VFU0hFRVRfRU5BQkxFDQotICBkZXNjOiBjdWVzaGVldCBzdXBwb3J0IG9wdGlvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkN1ZXNoZWV0IFN1cHBvcnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQ3VlIEF0YmFsc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiY3VlIGF0YmFsc3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSEVBRFBIT05FX1VOUExVRw0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgaGVhZHBob25lX2RldGVjdGlvbjogIlBhdXNlIG9uIEhlYWRwaG9uZSBVbnBsdWciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJBdHZpZW5vam90IEF1c3RpxYZhcyBOb3BhdXrEk3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgaGVhZHBob25lX2RldGVjdGlvbjogImF0dmllbm9qb3QgYXVzdGluamFzIG5vcGF1emVldCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hFQURQSE9ORV9VTlBMVUdfUkVTVU1FDQotICBkZXNjOiBpbiBwYXVzZV9waG9uZXNfbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgaGVhZHBob25lX2RldGVjdGlvbjogIlBhdXNlIGFuZCBSZXN1bWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJOb3BhdXrEk3QgVW4gQXRzxIFrdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBoZWFkcGhvbmVfZGV0ZWN0aW9uOiAibm9wYXV6ZWV0IHVuIGF0c2Fha3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IRUFEUEhPTkVfVU5QTFVHX1JXDQotICBkZXNjOiBkZXByZWNhdGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBoZWFkcGhvbmVfZGV0ZWN0aW9uOiAiQXR0xKvFoWFuYXMgSWxndW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJhdHRpaXNoYW5hcyBpbGd1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IRUFEUEhPTkVfVU5QTFVHX0RJU0FCTEVfQVVUT1JFU1VNRQ0KLSAgZGVzYzogaW4gcGF1c2VfcGhvbmVzX21lbnUuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJEaXNhYmxlIHJlc3VtZSBvbiBzdGFydHVwIGlmIHBob25lcyB1bnBsdWdnZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJJenNsIEF0c8SBa3QgUGFsYWnFvm90IGphIEF1c3RpxYZhcyBJenJhdXRhcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBoZWFkcGhvbmVfZGV0ZWN0aW9uOiAiaXpzbGVlZ3QgYXV0b21hYXRpc2t1IGF0c2Fha3NoYW51IGphIGF1c3RpbmphcyBpciBpenJhdXRhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZJTEUNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUoKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZpbGUgVmlldyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJGYWlsdSBQxIFybMWra3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJmYWlsdSBwYWFybHV1a3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1JUX0NBU0UNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTb3J0IENhc2UgU2Vuc2l0aXZlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsWgxLdpcm90IFDEk2MgTGllbC5CdXJ0LiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNoa2ppcm90IHBlZWMgbGllbGFqaWVtIGJ1cnRpZW0iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1JUX0RJUg0KLSAgZGVzYzogYnJvd3NlciBzb3J0aW5nIHNldHRpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTb3J0IERpcmVjdG9yaWVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsWgxLdpcm90IE1hcGVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2hramlyb3QgbWFwZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1JUX0ZJTEUNCi0gIGRlc2M6IGJyb3dzZXIgc29ydGluZyBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU29ydCBGaWxlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICLFoMS3aXJvdCBGYWlsdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzaGtqaXJvdCBmYWlsdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1JUX0FMUEhBDQotICBkZXNjOiBicm93c2VyIHNvcnRpbmcgc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkFscGhhYmV0aWNhbCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBbGZhYsSTdGlza2kiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhbGZhYmVldGlza2kiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TT1JUX0RBVEUNCi0gIGRlc2M6IGJyb3dzZXIgc29ydGluZyBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQnkgRGF0ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQxJNjIFZlY3VtYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBlZWMgdmVjdW1hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU09SVF9EQVRFX1JFVkVSU0UNCi0gIGRlc2M6IGJyb3dzZXIgc29ydGluZyBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQnkgTmV3ZXN0IERhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUMSTYyBKYXVuxIFrxIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwZWVjIGphdW5hYWthYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NPUlRfVFlQRQ0KLSAgZGVzYzogYnJvd3NlciBzb3J0aW5nIHNldHRpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCeSBUeXBlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEk2MgVmVpZGEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwZWVjIHZlaWRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRklMVEVSDQotICBkZXNjOiBzZXR0aW5nIG5hbWUgZm9yIGRpciBmaWx0ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTaG93IEZpbGVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlLEgWTEq3QgRmFpbHVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicmFhZGlpdCBmYWlsdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GSUxURVJfU1VQUE9SVEVEDQotICBkZXNjOiBzaG93IGFsbCBmaWxlIHR5cGVzIHN1cHBvcnRlZCBieSBSb2NrYm94DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU3VwcG9ydGVkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0YmFsc3TEq3RvcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJhYWRpaXQgYXRiYWxzdGlpdG9zIGZhaWx1cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZJTFRFUl9NVVNJQw0KLSAgZGVzYzogc2hvdyBvbmx5IG11c2ljLXJlbGF0ZWQgZmlsZXMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJNdXNpYyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJNxat6aWthcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJhYWRpaXQgdGlrYWkgbXV1emlrYXMgZmFpbHVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk9MTE9XDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRm9sbG93IFBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNla290IFNhcmFrc3RhbSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNla290IHNhcmFrc3RhbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NIT1dfUEFUSA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNob3cgUGF0aCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSxIFkxKt0IENlxLx1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicmFhZGlpdCBjZWxqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NIT1dfUEFUSF9DVVJSRU5UDQotICBkZXNjOiBpbiBzaG93IHBhdGggbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkN1cnJlbnQgRGlyZWN0b3J5IE9ubHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVGlrYWkgUGF0cmVpesSTam8gTWFwaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInRpa2FpIHBhdHJlaXplZWpvIG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ESVNQTEFZX0ZVTExfUEFUSA0KLSAgZGVzYzogdHJhY2sgZGlzcGxheSBvcHRpb25zDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRnVsbCBQYXRoIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlBpbG51IENlxLx1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGlsbnUgY2VsanUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CVUlMRElOR19EQVRBQkFTRQ0KLSAgZGVzYzogc3BsYXNoIGRhdGFiYXNlIGJ1aWxkaW5nIHByb2dyZXNzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQnVpbGRpbmcgZGF0YWJhc2UuLi4gJWQgZm91bmQgKE9GRiB0byByZXR1cm4pIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIkJ1aWxkaW5nIGRhdGFiYXNlLi4uICVkIGZvdW5kIChTVE9QIHRvIHJldHVybikiDQotICAgIGlwb2QqOiAiQnVpbGRpbmcgZGF0YWJhc2UuLi4gJWQgZm91bmQgKFBSRVYgdG8gcmV0dXJuKSINCi0gICAgaWF1ZGlveDUsaWF1ZGlvbTUsZ2lnYWJlYXQqLG1yb2JlMTAwOiAiQnVpbGRpbmcgZGF0YWJhc2UuLi4gJWQgZm91bmQgKExFRlQgdG8gcmV0dXJuKSINCi0gICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2Isc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHNhbnNhZnV6ZSosdmliZTUwMDogIkJ1aWxkaW5nIGRhdGFiYXNlLi4uICVkIGZvdW5kIChQUkVWIHRvIHJldHVybikiDQotICAgIGdvZ2VhcnNhOTIwMDogIkJ1aWxkaW5nIGRhdGFiYXNlLi4uICVkIGZvdW5kIChSRVcgdG8gcmV0dXJuKSINCi0gICAgYXJjaG9zcGxheWVyOiAiQnVpbGRpbmcgREIgJWQgZm91bmQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVmVpZG9qdSBkYXR1YsSBemkuLi4gJWQgYXRyYXN0YXMgKE9GRiBsYWkgdHVycGluxIF0dSkiDQotICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiVmVpZG9qdSBkYXR1YsSBemkuLi4gJWQgYXRyYXN0YXMgKFNUT1AgbGFpIHR1cnBpbsSBdHUpIg0KLSAgICBpcG9kKjogIlZlaWRvanUgZGF0dWLEgXppLi4uICVkIGF0cmFzdGFzIChQUkVWIGxhaSB0dXJwaW7EgXR1KSINCi0gICAgaWF1ZGlveDUsaWF1ZGlvbTUsZ2lnYWJlYXQqLG1yb2JlMTAwOiAiVmVpZG9qdSBkYXR1YsSBemkuLi4gJWQgYXRyYXN0YXMgKExFRlQgbGFpIHR1cnBpbsSBdHUpIg0KLSAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixzYW5zYWUyMDAqLHNhbnNhYzIwMCosc2Fuc2FmdXplKix2aWJlNTAwOiAiVmVpZG9qdSBkYXR1YsSBemkuLi4gJWQgYXRyYXN0YXMgKFBSRVYgbGFpIHR1cnBpbsSBdHUpIg0KLSAgICBnb2dlYXJzYTkyMDA6ICJWZWlkb2p1IGRhdHVixIF6aS4uLiAlZCBhdHJhc3RhcyAoUkVXIGxhaSB0dXJwaW7EgXR1KSINCi0gICAgYXJjaG9zcGxheWVyOiAiVmVpZG9qdSBEQiBhdHJhc3RzICVkIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRyYXN0aSBpZXJha3N0aSBkYXR1YmFhemVpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVEFHQ0FDSEVfUkFNDQotICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdGNfcmFtY2FjaGU6ICJMb2FkIHRvIFJBTSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgdGNfcmFtY2FjaGU6ICJJZWzEgWTEk3QgQXRtacWGxIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgdGNfcmFtY2FjaGU6ICJpZWxhYWRlZXQgb3BlcmF0aWl2YWphYSBhdG1pbmphYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RBR0NBQ0hFX0FVVE9VUERBVEUNCi0gIGRlc2M6IGluIHRhZyBjYWNoZSBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkF1dG8gVXBkYXRlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0amF1bm90IEF1dG9txIF0aXNraSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0amF1bm90IGF1dG9tYWF0aXNraSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RBR0NBQ0hFX0ZPUkNFX1VQREFURQ0KLSAgZGVzYzogaW4gdGFnIGNhY2hlIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiSW5pdGlhbGl6ZSBOb3ciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSW5pY2lhbGl6xJN0IFRhZ2FkIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaW5pY2lhbGl6ZWV0IHRhZ2FkIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVEFHQ0FDSEVfVVBEQVRFDQotICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJVcGRhdGUgTm93Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0amF1bm90IFRhZ2FkIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRqYXVub3QgdGFnYWQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SVU5USU1FREJfQUNUSVZFDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51Lg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkdhdGhlciBSdW50aW1lIERhdGEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiS3LEgXQgU3RhdGlzdGlrdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtyYWF0IHN0YXRpc3Rpa3UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UQUdDQUNIRV9FWFBPUlQNCi0gIGRlc2M6IGluIHRhZyBjYWNoZSBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkV4cG9ydCBNb2RpZmljYXRpb25zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkVrc3BvcnTEk3QgSXptYWnFhmFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZWtzcG9ydGVldCBpem1haW5qYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UQUdDQUNIRV9JTVBPUlQNCi0gIGRlc2M6IGluIHRhZyBjYWNoZSBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkltcG9ydCBNb2RpZmljYXRpb25zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkltcG9ydMSTdCBJem1hacWGYXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpbXBvcnRlZXQgaXptYWluamFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVEFHQ0FDSEVfRk9SQ0VfVVBEQVRFX1NQTEFTSA0KLSAgZGVzYzogaW4gdGFnIGNhY2hlIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVXBkYXRpbmcgaW4gYmFja2dyb3VuZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdGphdW5pbmEgZm9uxIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhdGphdW5pbmEgZm9uYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UQUdDQUNIRV9JTklUDQotICBkZXNjOiB3aGlsZSBpbml0aWFsaXppbmcgdGFnY2FjaGUgb24gYm9vdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNvbW1pdHRpbmcgZGF0YWJhc2UiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUGFsYWnFviBkYXR1YsSBemkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWxhaXpoIGRhdHViYWF6aSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RBR0NBQ0hFX0JVU1kNCi0gIGRlc2M6IHdoZW4gdHJ5aW5nIHRvIHNodXRkb3duIGFuZCB0YWdjYWNoZSBpcyBjb21taXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGF0YWJhc2UgaXMgbm90IHJlYWR5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkRhdHVixIF6ZSB2xJNsIGRhcmJvamFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGF0dWJhYXplIHZlZWwgZGFyYm9qYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UQUdOQVZJX0FMTF9UUkFDS1MNCi0gIGRlc2M6ICI8QWxsIHRyYWNrcz4iIGVudHJ5IGluIHRhZyBicm93c2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiPEFsbCB0cmFja3M+Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIjxWaXNhcyBkemllc21hcz4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2aXNhcyBkemllc21hcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJU1BMQVkNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUoKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRpc3BsYXkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXR0xJNscyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0dGVlbHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DVVNUT01fRk9OVA0KLSAgZGVzYzogaW4gc2V0dGluZ19tZW51KCkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkZvbnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJGb250aSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiZm9udGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XSElMRV9QTEFZSU5HDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51KCkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJXaGlsZSBQbGF5aW5nIFNjcmVlbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdHNrYcWGb8WhYW5hcyBFa3LEgW5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRza2Fuam9zaGFuYXMgZWtyYWFucyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFTU9URV9XSElMRV9QTEFZSU5HDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51KCkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiUmVtb3RlIFdoaWxlIFBsYXlpbmcgU2NyZWVuIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJQdWx0cyBBdHNrYcWGb8WhYW5hcyBFa3LEgW5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogInB1bHRzIGF0c2thbmpvc2hhbmFzIGVrcmFhbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MQ0RfTUVOVQ0KLSAgZGVzYzogaW4gdGhlIGRpc3BsYXkgc3ViIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJMQ0QgU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRWtyxIFuYSBVenN0xIFkxKtqdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZWtyYWFuYSB1enN0YWFkaWlqdW1pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0xJR0hUDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQmFja2xpZ2h0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFwZ2Fpc21vanVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFwZ2Fpc21vanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBQ0tMSUdIVF9PTl9XSEVOX0NIQVJHSU5HDQotICBkZXNjOiBpbiBkaXNwbGF5X3NldHRpbmdzX21lbnUsIGJhY2tsaWdodCB0aW1lb3V0IHdpdGggY2hhcmdlciBjb25uZWN0ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJCYWNrbGlnaHQgKFdoaWxlIFBsdWdnZWQgSW4pIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjaGFyZ2luZzogIkFwZ2Fpc21vanVtcyAoTMSBZMSTam90KSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjaGFyZ2luZzogImFwZ2Fpc21vanVtcyBsYWFkZWVzaGFuYXMgbGFpa2FhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0xJR0hUX09OX0JVVFRPTl9IT0xEDQotICBkZXNjOiBpbiBsY2Qgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgaG9sZF9idXR0b246ICJCYWNrbGlnaHQgb24gSG9sZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgaG9sZF9idXR0b246ICJBcGdhaXNtb2p1bXMga2FkIEhvbGQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgaG9sZF9idXR0b246ICJhcGdhaXNtb2p1bXMgYXIgbm9ibG9ramVldGllbSB0YXVzdGluamllbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NBUFRJT05fQkFDS0xJR0hUDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQ2FwdGlvbiBCYWNrbGlnaHQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTm9zYXVrdW1hIEFwZ2Fpc21vanVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5vc2F1a3VtYSBhcGdhaXNtb2p1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQUNLTElHSFRfRkFERV9JTg0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBiYWNrbGlnaHRfZmFkZSo6ICJCYWNrbGlnaHQgRmFkZSBJbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2ZhZGUqOiAiQXBnYWlzbW9qdW1hIGllc2wubGFpa3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2ZhZGUqOiAiYXBnYWlzbW9qdW1hIGllc2xlZWdzaGFuYWFzIGxhaWtzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0xJR0hUX0ZBREVfT1VUDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGJhY2tsaWdodF9mYWRlKjogIkJhY2tsaWdodCBGYWRlIE91dCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2ZhZGUqOiAiQXBnYWlzbW9qdW1hIGl6c2wubGFpa3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2ZhZGUqOiAiYXBnYWlzbW9qdW1hIGl6c2xlZWdzaGFuYWFzIGxhaWtzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0xJR0hUX0ZJTFRFUl9GSVJTVF9LRVlQUkVTUw0KLSAgZGVzYzogQmFja2xpZ2h0IGJlaGF2aW91ciBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRmlyc3QgQnV0dG9ucHJlc3MgRW5hYmxlcyBCYWNrbGlnaHQgT25seSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQaXJtYWlzIFNwaWVkaWVucyBJZXNsxJNkeiBUaWthaSBBcGdhaXNtb2p1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwaXJtYWlzIHNwaWVkaWVucyBJZXNsZWVkeiB0aWthaSBhcGdhaXNtb2p1bXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MQ0RfU0xFRVBfQUZURVJfQkFDS0xJR0hUX09GRg0KLSAgZGVzYzogSW4gZGlzcGxheSBzZXR0aW5ncywgdGltZSB0byBzd2l0Y2ggTENEIGNoaXAgaW50byBwb3dlciBzYXZpbmcgc3RhdGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX3NsZWVwOiAiU2xlZXAgKEFmdGVyIEJhY2tsaWdodCBPZmYpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfc2xlZXA6ICJFa3LEgW5hIEl6c2zEk2fFoWFuYXMgTGFpa3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX3NsZWVwOiAiZWtyYWFuYSBpenNsZWVnc2hhbmFzIGxhaWtzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTkVWRVINCi0gIGRlc2M6IGluIGxjZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfc2xlZXA6ICJOZXZlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX3NsZWVwOiAiTmVrYWQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX3NsZWVwOiAibmVrYWQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CUklHSFRORVNTDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGJhY2tsaWdodF9icmlnaHRuZXNzOiAiQnJpZ2h0bmVzcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2JyaWdodG5lc3M6ICJTcGlsZ3R1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYmFja2xpZ2h0X2JyaWdodG5lc3M6ICJzcGlsZ3R1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT05UUkFTVA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNvbnRyYXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktvbnRyYXN0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtvbnRyYXN0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lOVkVSVA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfaW52ZXJ0LHJlbW90ZV9sY2RfaW52ZXJ0OiAiTENEIE1vZGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJFa3LEgW5hIFJlxb7Eq21zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJla3JhYW5hIHJlemhpaW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSU5WRVJUX0xDRF9JTlZFUlNFDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJJbnZlcnNlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfaW52ZXJ0LHJlbW90ZV9sY2RfaW52ZXJ0OiAiTmVnYXTEq3ZzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJuZWdhdGlpdnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTElQX0RJU1BMQVkNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUsIG9wdGlvbiB0byB0dXJuIGRpc3BsYXkrYnV0dG9zIGJ5IDE4MCBkZWdyZWVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJVcHNpZGUgRG93biINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkvEgWrEgW0gR2Fpc8SBIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJrYWFqYWFtIGdhaXNhYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lOVkVSVF9DVVJTT1INCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkxpbmUgU2VsZWN0b3IgVHlwZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkzEq25pamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogImxpaW5pamEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JTlZFUlRfQ1VSU09SX1BPSU5URVINCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlBvaW50ZXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJLdXJzb3JzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJrdXJzb3JzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSU5WRVJUX0NVUlNPUl9CQVINCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkJhciAoSW52ZXJzZSkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJSaW5kYSAoQXB2xJNyc3RhKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiYXB2ZWVyc3RhIHJpbmRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0xFQVJfQkFDS0RST1ANCi0gIGRlc2M6IHRleHQgZm9yIExDRCBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9ub24tbW9ubzogIkNsZWFyIEJhY2tkcm9wIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfbm9uLW1vbm86ICJOb3bEgWt0IEZvbnUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX25vbi1tb25vOiAibm92YWFrdCBmb251Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0dST1VORF9DT0xPUg0KLSAgZGVzYzogbWVudSBlbnRyeSB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3INCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiQmFja2dyb3VuZCBDb2xvdXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIkZvbmEgS3LEgXNhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogImZvbmEga3JhYXNhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk9SRUdST1VORF9DT0xPUg0KLSAgZGVzYzogbWVudSBlbnRyeSB0byBzZXQgdGhlIGZvcmVncm91bmQgY29sb3INCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiRm9yZWdyb3VuZCBDb2xvdXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlByaWVrxaFwbMSBbmEgS3LEgXNhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogInByaWVrc2hwbGFhbmEga3JhYXNhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVTRVRfQ09MT1JTDQotICBkZXNjOiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlJlc2V0IENvbG91cnMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIk5va2x1c8STdMSBcyBLcsSBc2FzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIm5va2x1c2VldGFhcyBrcmFhc2FzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09MT1JfUkdCX0xBQkVMUw0KLSAgZGVzYzogd2hhdCB0byBzaG93IGZvciB0aGUgJ1InICdHJyAnQicgT05FIExFVFRFUiBFQUNIDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlJHQiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiU2FaYVppIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPTE9SX1JHQl9WQUxVRQ0KLSAgZGVzYzogaW4gY29sb3Igc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlJHQjogJTAyWCUwMlglMDJYIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJTYVphWmk6ICUwMlglMDJYJTAyWCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0xPUl9VTkFDQ0VQVEFCTEUNCi0gIGRlc2M6IHNwbGFzaCB3aGVuIHVzZXIgc2VsZWN0cyBhbiBpbnZhbGlkIGNvbG91cg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJJbnZhbGlkIGNvbG91ciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiTmVkZXLEq2dhIEtyxIFzYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MQ0RfUkVNT1RFX01FTlUNCi0gIGRlc2M6IGluIHRoZSBkaXNwbGF5IHN1YiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIlJlbW90ZS1MQ0QgU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIlB1bHRzIEVrcsSBbmEgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJwdWx0cyBla3JhYW5hIHV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRURVQ0VfVElDS0lORw0KLSAgZGVzYzogaW4gcmVtb3RlIGxjZCBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZV90aWNraW5nOiAiUmVkdWNlIFRpY2tpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZV90aWNraW5nOiAiU2FtYXppbsSBdCBUaWvFocS3aSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGVfdGlja2luZzogInNhbWF6aW5hYXQgdGlrc2hramkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TSE9XX0lDT05TDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2hvdyBJY29ucyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSxIFkxKt0IElrb25hcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJhYWRpaXQgaWtvbmFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0NST0xMX01FTlUNCi0gIGRlc2M6IGluIGRpc3BsYXlfc2V0dGluZ3NfbWVudSgpDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2Nyb2xsaW5nIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJ1bGzEk8WhYW5hIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicnVsbGVlc2hhbmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TQ1JPTEwNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTY3JvbGwgU3BlZWQgU2V0dGluZyBFeGFtcGxlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJ1bGzEk8WhYW5hcyDEgHRydW1hIFBpZW3Ek3JzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0NST0xMX1NQRUVEDQotICBkZXNjOiBpbiBkaXNwbGF5X3NldHRpbmdzX21lbnUoKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNjcm9sbCBTcGVlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSdWxsxJPFoWFuYXMgxIB0cnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJ1bGxlZXNoYW5hcyBhYXRydW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0NST0xMX0RFTEFZDQotICBkZXNjOiBEZWxheSBiZWZvcmUgc2Nyb2xsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2Nyb2xsIFN0YXJ0IERlbGF5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJ1bGzEk8WhYW5hcyBBaXp0dXJlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicnVsbGVlc2hhbmFzIGFpenR1cmUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TQ1JPTExfU1RFUA0KLSAgZGVzYzogUGl4ZWxzIHRvIGFkdmFuY2UgcGVyIHNjcm9sbA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNjcm9sbCBTdGVwIFNpemUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUnVsbMSTxaFhbmFzIFNvbGlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicnVsbGVlc2hhbmFzIHNvbGlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0NST0xMX1NURVBfRVhBTVBMRQ0KLSAgZGVzYzogUGl4ZWxzIHRvIGFkdmFuY2UgcGVyIHNjcm9sbA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNjcm9sbCBTdGVwIFNpemUgU2V0dGluZyBFeGFtcGxlIFRleHQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUnVsbMSTxaFhbmFzIFNvxLxhIFBpZW3Ek3JzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQklESVJfU0NST0xMDQotICBkZXNjOiBCaWRpcmVjdGlvbmFsIHNjcm9sbCBsaW1pdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJpZGlyZWN0aW9uYWwgU2Nyb2xsIExpbWl0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFicHVzxJNqYXMgUnVsbMSTxaFhbmFzIExpbWl0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFicHVzZWVqYXMgcnVsbGVlc2hhbmFzIGxpbWl0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFTU9URV9TQ1JPTExfU0VUUw0KLSAgZGVzYzogIlJlbW90ZSBTY3JvbGxpbmcgT3B0aW9ucyIgU3VibWVudSBpbiAiU2Nyb2xsaW5nIE9wdGlvbnMiIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiUmVtb3RlIFNjcm9sbGluZyBPcHRpb25zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJQdWx0cyBSdWxsxJPFoWFuYXMgT3BjaWphcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJwdWx0cyBydWxsZWVzaGFuYXMgb3BjaWphcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NDUkVFTl9TQ1JPTExfVklFVw0KLSAgZGVzYzogc2hvdWxkIGxpbmVzIHNjcm9sbCBvdXQgb2YgdGhlIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiU2NyZWVuIFNjcm9sbHMgT3V0IE9mIFZpZXciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJUZWtzdHMgSXpydWxsxJNqYXMgxIBycHVzIEVrcsSBbmEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogInRla3N0cyBpenJ1bGxlZWphcyBhYXJwdXMgZWtyYWFuYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NDUkVFTl9TQ1JPTExfU1RFUA0KLSAgZGVzYzogUGl4ZWxzIHRvIGFkdmFuY2UgcGVyIFNjcmVlbiBzY3JvbGwNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlNjcmVlbiBTY3JvbGwgU3RlcCBTaXplIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiRWtyxIFuYSBSdWxsxJPFoWFuYXMgU29saXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogImVrcmFhbmEgcnVsbGVlc2hhbmFzIHNvbGlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0NST0xMX1BBR0lOQVRFRA0KLSAgZGVzYzoganVtcCB0byBuZXcgcGFnZSB3aGVuIHNjcm9sbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBhZ2VkIFNjcm9sbGluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSdWxsxJN0IExhcGFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicnVsbGVldCBsYXBhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0xJU1RBQ0NFTF9TVEFSVF9ERUxBWQ0KLSAgZGVzYzogRGVsYXkgYmVmb3JlIGxpc3Qgc3RhcnRzIGFjY2VsZXJhdGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkxpc3QgQWNjZWxlcmF0aW9uIFN0YXJ0IERlbGF5Ig0KLSAgICB3aGVlbF9hY2NlbGVyYXRpb246IG5vbmUNCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYXJha3N0YSBSdWxsxJPFoWFuYXMgQWl6dHVyZSINCi0gICAgd2hlZWxfYWNjZWxlcmF0aW9uOiBub25lDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzYXJha3N0YSBydWxsZWVzaGFuYXMgYWl6dHVyZSINCi0gICAgd2hlZWxfYWNjZWxlcmF0aW9uOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MSVNUQUNDRUxfQUNDRUxfU1BFRUQNCi0gIGRlc2M6IGxpc3QgYWNjZWxlcmF0aW9uIHNwZWVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTGlzdCBBY2NlbGVyYXRpb24gU3BlZWQiDQotICAgIHdoZWVsX2FjY2VsZXJhdGlvbjogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNhcmFrc3RhIFBhxIF0cmluxIFqdW1zIg0KLSAgICB3aGVlbF9hY2NlbGVyYXRpb246IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNhcmFrc3RhIHBhYWF0cmluYWFqdW1zIg0KLSAgICB3aGVlbF9hY2NlbGVyYXRpb246IG5vbmUNCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBUlNfTUVOVQ0KLSAgZGVzYzogaW4gdGhlIGRpc3BsYXkgc3ViIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlN0YXR1cy0vU2Nyb2xsYmFyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiU3RhdHVzYS0vUnVsbGpvc2xhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJzdGF0dXNhIHJ1bGxqb3NsYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NDUk9MTF9CQVINCi0gIGRlc2M6IGRpc3BsYXkgbWVudSwgRjMgc3Vic3RpdHV0ZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiU2Nyb2xsIEJhciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlJ1bGxqb3NsYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAicnVsbGpvc2xhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1RBVFVTX0JBUg0KLSAgZGVzYzogZGlzcGxheSBtZW51LCBGMyBzdWJzdGl0dXRlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJTdGF0dXMgQmFyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiU3RhdHVzYSBKb3NsYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAic3RhdHVzYSBqb3NsYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JVVFRPTl9CQVINCi0gIGRlc2M6IGluIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiQnV0dG9uIEJhciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiUG9ndSBKb3NsYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRlcl9wYWQ6ICJwb2d1IGpvc2xhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9MVU1FX0RJU1BMQVkNCi0gIGRlc2M6IFZvbHVtZSB0eXBlIHRpdGxlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJWb2x1bWUgRGlzcGxheSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlNrYcS8dW1hIEF0dMSTbG/FoWFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAic2thbGp1bWEgYXR0ZWVsb3NoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFUVEVSWV9ESVNQTEFZDQotICBkZXNjOiBCYXR0ZXJ5IHR5cGUgdGl0bGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkJhdHRlcnkgRGlzcGxheSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkJhdHRlcmlqYXMgQXR0xJNsb8WhYW5hIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJiYXRlcmlqYXMgYXR0ZWVsb3NoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRElTUExBWV9HUkFQSElDDQotICBkZXNjOiBMYWJlbCBmb3IgdHlwZSBvZiBpY29uIGRpc3BsYXkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkdyYXBoaWMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJHcmFmaXNraSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiZ3JhZmlza2kiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ESVNQTEFZX05VTUVSSUMNCi0gIGRlc2M6IExhYmVsIGZvciB0eXBlIG9mIGljb24gZGlzcGxheQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiTnVtZXJpYyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIk51bWVyaXNraSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAibnVtZXJpc2tpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE1fTUVOVQ0KLSAgZGVzYzogaW4gdGhlIGRpc3BsYXkgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBlYWsgTWV0ZXIiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJMxKttZcWGYSBJbmRpa2F0b3JzIg0KLSAgICBtYXNkOiBub25lDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJsaWltZW5qYSBpbmRpa2F0b3JzIg0KLSAgICBtYXNkOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTV9DTElQX0hPTEQNCi0gIGRlc2M6IGluIHRoZSBwZWFrIG1ldGVyIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDbGlwIEhvbGQgVGltZSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktyb3DEvG9qdW1hIEFpenR1cmUiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtyb3Bsam9qdW1hIGluZGlrYWFjaWphcyBhaXp0dXJlIg0KLSAgICBtYXNkOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTV9QRUFLX0hPTEQNCi0gIGRlc2M6IGluIHRoZSBwZWFrIG1ldGVyIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQZWFrIEhvbGQgVGltZSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEq8S3YSBBaXp0dXJlcyINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGlpa2phIGluZGlrYWFjaWphcyBhaXp0dXJlIg0KLSAgICBtYXNkOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTV9FVEVSTkFMDQotICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRXRlcm5hbCINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsSAcsSTanMiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFhcmVlanMiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BNX1JFTEVBU0UNCi0gIGRlc2M6IGluIHRoZSBwZWFrIG1ldGVyIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQZWFrIFJlbGVhc2UiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQxKvEt2EgQXRsYWnFoWFuYSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGlpa2phIGluZGlrYWFjaWphcyBhdGxhaXNoYW5hIg0KLSAgICBtYXNkOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTV9TQ0FMRQ0KLSAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNjYWxlIg0KLSAgICBtYXNkOiBub25lDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2thbGEiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNrYWxhIg0KLSAgICBtYXNkOiBub25lDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTV9EQkZTDQotICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTG9nYXJpdGhtaWMgKGRCKSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkxvZ2FyaXRtaXNrxIEgKGRCKSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibG9nYXJpdG1pc2thYSBkZWNpYmVsdSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE1fTElORUFSDQotICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTGluZWFyICglKSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkxpbmXEgXLEgSAoJSkiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImxpbmVhYXJhYSBwcm9jZW50dSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE1fTUlODQotICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTWluaW11bSBPZiBSYW5nZSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNrYWxhcyBTxIFrdW1zIg0KLSAgICBtYXNkOiBub25lDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJza2FsYXMgc2Fha3VtcyINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE1fTUFYDQotICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTWF4aW11bSBPZiBSYW5nZSINCi0gICAgbWFzZDogbm9uZQ0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNrYWxhcyBCZWlnYXMiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNrYWxhcyBiZWlnYXMiDQotICAgIG1hc2Q6IG5vbmUNCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RFRkFVTFRfQ09ERVBBR0UNCi0gIGRlc2M6IGRlZmF1bHQgZW5jb2RpbmcgdXNlZCB3aXRoIGlkMyB0YWdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGVmYXVsdCBDb2RlcGFnZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOb2tsdXPEk3RhaXMgS29kxJNqdW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibm9rbHVzZWV0YWlzIGtvZGVlanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPREVQQUdFX0xBVElOMQ0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTGF0aW4xIChJU08tODg1OS0xKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJMYXTEq8WGdTEgKElTTy04ODU5LTEpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibGF0aWluanUgdmllbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0RFUEFHRV9HUkVFSw0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiR3JlZWsgKElTTy04ODU5LTcpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkdyaWXEt3UgKElTTy04ODU5LTcpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ3JpZWtqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPREVQQUdFX0hFQlJFVw0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJIZWJyZXcgKElTTy04ODU5LTgpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiRWJyZWp1IChJU08tODg1OS04KSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiZWJyZWp1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09ERVBBR0VfQ1lSSUxMSUMNCi0gIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkN5cmlsbGljIChDUDEyNTEpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktpcmlsaWNhIChDUDEyNTEpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia2lyaWxpY2EiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0RFUEFHRV9USEFJDQotICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlRoYWkgKElTTy04ODU5LTExKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlRhaSAoSVNPLTg4NTktMTEpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJ0YWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0RFUEFHRV9BUkFCSUMNCi0gIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiQXJhYmljIChDUDEyNTYpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiQXLEgWJ1IChDUDEyNTYpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJhcmFhYnUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0RFUEFHRV9UVVJLSVNIDQotICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUdXJraXNoIChJU08tODg1OS05KSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJUdXJrdSAoSVNPLTg4NTktOSkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ0dXJrdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPREVQQUdFX0xBVElOX0VYVEVOREVEDQotICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJMYXRpbiBFeHRlbmRlZCAoSVNPLTg4NTktMikiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTGF0xKvFhnUgUGFwbGHFoWluLiAoSVNPLTg4NTktMikiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJsYXRpaW5qdSBwYXBsYXNoaW5hYXRhaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0RFUEFHRV9KQVBBTkVTRQ0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJKYXBhbmVzZSAoU0pJUykiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJKYXDEgcWGdSAoU0pJUykiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkphcGFhbmp1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09ERVBBR0VfU0lNUExJRklFRA0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJTaW1wLiBDaGluZXNlIChHQjIzMTIpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiVmllbmsuIMS2xKtuaWXFoXUgKEdCMjMxMikiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogInZpZW5rYWFyc2hvdGFpcyBramlpbmllc2h1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09ERVBBR0VfS09SRUFODQotICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIktvcmVhbiAoS1NYMTAwMSkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJLb3JlamllxaF1IChLU1gxMDAxKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAia29yZWppZXNodSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPREVQQUdFX1RSQURJVElPTkFMDQotICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlRyYWQuIENoaW5lc2UgKEJJRzUpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiVHJhZC4gxLbEq25pZcWhdSAoQklHNSkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogInRyYWRpY2lvbmFhbGFpcyBramlpbmllc2h1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09ERVBBR0VfVVRGOA0KLSAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVW5pY29kZSAoVVRGLTgpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlVuaWtvZHMgKFVURi04KSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInVuaWtvZHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CVVRUT05MSUdIVF9USU1FT1VUDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGJ1dHRvbl9saWdodDogIkJ1dHRvbiBMaWdodCBUaW1lb3V0Ig0KLSAgICBzYW5zYWZ1emUqLHNhbnNhZTIwMCo6ICJXaGVlbCBMaWdodCBUaW1lb3V0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBidXR0b25fbGlnaHQ6ICJQb2d1IEFwZ2Fpc21vanVtcyINCi0gICAgc2Fuc2FmdXplKixzYW5zYWUyMDAqOiAiUmlwdcS8YSBBcGdhaXNtb2p1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYnV0dG9uX2xpZ2h0OiAicG9ndSBhcGdhaXNtb2p1bXMiDQotICAgIHNhbnNhZnV6ZSosc2Fuc2FlMjAwKjogInJpcHVsamEgYXBnYWlzbW9qdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQlVUVE9OTElHSFRfQlJJR0hUTkVTUw0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBidXR0b25saWdodF9icmlnaHRuZXNzOiAiQnV0dG9uIExpZ2h0IEJyaWdodG5lc3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGJ1dHRvbmxpZ2h0X2JyaWdodG5lc3M6ICJQb2d1IFNwaWxndHVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBidXR0b25saWdodF9icmlnaHRuZXNzOiAicG9ndSBzcGlsZ3R1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVEFSVF9TQ1JFRU4NCi0gIGRlc2M6IGluIHRoZSBzeXN0ZW0gc3ViIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTdGFydCBTY3JlZW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU8SBa3VtYSBMb2dzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2Fha3VtYSBsb2dzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTUFJTl9NRU5VDQotICBkZXNjOiBpbiBzdGFydCBzY3JlZW4gc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk1haW4gTWVudSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJHYWx2ZW7EgSBJenbEk2xuZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImdhbHZlbmFhIGl6dmVlbG5lIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUFJFVklPVVNfU0NSRUVODQotICBkZXNjOiBpbiBzdGFydCBzY3JlZW4gc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlByZXZpb3VzIFNjcmVlbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXByaWVrxaHEk2rEgSBJenbEk2xuZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImllcHJpZWtzaGVlamFhIGl6dmVlbG5lIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFUVEVSWV9NRU5VDQotICBkZXNjOiBpbiB0aGUgc3lzdGVtIHN1YiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQmF0dGVyeSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJCYXRlcmlqYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJhdGVyaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFUVEVSWV9DQVBBQ0lUWQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJhdHRlcnkgQ2FwYWNpdHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSWV0aWxwxKtiYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJhdGVyaWphcyBpZXRpbHBpaWJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFUVEVSWV9UWVBFDQotICBkZXNjOiBpbiBiYXR0ZXJ5IHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGJhdHRlcnlfdHlwZXM6ICJCYXR0ZXJ5IFR5cGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGJhdHRlcnlfdHlwZXM6ICJWZWlkcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBiYXR0ZXJ5X3R5cGVzOiAidmVpZHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQVRURVJZX1RZUEVfQUxLQUxJTkUNCi0gIGRlc2M6IGluIGJhdHRlcnkgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYmF0dGVyeV90eXBlczogIkFsa2FsaW5lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBiYXR0ZXJ5X3R5cGVzOiAiU8SBcm1hIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGJhdHRlcnlfdHlwZXM6ICJzYWFybWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQVRURVJZX1RZUEVfTklNSA0KLSAgZGVzYzogaW4gYmF0dGVyeSBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBiYXR0ZXJ5X3R5cGVzOiAiTmlNSCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYmF0dGVyeV90eXBlczogIk5pTUgiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYmF0dGVyeV90eXBlczogIm5pa2plbGphIG1ldGFhbGhpZHJhYXRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRElTS19NRU5VDQotICBkZXNjOiBpbiB0aGUgc3lzdGVtIHN1YiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGlzayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJEaXNrcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImRpc2tzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1BJTkRPV04NCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJEaXNrIFNwaW5kb3duIg0KLSAgICBmbGFzaF9zdG9yYWdlOiBub25lDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRGlza2EgQXBzdMSBZGluxIHFoWFuYSINCi0gICAgZmxhc2hfc3RvcmFnZTogbm9uZQ0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGlza2EgYXBzdGFhZGluYWFzaGFuYSINCi0gICAgZmxhc2hfc3RvcmFnZTogbm9uZQ0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRElSQ0FDSEVfRU5BQkxFDQotICBkZXNjOiBpbiBkaXJlY3RvcnkgY2FjaGUgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgZGlyY2FjaGU6ICJEaXJlY3RvcnkgQ2FjaGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGRpcmNhY2hlOiAiTWFwanUgQnVmZXJpcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBkaXJjYWNoZTogIm1hcGp1IGJ1ZmVyaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19USU1FX01FTlUNCi0gIGRlc2M6IGluIHRoZSBzeXN0ZW0gc3ViIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiVGltZSAmIERhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkxhaWtzICYgRGF0dW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogImxhaWtzIHVuIGRhdHVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NFVF9USU1FDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIlNldCBUaW1lL0RhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIlV6c3TEgWTEq3QgTGFpa3UvRGF0dW11Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogInV6c3RhYWRpaXQgbGFpa3UgdW4gZGF0dW11Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVElNRUZPUk1BVA0KLSAgZGVzYzogc2VsZWN0IHRoZSB0aW1lIGZvcm1hdCBvZiB0aW1lIGluIHN0YXR1cyBiYXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiVGltZSBGb3JtYXQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkxhaWthIEZvcm3EgXRzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogImxhaWthIGZvcm1hYXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfMTJfSE9VUl9DTE9DSw0KLSAgZGVzYzogb3B0aW9uIGZvciAxMiBob3VyIGNsb2NrDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIjEyIEhvdXIgQ2xvY2siDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIjEyIFN0dW5kdSBQdWxrc3RlbmlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogImRpdnBhZHNtaXQgc3R1bmR1IHB1bGtzdGVuaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR18yNF9IT1VSX0NMT0NLDQotICBkZXNjOiBvcHRpb24gZm9yIDI0IGhvdXIgY2xvY2sNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiMjQgSG91ciBDbG9jayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiMjQgU3R1bmR1IFB1bGtzdGVuaXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiZGl2ZGVzbWl0IGNoZXRydSBzdHVuZHUgcHVsa3N0ZW5pcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RJTUVfU0VUX0JVVFRPTg0KLSAgZGVzYzogdXNlZCBpbiBzZXRfdGltZSgpDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIk9OID0gU2V0Ig0KLSAgICBtcm9iZTUwMDogIkhFQVJUID0gU2V0Ig0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIk5BVkkgPSBTZXQiDQotICAgIGlwb2QqLGlhdWRpb3g1LGlhdWRpb201LGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixnaWdhYmVhdCosbXJvYmUxMDAsc2Fuc2FjbGlwKixzYW5zYWZ1emUqOiAiU0VMRUNUID0gU2V0Ig0KLSAgICBnb2dlYXJzYTkyMDA6ICJQTEFZID0gU2V0Ig0KLSAgICB2aWJlNTAwOiAiT0sgPSBTZXQiDQotICAgIG1waW9oZDMwMDogIkVOVEVSID0gU2V0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJPTiA9IFV6c3TEgWTEq3QiDQotICAgIG1yb2JlNTAwOiAiSEVBUlQgPSBVenN0xIFkxKt0Ig0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIk5BVkkgPSBVenN0xIFkxKt0Ig0KLSAgICBpcG9kKixpYXVkaW94NSxpYXVkaW9tNSxpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixzYW5zYWUyMDAqLHNhbnNhYzIwMCosZ2lnYWJlYXQqLG1yb2JlMTAwLHNhbnNhY2xpcCosc2Fuc2FmdXplKjogIlNFTEVDVCA9IFV6c3TEgWTEq3QiDQotICAgIGdvZ2VhcnNhOTIwMDogIlBMQVkgPSBVenN0xIFkxKt0Ig0KLSAgICB2aWJlNTAwOiAiT0sgPSBVenN0xIFkxKt0Ig0KLSAgICBtcGlvaGQzMDA6ICJFTlRFUiA9IFV6c3TEgWTEq3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjLGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwLGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLGlhdWRpb3g1LGlhdWRpb201LGlwb2QqLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixnaWdhYmVhdCosbXJvYmUxMDAsZ29nZWFyc2E5MjAwOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVElNRV9SRVZFUlQNCi0gIGRlc2M6IHVzZWQgaW4gc2V0X3RpbWUoKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJPRkYgPSBSZXZlcnQiDQotICAgIG1yb2JlNTAwOiAiUE9XRVIgPSBSZXZlcnQiDQotICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiU1RPUCA9IFJldmVydCINCi0gICAgaXBvZCosc2Fuc2FjMjAwKixtcGlvaGQzMDA6ICJNRU5VID0gUmV2ZXJ0Ig0KLSAgICBpYXVkaW94NSxpYXVkaW9tNTogIlJFQ09SRCA9IFJldmVydCINCi0gICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2Isc2Fuc2FlMjAwKixzYW5zYWZ1emUqOiAiUFJFViA9IFJldmVydCINCi0gICAgZ2lnYWJlYXRmeDogIlBPV0VSID0gUmV2ZXJ0Ig0KLSAgICBtcm9iZTEwMDogIkRJU1BMQVkgPSBSZXZlcnQiDQotICAgIGdpZ2FiZWF0czogIkJBQ0sgPSBSZXZlcnQiDQotICAgIGdvZ2VhcnNhOTIwMDogIkxFRlQgPSBSZXZlcnQiDQotICAgIHZpYmU1MDA6ICJDQU5DRUwgPSBSZXZlcnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIk9GRiA9IEF0Y2VsdCINCi0gICAgbXJvYmU1MDA6ICJQT1dFUiA9IEF0Y2VsdCINCi0gICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJTVE9QID0gQXRjZWx0Ig0KLSAgICBpcG9kKixzYW5zYWMyMDAqLG1waW9oZDMwMDogIk1FTlUgPSBBdGNlbHQiDQotICAgIGlhdWRpb3g1LGlhdWRpb201OiAiUkVDT1JEID0gQXRjZWx0Ig0KLSAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixzYW5zYWUyMDAqLHNhbnNhZnV6ZSo6ICJQUkVWID0gQXRjZWx0Ig0KLSAgICBnaWdhYmVhdGZ4OiAiUE9XRVIgPSBBdGNlbHQiDQotICAgIG1yb2JlMTAwOiAiRElTUExBWSA9IEF0Y2VsdCINCi0gICAgZ2lnYWJlYXRzOiAiQkFDSyA9IEF0Y2VsdCINCi0gICAgZ29nZWFyc2E5MjAwOiAiTEVGVCA9IEF0Y2VsdCINCi0gICAgdmliZTUwMDogIkNBTkNFTCA9IEF0Y2VsdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGMsaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDAsaXBvZCosc2Fuc2FlMjAwKixzYW5zYWMyMDAqLGlhdWRpb3g1LGlhdWRpb201LGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLGdpZ2FiZWF0Kixtcm9iZTEwMCxnb2dlYXJzYTkyMDA6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XRUVLREFZX1NVTkRBWQ0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHdlZWtkYXkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiU3VuIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJTdiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XRUVLREFZX01PTkRBWQ0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHdlZWtkYXkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiTW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJQcm0iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0VFS0RBWV9UVUVTREFZDQotICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3Igd2Vla2RheQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJUdWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIk90ciINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XRUVLREFZX1dFRE5FU0RBWQ0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHdlZWtkYXkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiV2VkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJUcmUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0VFS0RBWV9USFVSU0RBWQ0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHdlZWtkYXkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiVGh1Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJDZXQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0VFS0RBWV9GUklEQVkNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB3ZWVrZGF5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkZyaSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiUGt0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1dFRUtEQVlfU0FUVVJEQVkNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB3ZWVrZGF5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIlNhdCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiU3N0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01PTlRIX0pBTlVBUlkNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiSmFuIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJKYW4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiamFudmFhcmlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfRkVCUlVBUlkNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiRmViIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJGZWIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiZmVicnVhYXJpcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01PTlRIX01BUkNIDQotICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIk1hciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiTWFyIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIm1hcnRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfQVBSSUwNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiQXByIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJBcHIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiYXByaWlsaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NT05USF9NQVkNCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiTWF5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJNYWkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAibWFpanMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NT05USF9KVU5FDQotICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkp1biINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiSsWrbiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJqdXVuaWpzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfSlVMWQ0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJKdWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkrFq2wiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAianV1bGlqcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01PTlRIX0FVR1VTVA0KLSAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJBdWciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIkF1ZyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJhdWd1c3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfU0VQVEVNQkVSDQotICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIlNlcCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiU2VwIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogInNlcHRlbWJyaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NT05USF9PQ1RPQkVSDQotICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIk9jdCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiT2t0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIm9rdG9icmlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfTk9WRU1CRVINCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiTm92Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJOb3YiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAibm92ZW1icmlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9OVEhfREVDRU1CRVINCi0gIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiRGVjIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICJEZWMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiZGVjZW1icmlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE9XRVJPRkZfSURMRQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIklkbGUgUG93ZXJvZmYiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXV0b23EgXRpc2vEgSBJenNsxJNnxaFhbsSBcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF1dG9tYWF0aXNrYWEgaXpzbGVlZ3NoYW5hYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TTEVFUF9USU1FUg0KLSAgZGVzYzogc2xlZXAgdGltZXIgc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNsZWVwIFRpbWVyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1pZWdhIFRhaW1lcmlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibWllZ2EgdGFpbWVyaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MSU1JVFNfTUVOVQ0KLSAgZGVzYzogaW4gdGhlIHN5c3RlbSBzdWIgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkxpbWl0cyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXJvYmXFvm9qdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaWVyb2JlemhvanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01BWF9GSUxFU19JTl9ESVINCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJNYXggRW50cmllcyBpbiBGaWxlIEJyb3dzZXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTWFrcy4gRmFpbGkgUMSBcmzFq2vEgSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1ha3NpbWFhbGFpcyBmYWlsdSBza2FpdHMgcGFhcmx1dWthYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01BWF9GSUxFU19JTl9QTEFZTElTVA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk1heCBQbGF5bGlzdCBTaXplIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1ha3MgU2FyYWtzdGEgSXptxJNycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1ha3NpbWFhbGFpcyBkemllc211IHNhcmFrc3RhIGl6bWVlcnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVJfQURBUFRFUl9NT0RFDQotICBkZXNjOiBEaXNwbGF5ZWQgZm9yIHNldHRpbmcgY2FyIGFkYXB0ZXIgbW9kZSB0byBvbi9vZmYNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJDYXIgQWRhcHRlciBNb2RlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBjaGFyZ2luZzogIkF1dG9tYcWhxKtuYXMgUmXFvsSrbXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJhdXRvbWFzaGlpbmFzIHJlemhpaW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUxBUk1fTU9EX0FMQVJNX01FTlUNCi0gIGRlc2M6IFRoZSBuYW1lIG9mIHRoZSBhZGRpdGlvbmFsIGVudHJ5IGluIHRoZSBtYWluIG1lbnUgZm9yIHRoZSBSVEMgYWxhcm0gbW9kLg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIldha2UtVXAgQWxhcm0iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiTW9kaW7EgXTEgWpzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAibW9kaW5hYXRhYWpzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUxBUk1fV0FLRVVQX1NDUkVFTg0KLSAgZGVzYzogaW4gYWxhcm0gbWVudSBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiQWxhcm0gV2FrZSB1cCBTY3JlZW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiTW9kaW7EgXTEgWphIERhcmLEq2JhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAibW9kaW5hYXRhYWphIGRhcmJpaWJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUxBUk1fTU9EX1RJTUUNCi0gIGRlc2M6IFRoZSBjdXJyZW50IGFsYXJtIHRpbWUgc2hvd24gaW4gdGhlIGFsYXJtIG1lbnUgZm9yIHRoZSBSVEMgYWxhcm0gbW9kLg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIkFsYXJtIFRpbWU6Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIk1vZGluxIF0xIFqYSBsYWlrczoiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BTEFSTV9NT0RfVElNRV9UT19HTw0KLSAgZGVzYzogVGhlIHRpbWUgdW50aWwgdGhlIGFsYXJtIHdpbGwgZ28gb2ZmIHNob3duIGluIHRoZSBhbGFybSBtZW51IGZvciB0aGUgUlRDIGFsYXJtIG1vZC4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICJXYWtpbmcgVXAgSW4gJWQ6JTAyZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICJQYW1vxaFhbsSBcyAlZDolMDJkIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAicGFtb3NoYW5hYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BTEFSTV9NT0RfU0hVVERPV04NCi0gIGRlc2M6IFRoZSB0ZXh0IHRoYXQgdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGUgYWxhcm0gdGltZSBpcyBvayBhbmQgdGhlIGRldmljZSBzaHV0cyBvZmYgKGZvciB0aGUgUlRDIGFsYXJtIG1vZCkuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiQWxhcm0gU2V0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIk1vZGluxIF0xIFqcyBJZXNsxJNndHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICJtb2RpbmFhdGFhanMgaXIgaWVzbGVlZ3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUxBUk1fTU9EX0VSUk9SDQotICBkZXNjOiBUaGUgdGV4dCB0aGF0IHRlbGxzIHRoYXQgdGhlIHRpbWUgaXMgaW5jb3JyZWN0IChmb3IgdGhlIFJUQyBhbGFybSBtb2QpLg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIkFsYXJtIFRpbWUgSXMgVG9vIFNvb24hIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhbGFybTogIkxhaWtzIGlyIHDEgXLEgWsgZHLEq3ohIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAibW9kaW5hYXNoYW5hcyBsYWlrcyBpciBwYWFyYWFrIGRyaWl6ISINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FMQVJNX01PRF9LRVlTDQotICBkZXNjOiBTaG93biBrZXkgZnVuY3Rpb25zIGluIGFsYXJtIG1lbnUgKGZvciB0aGUgUlRDIGFsYXJtIG1vZCkuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiUExBWT1TZXQgT0ZGPUNhbmNlbCINCi0gICAgaXBvZCo6ICJTRUxFQ1Q9U2V0IE1FTlU9Q2FuY2VsIg0KLSAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYjogIlNFTEVDVD1TZXQgUFJFVj1DYW5jZWwiDQotICAgIGdpZ2FiZWF0czogIlNFTEVDVD1TZXQgUE9XRVI9Q2FuY2VsIg0KLSAgICB2aWJlNTAwOiAiT0s9U2V0IEM9Q2FuY2VsIg0KLSAgICBtcGlvaGQzMDA6ICJFTlRFUj1TZXQgTUVOVT1DYW5jZWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAiUExBWT1VenN0IE9GRj1BdHRlaWt0aWVzIg0KLSAgICBpcG9kKjogIlNFTEVDVD1VenN0IE1FTlU9QXR0ZWlrdGllcyINCi0gICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2I6ICJTRUxFQ1Q9VXpzdCBQUkVWPUF0dGVpa3RpZXMiDQotICAgIGdpZ2FiZWF0czogIlNFTEVDVD1VenN0IFBPV0VSPUF0dGVpa3RpZXMiDQotICAgIHZpYmU1MDA6ICJPSz1VenN0IEM9QXR0ZWlrdGllcyINCi0gICAgbXBpb2hkMzAwOiAiRU5URVI9VXpzdCBNRU5VPUF0dGVpa3RpZXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm0saXBvZCo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BTEFSTV9NT0RfRElTQUJMRQ0KLSAgZGVzYzogQW5ub3VuY2UgdGhhdCB0aGUgUlRDIGFsYXJtIGhhcyBiZWVuIHR1cm5lZCBvZmYNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICJBbGFybSBEaXNhYmxlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYWxhcm06ICJNb2RpbsSBdMSBanMgSXpzbMSTZ3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFsYXJtOiAibW9kaW5hYXRhYWpzIGl6c2xlZWd0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX1NFVFRJTkdTDQotICBkZXNjOiBpbiBnZW5lcmFsIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm9va21hcmtpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiR3LEgW1hdHrEq21lcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImdyYWFtYXR6aWltZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19BVVRPQ1JFQVRFDQotICBkZXNjOiBwcm9tcHQgZm9yIHVzZXIgdG8gZGVjaWRlIHRvIGNyZWF0ZSBhbiBib29rbWFyaw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJvb2ttYXJrIG9uIFN0b3AiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiR3LEgW1hdHrEq21lIEFwc3TEgWpvdGllcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6dmVpZG90IGdyYWFtYXR6aWltaSBhcHN0YWFqb3RpZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19SRUNFTlRfT05MWV9ZRVMNCi0gIGRlc2M6IFNhdmUgaW4gcmVjZW50IGJvb2ttYXJrcyBvbmx5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiWWVzIC0gUmVjZW50IG9ubHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSsSBIC0gVGlrYWkgcMSTZMSTam8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJqYWEgdGlrYWkgcGVlZGVlam8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19SRUNFTlRfT05MWV9BU0sNCi0gIGRlc2M6IFNhdmUgaW4gcmVjZW50IGJvb2ttYXJrcyBvbmx5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQXNrIC0gUmVjZW50IG9ubHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSmF1dMSBdCAtIFRpa2FpIHDEk2TEk2pvIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiamF1dGFhdCB0aWthaSBwZWVkZWVqbyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX1NFVFRJTkdTX0FVVE9MT0FEDQotICBkZXNjOiBwcm9tcHQgZm9yIHVzZXIgdG8gZGVjaWRlIHRvIGNyZWF0ZSBhIGJvb2ttYXJrDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTG9hZCBMYXN0IEJvb2ttYXJrIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkllbMSBZMSTdCBQxJNkxJNqbyBHcsSBbWF0esSrbWkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZWxhYWRlZXQgcGVlZGVlam8gZ3JhYW1hdHppaW1pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PS01BUktfU0VUVElOR1NfTUFJTlRBSU5fUkVDRU5UX0JPT0tNQVJLUw0KLSAgZGVzYzogQ29uZmlndXJhdGlvbiBvcHRpb24gdG8gbWFpbnRhaW4gYSBsaXN0IG9mIHJlY2VudCBib29rbWFya3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJNYWludGFpbiBhIExpc3Qgb2YgUmVjZW50IEJvb2ttYXJrcz8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVXp0dXLEk3QgR3LEgW1hdHrEq21qdSBTYXJha3N0dT8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2YWkgdXp0dXJlZXQgcGVlZGVlam8gZ3JhYW1hdHppaW1qdSBzYXJha3N0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX1NFVFRJTkdTX1VOSVFVRV9PTkxZDQotICBkZXNjOiBTYXZlIG9ubHkgb24gYm9va21hcmsgZm9yIGVhY2ggcGxheWxpc3QgaW4gcmVjZW50IGJvb2ttYXJrcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlVuaXF1ZSBvbmx5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlRpa2FpIHVuaWvEgWx1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidGlrYWkgdW5pa2FhbHUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MQU5HVUFHRQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkxhbmd1YWdlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlZhbG9kYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZhbG9kYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0xBTkdVQUdFX0xPQURFRA0KLSAgZGVzYzogc2hvd24gd2hlbiBhIGxhbmd1YWdlIGhhcyBiZWVuIGxvYWRlZCBmcm9tIHRoZSBkaXIgYnJvd3Nlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk5ldyBMYW5ndWFnZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJWYWxvZGEgTm9tYWluxKt0YSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZhbG9kYSBub21haW5paXRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9JQ0UNCi0gIGRlc2M6IHJvb3Qgb2Ygdm9pY2UgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlZvaWNlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkJhbHNzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYmFsc3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19WT0lDRV9NRU5VDQotICBkZXNjOiBpdGVtIG9mIHZvaWNlIG1lbnUsIGVuYWJsZS9kaXNhYmxlIHRoZSB2b2ljZSBVSQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlZvaWNlIE1lbnVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6cnVuxIF0IEl6dsSTbG5lcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6cnVuYWF0IGl6dmVlbG5lcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZPSUNFX0RJUg0KLSAgZGVzYzogaXRlbSBvZiB2b2ljZSBtZW51LCBzZXQgdGhlIHZvaWNlIG1vZGUgZm9yIGRpcmVjdG9yaWVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVm9pY2UgRGlyZWN0b3JpZXMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpydW7EgXQgTWFwZXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenJ1bmFhdCBtYXBlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZPSUNFX0RJUl9UQUxLDQotICBkZXNjOiBJdGVtIG9mIHZvaWNlIG1lbnUsIHdoZXRoZXIgdG8gdXNlIGRpcmVjdG9yeSAudGFsayBjbGlwcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlVzZSBEaXJlY3RvcnkgLnRhbGsgQ2xpcHMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXptYW50b3QgTWFwZXMgLnRhbGsgS2xpcHVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXptYW50b3QgbWFwZXMgLnRhbGsga2xpcHVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9JQ0VfRklMRQ0KLSAgZGVzYzogaXRlbSBvZiB2b2ljZSBtZW51LCBzZXQgdGhlIHZvaWNlIG1vZGUgZm9yIGZpbGVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVm9pY2UgRmlsZW5hbWVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6cnVuxIF0IEZhaWx1IE5vc2F1a3VtdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenJ1bmFhdCBmYWlsdSBub3NhdWt1bXVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9JQ0VfRklMRV9UQUxLDQotICBkZXNjOiBJdGVtIG9mIHZvaWNlIG1lbnUsIHdoZXRoZXIgdG8gdXNlIGZpbGUgLnRhbGsgY2xpcHMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJVc2UgRmlsZSAudGFsayBDbGlwcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJem1hbnRvdCBGYWlsdSAudGFsayBLbGlwdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpem1hbnRvdCBmYWlsdSAudGFsayBrbGlwdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19WT0lDRV9OVU1CRVINCi0gIGRlc2M6ICJ0YWxrYm94IiBtb2RlIGZvciBmaWxlcytkaXJlY3Rvcmllcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk51bWJlcnMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTnVtdXJpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibnVtdXJpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9JQ0VfU1BFTEwNCi0gIGRlc2M6ICJ0YWxrYm94IiBtb2RlIGZvciBmaWxlcytkaXJlY3Rvcmllcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNwZWxsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6cnVuxIF0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpydW5hYXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19WT0lDRV9ESVJfSE9WRVINCi0gIGRlc2M6ICJ0YWxrYm94IiBtb2RlIGZvciBkaXJlY3RvcmllcyArIGZpbGVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiLnRhbGsgQ2xpcCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIudGFsayBLbGlwcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInRhbGsga2xpcHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NQU5BR0VfTUVOVQ0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk1hbmFnZSBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSZWRpxKPEk3QgVXpzdMSBZMSranVtdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJyZWRpZ2plZXQgdXpzdGFhZGlpanVtdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DVVNUT01fQ0ZHDQotICBkZXNjOiBpbiBzZXR0aW5nX21lbnUoKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJyb3dzZSAuY2ZnIEZpbGVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFwbMWra290IC5jZmcgRmFpbHVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXBsdXVrb3Qga29uZmlndXJhYWNpamFzIGZhaWx1cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NFVFRJTkdTX0xPQURFRA0KLSAgZGVzYzogRmVlZGJhY2sgc2hvd24gd2hlbiBhIC5jZmcgZmlsZSBpcyBsb2FkZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTZXR0aW5ncyBMb2FkZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVXpzdMSBZMSranVtaSBJZWzEgWTEk3RpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidXpzdGFhZGlpanVtaSBpZWxhYWRlZXRpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVTRVQNCi0gIGRlc2M6IGluIHN5c3RlbV9zZXR0aW5nc19tZW51KCkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSZXNldCBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdGdyaWV6dCBOb2tsdXPEk2p1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhdGdyaWV6dCBub2tsdXNlZXRvcyB1enN0YWFkaWlqdW11cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFU0VUX0RPTkVfQ0xFQVINCi0gIGRlc2M6IHZpc3VhbCBjb25maXJtYXRpb24gYWZ0ZXIgc2V0dGluZ3MgcmVzZXQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDbGVhcmVkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0Z3JpZXp0cyBOb2tsdXPEk2p1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhdGdyaWV6dGkgbm9rbHVzZWV0aWUgdXpzdGFhZGlpanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NBVkVfU0VUVElOR1MNCi0gIGRlc2M6IGluIHN5c3RlbV9zZXR0aW5nc19tZW51KCkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTYXZlIC5jZmcgRmlsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYWdsYWLEgXQgLmNmZyBGYWlsdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNhZ2xhYmFhdCBrb25maWd1cmFhY2lqYXMgZmFpbHUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVRUSU5HU19TQVZFRA0KLSAgZGVzYzogRmVlZGJhY2sgc2hvd24gd2hlbiBhIC5jZmcgZmlsZSBpcyBzYXZlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNldHRpbmdzIFNhdmVkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlV6c3TEgWTEq2p1bWkgU2FnbGFixIF0aSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInV6c3RhYWRpaWp1bWkgc2FnbGFiYWF0aSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NBVkVfVEhFTUUNCi0gIGRlc2M6IHNhdmUgYSB0aGVtZSBmaWxlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2F2ZSBUaGVtZSBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYWdsYWLEgXQgVMSTbWFzIFV6c3TEgWTEq2p1bXVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FnbGFiYWF0IHRlZW1hcyB1enN0YWFkaWlqdW11cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NVU1RPTV9USEVNRQ0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJyb3dzZSBUaGVtZSBGaWxlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBcGzFq2tvdCBUxJNtdSBGYWlsdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhcGx1dWtvdCB0ZWVtdSBmYWlsdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRJTkdfU0VUVElOR1MNCi0gIGRlc2M6IGluIHRoZSBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUmVjb3JkaW5nIFNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJJZXJha3N0YSBVenN0xIFkxKtqdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImllcmFrc3RhIHV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9NRU5VDQotICBkZXNjOiBmbSBtZW51IHRpdGxlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiRk0gUmFkaW8gTWVudSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJGTSBSYWRpbyBJenbEk2xuZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogImVmIGVtIHJhZGlvIGl6dmVlbG5lIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fTk9fUFJFU0VUUw0KLSAgZGVzYzogZXJyb3Igd2hlbiBwcmVzZXQgbGlzdCBpcyBlbXB0eQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIk5vIHByZXNldHMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiTmF2IFN0YWNpanUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJuYXYgc2FnbGFiYWF0dSByYWRpb3N0YWNpanUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9BRERfUFJFU0VUDQotICBkZXNjOiBpbiByYWRpbyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiQWRkIFByZXNldCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJQaWV2aWVub3QgU3RhY2lqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogInBpZXZpZW5vdCByYWRpb3N0YWNpanUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9FRElUX1BSRVNFVA0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiRWRpdCBQcmVzZXQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiTGFib3QgU3RhY2lqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogImxhYm90IHJhZGlvc3RhY2lqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX0RFTEVURV9QUkVTRVQNCi0gIGRlc2M6IGluIHJhZGlvIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlJlbW92ZSBQcmVzZXQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSXpkesSTc3QgU3RhY2lqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIml6ZHplZXN0IHJhZGlvc3RhY2lqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX1BSRVNFVF9TQVZFX0ZBSUxFRA0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiUHJlc2V0IFNhdmUgRmFpbGVkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlN0YWNpanUgTmVpemRldsSBcyBTYWdsYWLEgXQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJyYWRpb3N0YWNpanUgbmVpemRldmFhcyBzYWdsYWJhYXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9OT19GUkVFX1BSRVNFVFMNCi0gIGRlc2M6IGluIHJhZGlvIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlRoZSBQcmVzZXQgTGlzdCBpcyBGdWxsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlNhcmFrc3RzIElyIFBpbG5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAic2FyYWtzdHMgaXIgcGlsbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CVVRUT05CQVJfTUVOVQ0KLSAgZGVzYzogaW4gYnV0dG9uIGJhcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIk1lbnUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiSXp2xJNsbmUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9CVVRUT05CQVJfRVhJVA0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiRXhpdCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJJemlldCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX0JVVFRPTkJBUl9BQ1RJT04NCi0gIGRlc2M6IGluIHJhZGlvIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIkFjdGlvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJEYXJixKtiYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BSRVNFVA0KLSAgZGVzYzogaW4gYnV0dG9uIGJhciBhbmQgcmFkaW8gc2NyZWVuIC8gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlByZXNldCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJTdGFjaWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAicmFkaW9zdGFjaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fQlVUVE9OQkFSX0FERA0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiQWRkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIlBpZXZpZW5vdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX0JVVFRPTkJBUl9SRUNPUkQNCi0gIGRlc2M6IGluIHJhZGlvIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIlJlY29yZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJJZXJha3N0xKt0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fTU9OT19NT0RFDQotICBkZXNjOiBpbiByYWRpbyBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJGb3JjZSBNb25vIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkllc2zEk2d0IE1vbm8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJpZXNsZWVndCBtb25vIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fRlJFRVpFDQotICBkZXNjOiBzcGxhc2ggc2NyZWVuIGR1cmluZyBmcmVlemUgaW4gcmFkaW8gbW9kZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlNjcmVlbiBmcm96ZW4hIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkVrcsSBbnMgU2FzdGluZHppcyEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9TQ0FOX1BSRVNFVFMNCi0gIGRlc2M6IGluIHJhZGlvIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJBdXRvLVNjYW4gUHJlc2V0cyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJOb3NrYW7Ek3QgU3RhY2lqYXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJub3NrYW5lZXQgcmFkaW9zdGFjaWphcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX0NMRUFSX1BSRVNFVFMNCi0gIGRlc2M6IGNvbmZpcm1hdGlvbiBpZiBwcmVzZXRzIGNhbiBiZSBjbGVhcmVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiQ2xlYXIgQ3VycmVudCBQcmVzZXRzPyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJJemR6xJNzdCBFc2/FocSBcyBTdGFjaWphcz8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJ2YWkgaXpkemVlc3QgZXNvc2hhYXMgcmFkaW9zdGFjaWphcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX1NDQU5OSU5HDQotICBkZXNjOiBkdXJpbmcgYXV0byBzY2FuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU2Nhbm5pbmcgJWQuJTAyZCBNSHoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU2thbsSTICVkLiUwMmQgTUh6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fREVGQVVMVF9QUkVTRVRfTkFNRQ0KLSAgZGVzYzogZGVmYXVsdCBwcmVzZXQgbmFtZSBmb3IgYXV0byBzY2FuIG1vZGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICIlZC4lMDJkIE1IeiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICIlZC4lMDJkIE1IeiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JBRElPX1NDQU5fTU9ERQ0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuIC8gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlNjYW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU2thbsSTdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogInNrYW5lZXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9QUkVTRVRfTE9BRA0KLSAgZGVzYzogbG9hZCBwcmVzZXQgbGlzdCBpbiBmbSByYWRpbw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkxvYWQgUHJlc2V0IExpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSWVsxIFkxJN0IFN0YWNpamFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiaWVsYWFkZWV0IHJhZGlvc3RhY2lqYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9QUkVTRVRfU0FWRQ0KLSAgZGVzYzogU2F2ZSBwcmVzZXQgbGlzdCBpbiBmbSByYWRpbw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlNhdmUgUHJlc2V0IExpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU2FnbGFixIF0IFN0YWNpamFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAic2FnbGFiYWF0IHJhZGlvc3RhY2lqYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9QUkVTRVRfQ0xFQVINCi0gIGRlc2M6IGNsZWFyIHByZXNldCBsaXN0IGluIGZtIHJhZGlvDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiQ2xlYXIgUHJlc2V0IExpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSXpkesSTc3QgU3RhY2lqYXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJpemR6ZWVzdCByYWRpb3N0YWNpamFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1SDQotICBkZXNjOiBVc2VkIHdoZW4geW91IG5lZWQgdG8gc2F5IFByZXNldCBMaXN0LCBhbHNvIHZvaWNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlByZXNldCBMaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlN0YWNpanUgU2FyYWtzdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJyYWRpb3N0YWNpanUgc2FyYWtzdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9GSVJTVF9BVVRPU0NBTg0KLSAgZGVzYzogV2hlbiB5b3UgcnVuIHRoZSByYWRpbyB3aXRob3V0IGFuIGZtciBmaWxlIGluIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiTm8gc2V0dGluZ3MgZm91bmQuIEF1dG9zY2FuPyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJOYXYgVXpzdMSBZMSranVtdS4gU2thbsSTdD8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJuYXYgdXpzdGFhZGlpanVtdS4gdmFpIHNrYW5lZXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9TQVZFX0NIQU5HRVMNCi0gIGRlc2M6IGRlcHJlY2F0ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fUkVHSU9ODQotICBkZXNjOiBmbSB0dW5lciByZWdpb24gc2V0dGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlJlZ2lvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJSZcSjaW9ucyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogInJlZ2ppb25zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fRVVST1BFDQotICBkZXNjOiBmbSB0dW5lciByZWdpb24gZXVyb3BlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiRXVyb3BlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIkVpcm9wYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogImVpcm9wYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX1VTDQotICBkZXNjOiBmbSByZWdpb24gdXMgLyBjYW5hZGENCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJVUyAvIENhbmFkYSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJBU1YgLyBLYW7EgWRhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiYXN2IHVuIGthbmFhZGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9KQVBBTg0KLSAgZGVzYzogZm0gcmVnaW9uIGphcGFuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSmFwYW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSmFwxIFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogImphcGFhbmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9LT1JFQQ0KLSAgZGVzYzogZm0gcmVnaW9uIGtvcmVhDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiS29yZWEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiS29yZWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAia29yZWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JESU5HX0ZPUk1BVA0KLSAgZGVzYzogYXVkaW8gZm9ybWF0IGl0ZW0gaW4gcmVjb3JkaW5nIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiRm9ybWF0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJGb3JtxIF0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJmb3JtYWF0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FGTVRfTVBBX0wzDQotICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTVBFRyBMYXllciAzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJNUEVHIExheWVyIDMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTVBFRyBMYXllciAzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUZNVF9QQ01fV0FWDQotICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUENNIFdhdmUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlBDTSBXYXZlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlBDTSBXYXZlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUZNVF9XQVZQQUNLDQotICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJXYXZQYWNrIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmdfc3djb2RlYzogIldhdlBhY2siDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJXYXZQYWNrIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUZNVF9BSUZGDQotICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiQUlGRiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiQUlGRiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJBSUZGIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRU5DT0RFUl9TRVRUSU5HUw0KLSAgZGVzYzogZW5jb2RlciBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJFbmNvZGVyIFNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJLb2TEk2p1bWEgVXpzdMSBZMSranVtaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJrb2RlZWp1bWEgdXpzdGFhZGlpanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JJVFJBVEUNCi0gIGRlc2M6IGJpdHMta2lsb2JpdHMgcGVyIHVuaXQgdGltZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmdfc3djb2RlYzogIkJpdHJhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19zd2NvZGVjOiAiQml0cmVpdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJiaXRyZWl0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX05PX1NFVFRJTkdTDQotICBkZXNjOiB3aGVuIHNvbWV0aGluZyBoYXMgc2V0dGluZ3MgaW4gYSBjZXJ0YWluIGNvbnRleHQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiKE5vIFNldHRpbmdzKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiKE5hdiBVenN0xIFkxKtqdW11KSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJuYXYga28gdXpzdGFhZGlpdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19RVUFMSVRZDQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAiUXVhbGl0eSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX2h3Y29kZWM6ICJLdmFsaXTEgXRlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAia3ZhbGl0YWF0ZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19GUkVRVUVOQ1kNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiRnJlcXVlbmN5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJGcmVrdmVuY2UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiZnJla3ZlbmNlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU09VUkNFX0ZSRVFVRU5DWQ0KLSAgZGVzYzogd2hlbiByZWNvcmRpbmcgc291cmNlIGZyZXF1ZW5jeSBzZXR0aW5nIG11c3QgZm9sbG93IHNvdXJjZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICIoU2FtZSBBcyBTb3VyY2UpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICIoS8SBIEF2b3RzKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJ0YWFkcyBwYXRzIGthYSBhdm90cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19TT1VSQ0UNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU291cmNlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJBdm90cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJhdm90cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19TUkNfTUlDDQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIk1pY3JvcGhvbmUiDQotICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiSW50ZXJuYWwgTWljcm9waG9uZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTWlrcm9mb25zIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIklldsWrdsSTdGFpcyBNaWtyb2ZvbnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAibWlrcm9mb25zIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogImllYnV1dmVldGFpcyBtaWtyb2ZvbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRJTkdfU1JDX0RJR0lUQUwNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiRGlnaXRhbCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiRGlnaXTEgWxzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImRpZ2l0YWFscyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0xJTkVfSU4NCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nLGFyY2hvc3BsYXllcjogIkxpbmUgSW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZyxhcmNob3NwbGF5ZXI6ICJMaW5lxIFyxIEgSWVlamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nLGFyY2hvc3BsYXllcjogImxpbmVhYXJhYSBpZWVqYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19FRElUQUJMRQ0KLSAgZGVzYzogRWRpdGFibGUgcmVjb3JkaW5ncyBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAiSW5kZXBlbmRlbnQgRnJhbWVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmdfaHdjb2RlYzogIk5lYXRrYXLEq2dpIEthZHJpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAibmVhdGthcmlpZ2kga2FkcmkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRfVElNRVNQTElUDQotICBkZXNjOiBSZWNvcmQgc3BsaXQgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJGaWxlIFNwbGl0IE9wdGlvbnMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkZhaWx1IFNhZGFsxKvFoWFuYXMgT3BjaWphcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJmYWlsdSBzYWRhbGlpc2hhbmFzIG9wY2lqYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TUExJVF9NRUFTVVJFDQotICBkZXNjOiBpbiByZWNvcmQgdGltZXNwbGl0IG9wdGlvbnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU3BsaXQgTWVhc3VyZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU2FkYWzEq8WhYW5hcyBLcml0xJNyaWpzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInNhZGFsaWlzaGFuYXMga3JpdGVlcmlqcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NQTElUX1RZUEUNCi0gIGRlc2M6IGluIHJlY29yZCB0aW1lc3BsaXQgb3B0aW9ucw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJXaGF0IHRvIGRvIHdoZW4gU3BsaXR0aW5nIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJLbyBEYXLEq3QgUMSTYyBTYWRhbMSrxaFhbmFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImtvIGRhcmlpdCBwZWVjIHNhZGFsaWlzaGFuYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVEFSVF9ORVdfRklMRQ0KLSAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlN0YXJ0IG5ldyBmaWxlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTxIFrdCBKYXVudSBGYWlsdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJzYWFrdCBqYXVudSBmYWlsdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NUT1BfUkVDT1JESU5HDQotICBkZXNjOiBpbiByZWNvcmQgdGltZXNwbGl0IG9wdGlvbnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU3RvcCByZWNvcmRpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkJlaWd0IEllcmFrc3R1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImJlaWd0IGllcmFrc3R1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1BMSVRfVElNRQ0KLSAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlNwbGl0IFRpbWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlNhZGFsxKvFoWFuYXMgTGFpa3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAic2FkYWxpaXNoYW5hcyBsYWlrcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NQTElUX1NJWkUNCi0gIGRlc2M6IGluIHJlY29yZCB0aW1lc3BsaXQgb3B0aW9ucw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTcGxpdCBGaWxlc2l6ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU2FkYWzEq8WhYW5hcyBJem3Ek3JzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInNhZGFsaWlzaGFuYXMgaXptZWVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRF9QUkVSRUNPUkRfVElNRQ0KLSAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUHJlcmVjb3JkIFRpbWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlBpcm1zaWVyYWtzdGEgTGFpa3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAicGlybXNpZXJha3N0YSBsYWlrcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRF9ESVJFQ1RPUlkNCi0gIGRlc2M6IGluIHJlY29yZGluZyBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkRpcmVjdG9yeSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTWFwZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJtYXBlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VUX0FTX1JFQ19ESVINCi0gIGRlc2M6IHVzZWQgaW4gdGhlIG9ucGxheSBtZW51IHRvIHNldCBhIHJlY29yZGluZyBkaXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU2V0IEFzIFJlY29yZGluZyBEaXJlY3RvcnkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlV6bGlrdCBQYXIgSWVyYWtzdGEgTWFwaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJ1emxpa3QgcGFyIGllcmFrc3RhIG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DTEVBUl9SRUNfRElSDQotICBkZXNjOg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJDbGVhciBSZWNvcmRpbmcgRGlyZWN0b3J5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJQxIFyc3RhdMSrdCBJZXJha3N0YSBNYXBpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInBhYXJzdGF0aWl0IGllcmFrc3RhIG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNfRElSX05PVF9XUklUQUJMRQ0KLSAgZGVzYzoNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiQ2FuJ3Qgd3JpdGUgdG8gcmVjb3JkaW5nIGRpcmVjdG9yeSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTmV2YXIgc2FnbGFixIF0IGllcmFrc3RhIG1hcMSTIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIm5ldmFyIHNhZ2xhYmFhdCBpZXJha3N0YSBtYXBlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NMSVBfTElHSFQNCi0gIGRlc2M6IGluIHJlY29yZCBzZXR0aW5ncyBtZW51Lg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJDbGlwcGluZyBMaWdodCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUMSBcmzEq21lxYZhIEdhaXNtYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJwYWFybGlpbWVuamEgZ2Fpc21hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTUFJTl9VTklUDQotICBkZXNjOiBpbiByZWNvcmQgc2V0dGluZ3MgbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiTWFpbiBVbml0IE9ubHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIlRpa2FpIFV6IEVrcsSBbmEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAidGlrYWkgdXogZWtyYWFuYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFTU9URV9VTklUDQotICBkZXNjOiBpbiByZWNvcmQgc2V0dGluZ3MgbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiUmVtb3RlIFVuaXQgT25seSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiVGlrYWkgVXogUHVsdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAidGlrYWkgdXogcHVsdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRU1PVEVfTUFJTg0KLSAgZGVzYzogaW4gcmVjb3JkIHNldHRpbmdzIG1lbnUuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIk1haW4gYW5kIFJlbW90ZSBVbml0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJVeiBFa3LEgW5hIFVuIFB1bHRzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogInV6IGVrcmFhbmEgdW4gcHVsdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRfVFJJR0dFUg0KLSAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiVHJpZ2dlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUGFsYWlkxJNqcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJpZXJha3N0YSBwYWxhaWRlZWpzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JEX1RSSUdfTk9SRUFSTQ0KLSAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiT25jZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiVmllbnJlaXoiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAidmllbnJlaXoiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRfVFJJR0dFUl9UWVBFDQotICBkZXNjOiBpbiByZWNvcmRpbmcgdHJpZ2dlciBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlRyaWd0eXBlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJWZWlkcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJ2ZWlkcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRF9UUklHR0VSX05FV0ZJTEVTVFANCi0gIGRlc2M6IHRyaWdnZXIgdHlwZXMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTmV3IGZpbGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkphdW5zIEZhaWxzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImphdW5zIGZhaWxzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JEX1RSSUdHRVJfU1RPUA0KLSAgZGVzYzogdHJpZ2dlciB0eXBlcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTdG9wIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJBcHN0xIF0aWVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImFwc3RhYXRpZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRfU1RBUlRfVEhSRVNIT0xEDQotICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTdGFydCBBYm92ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU8SBa3QgVmlycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJzYWFrdCB2aXJzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTUlOX0RVUkFUSU9ODQotICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJmb3IgYXQgbGVhc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlDEk2MgVmlzbWF6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInBlZWMgdmlzbWF6Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JEX1NUT1BfVEhSRVNIT0xEDQotICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTdG9wIEJlbG93Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJBcHN0xIF0aWVzIFplbSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJhcHN0YWF0aWVzIHplbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRF9TVE9QX0dBUA0KLSAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUHJlc3BsaXQgR2FwIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJQaXJtc3NhZGFsZXMgU3ByYXVnYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJwaXJtc3NhZGFsZXMgc3ByYXVnYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRF9QUkVSRUNPUkQNCi0gIGRlc2M6IGluIHJlY29yZGluZyBhbmQgcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlByZS1SZWNvcmRpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlBpcm1zaWVyYWtzdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUdDX1NBRkVUWQ0KLSAgZGVzYzogQUdDIHByZXNldA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJTYWZldHkgKGNsaXApIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJEcm/FocSrYmEgKFNrYcS8dW1zKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJEcm9zaGlpYmEgKHNrYWxqdW1zKSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FHQ19MSVZFDQotICBkZXNjOiBBR0MgcHJlc2V0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkxpdmUgKHNsb3cpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJLb25jZXJ0cyAobMSTbmkpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogImtvbmNlcnRzIChsZWVuaSkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BR0NfREpTRVQNCi0gIGRlc2M6IEFHQyBwcmVzZXQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWdjOiAiREotU2V0IChzbG93KSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgYWdjOiAiUmVwcyAobMSTbmkpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogInJlcHMgKGxlZW5pKSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0FHQ19NRURJVU0NCi0gIGRlc2M6IEFHQyBwcmVzZXQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWdjOiAiTWVkaXVtIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJWaWTEk2ppIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogInZpZGVlamkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BR0NfVk9JQ0UNCi0gIGRlc2M6IEFHQyBwcmVzZXQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWdjOiAiVm9pY2UgKGZhc3QpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJCYWxzcyAoxIF0cmkpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogImJhbHNzIChhYXRyaSkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRU1PVEVfTENEX09GRg0KLSAgZGVzYzogUmVtb3RlIGxjZCBvZmYgc3BsYXNoIGluIHJlY29yZGluZyBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiUmVtb3RlIERpc3BsYXkgT0ZGIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJQdWx0cyBFa3LEgW5zIEl6c2zEk2d0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJwdWx0cyBla3JhYW5zIGl6c2xlZWd0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFTU9URV9MQ0RfT04NCi0gIGRlc2M6IFJlbW90ZSBsY2Qgb2ZmIHNwbGFzaCBpbiByZWNvcmRpbmcgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIihWb2wtIDogUmUtZW5hYmxlKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiKFNrYcS8dW1zLSA6IEllc2zEk2d0KSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJzcGllc3Qgc2thbGp1bXUgbGFpIGllc2xlZWd0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NSRUFURV9QTEFZTElTVA0KLSAgZGVzYzogTWVudSBvcHRpb24gZm9yIGNyZWF0aW5nIGEgcGxheWxpc3QNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDcmVhdGUgUGxheWxpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXp2ZWlkb3QgU2FyYWtzdHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenZlaWRvdCBzYXJha3N0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUVklFV0VSX1NFVFRJTkdTDQotICBkZXNjOiB0aXRsZSBmb3IgdGhlIHBsYXlsaXN0IHZpZXdlciBzZXR0aW5ncyBtZW51cw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBsYXlsaXN0IFZpZXdlciBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYXJha3N0dSBTa2F0xKt0xIFqYSBVenN0xIFkxKtqdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FyYWtzdHUgc2thdGlpdGFhamEgdXpzdGFhZGlpanVtaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZJRVdfRFlOQU1JQ19QTEFZTElTVA0KLSAgZGVzYzogaW4gcGxheWxpc3QgbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJWaWV3IEN1cnJlbnQgUGxheWxpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXBsxatrb3QgUGF0cmVpesSTam8gU2FyYWtzdHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhcGx1dWtvdCBwYXRyZWl6ZWVqbyBzYXJha3N0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01PVkUNCi0gIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBNb3ZlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTW92ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQxIFydmlldG90Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGFhcnZpZXRvdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NIT1dfSU5ESUNFUw0KLSAgZGVzYzogaW4gcGxheWxpc3Qgdmlld2VyIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTaG93IEluZGljZXMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUsSBZMSrdCBJbmRla3N1cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJhYWRpaXQgaW5kZWtzdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UUkFDS19ESVNQTEFZDQotICBkZXNjOiBpbiBwbGF5bGlzdCB2aWV3ZXIgb24rcGxheSBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVHJhY2sgRGlzcGxheSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQYXLEgWTEq3QgRHppZXNtdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBhcmFhZGlpdCBkemllc211Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRElTUExBWV9UUkFDS19OQU1FX09OTFkNCi0gIGRlc2M6IHRyYWNrIGRpc3BsYXkgb3B0aW9ucw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlRyYWNrIE5hbWUgT25seSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJUaWthaSBOb3NhdWt1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ0aWthaSBub3NhdWt1bXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRU1PVkUNCi0gIGRlc2M6IGluIHBsYXlsaXN0IHZpZXdlciBvbitwbGF5IG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSZW1vdmUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQWl6dsSBa3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhaXp2YWFrdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NBVkVfRFlOQU1JQ19QTEFZTElTVA0KLSAgZGVzYzogaW4gcGxheWxpc3QgbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTYXZlIEN1cnJlbnQgUGxheWxpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2FnbGFixIF0IFBhdHJlaXrEk2pvIFNhcmFrc3R1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FnbGFiYWF0IHBhdHJlaXplZWpvIHNhcmFrc3R1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExBWUxJU1RfU0FWRV9DT1VOVA0KLSAgZGVzYzogc3BsYXNoIG51bWJlciBvZiB0cmFja3Mgc2F2ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTYXZlZCAlZCB0cmFja3MgKCVzKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYWdsYWLEgXRhcyAlZCBkemllc21hcyAoJXMpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FnbGFiYWF0YXMgZHppZXNtYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVRBTE9HDQotICBkZXNjOiBpbiBtYWluIG1lbnUgYW5kIG9ucGxheSBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGxheWxpc3QgQ2F0YWxvZ3VlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNhcmFrc3R1IEthdGFsb2dzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FyYWtzdHUga2F0YWxvZ3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNVUlNFX0RJUkVDVE9SWQ0KLSAgZGVzYzogSW4gcGxheWxpc3QgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlJlY3Vyc2l2ZWx5IEluc2VydCBEaXJlY3RvcmllcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXZpZXRvdCBNYXBlcyBBciBBcGFrxaFtYXDEk20iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZXZpZXRvdCBtYXBlcyBhciBhcGFrc2htYXBlZW0iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNVUlNFX0RJUkVDVE9SWV9RVUVTVElPTg0KLSAgZGVzYzogQXNrZWQgZnJvbSBvbnBsYXkgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVjdXJzaXZlbHk/Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFyIEFwYWvFoW1hcMSTbT8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2YWkgYXIgYXBha3NobWFwZWVtIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0FSTl9FUkFTRURZTlBMQVlMSVNUX01FTlUNCi0gIGRlc2M6IGluIHBsYXlsaXN0IG9wdGlvbnMgbWVudSwgb3B0aW9uIHRvIHdhcm4gd2hlbiBlcmFzaW5nIGR5bmFtaWMgcGxheWxpc3QNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJXYXJuIFdoZW4gRXJhc2luZyBEeW5hbWljIFBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkJyxKtkaW7EgXQgRHrEk8Whb3QgRGluYW1pc2t1IHNhcmFrc3R1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYnJpaWRpbmFhdCBkemVlc2hvdCBkaW5hbWlza3Ugc2FyYWtzdHUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19XQVJOX0VSQVNFRFlOUExBWUxJU1RfUFJPTVBUDQotICBkZXNjOiBwcm9tcHQgc2hvd24gd2hlbiBhYm91dCB0byBlcmFzZSBhIG1vZGlmaWVkIGR5bmFtaWMgcGxheWxpc3QNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJFcmFzZSBkeW5hbWljIHBsYXlsaXN0PyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemR6xJNzdCBEaW5hbWlza3UgU2FyYWtzdHU/Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmFpIGl6ZHplZXN0IGRpbmFtaXNrdSBzYXJha3N0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NIVVRET1dODQotICBkZXNjOiBpbiBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc29mdF9zaHV0ZG93bjogIlNodXQgZG93biINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc29mdF9zaHV0ZG93bjogIkl6c2zEk2d0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHNvZnRfc2h1dGRvd246ICJpenNsZWVndCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JPQ0tCT1hfSU5GTw0KLSAgZGVzYzogZGlzcGxheWVkIHRvcG1vc3Qgb24gdGhlIGluZm8gc2NyZWVuIGFuZCBpbiB0aGUgaW5mbyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUm9ja2JveCBJbmZvIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlBhciBSb2NrYm94Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGFyIHJvY2tib3giDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CVUZGRVJfU1RBVA0KLSAgZGVzYzogdGhlIGJ1ZmZlciBzaXplLCAlZCBNQiAlZCBmcmFjdGlvbiBvZiBNQg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJ1ZmZlcjoiDQotICAgIGFyY2hvc3BsYXllcjogIkJ1ZjoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQnVmZXJpczoiDQotICAgIGFyY2hvc3BsYXllcjogIkJ1ZjoiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJidWZlcmEgaXptZWVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBVFRFUllfVElNRQ0KLSAgZGVzYzogYmF0dGVyeSBsZXZlbCBpbiAlIGFuZCBlc3RpbWF0ZWQgdGltZSByZW1haW5pbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCYXR0ZXJ5OiAlZCUlICVkaCAlZG0iDQotICAgIGFyY2hvc3BsYXllcixhcmNob3NyZWNvcmRlcixhcmNob3NmbXJlY29yZGVyLGFyY2hvc3JlY29yZGVydjIsYXJjaG9zb25kaW8qLGlyaXZlcmlmcDd4eDogIiVkJSUgJWRoICVkbSINCi0gICAgaXJpdmVyaDEwLGlwb2RtaW5pMWcsaXBvZG1pbmkyZzogIkJhdHQ6ICVkJSUgJWRoICVkbSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJCYXRlcmlqYTogJWQlJSAlZHMgJWRtIg0KLSAgICBhcmNob3NwbGF5ZXIsYXJjaG9zcmVjb3JkZXIsYXJjaG9zZm1yZWNvcmRlcixhcmNob3NyZWNvcmRlcnYyLGFyY2hvc29uZGlvKixpcml2ZXJpZnA3eHg6ICIlZCUlICVkcyAlZG0iDQotICAgIGlyaXZlcmgxMCxpcG9kbWluaTFnLGlwb2RtaW5pMmc6ICJCYXQ6ICVkJSUgJWRzICVkbSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJhdGVyaWphcyBsaWltZW5pcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJU0tfU0laRV9JTkZPDQotICBkZXNjOiBkaXNrIHNpemUgaW5mbw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRpc2s6Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0bWnFhmE6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRtaW5qYXMgaXptZWVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJU0tfRlJFRV9JTkZPDQotICBkZXNjOiBkaXNrIHNpemUgaW5mbw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZyZWU6Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkJyxKt2czoiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJicmlpdmFhIHZpZXRhOiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJU0tfTkFNRV9JTlRFUk5BTA0KLSAgZGVzYzogaW4gaW5mbyBtZW51OyBuYW1lIGZvciBpbnRlcm5hbCBkaXNrIHdpdGggbXVsdGl2b2x1bWUgKGtlZXAgc2hvcnQhKQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtdWx0aXZvbHVtZTogIkludDoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAiSWXEt8WhOiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtdWx0aXZvbHVtZTogImlla3NoZWVqYWlzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRElTS19OQU1FX01NQw0KLSAgZGVzYzogaW4gaW5mbyBtZW51OyAgbmFtZSBmb3IgZXh0ZXJuYWwgZGlzayB3aXRoIG11bHRpdm9sdW1lIChPbmRpbzsga2VlcCBzaG9ydCEpDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAiSEQxIg0KLSAgICBzYW5zYWUyMDAqLHNhbnNhYzIwMCosc2Fuc2FmdXplKixzYW5zYWNsaXBwbHVzOiAibVNEOiINCi0gICAgYXJjaG9zb25kaW8qOiAiTU1DOiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbXVsdGl2b2x1bWU6ICJIRDEiDQotICAgIHNhbnNhZTIwMCosc2Fuc2FjMjAwKixzYW5zYWZ1emUqLHNhbnNhY2xpcHBsdXM6ICJNU0Q6Ig0KLSAgICBhcmNob3NvbmRpbyo6ICJNTUM6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAiaGFhIGRlZSB2aWVucyINCi0gICAgc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHNhbnNhZnV6ZSo6ICJtaWtybyBlcyBkZWUiDQotICAgIGFyY2hvc29uZGlvKjogImVtIGVtIGNlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZFUlNJT04NCi0gIGRlc2M6IGluIHRoZSBSb2NrYm94IEluZm8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVmVyc2lvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJWZXJzaWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmVyc2lqYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JVTk5JTkdfVElNRQ0KLSAgZGVzYzogaW4gcnVuIHRpbWUgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUnVubmluZyBUaW1lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkllc2zEk2d0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImllc2xlZWd0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RPUF9USU1FDQotICBkZXNjOiBpbiBydW4gdGltZSBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUb3AgVGltZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJbGfEgWthaXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpbGdhYWthaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DTEVBUl9USU1FDQotICBkZXNjOiBpbiBydW4gdGltZSBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDbGVhciBUaW1lPyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemR6xJNzdCBMYWlrdT8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2YWkgaXpkemVlc3QgbGFpa3UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERUJVRw0KLSAgZGVzYzogaW4gdGhlIGluZm8gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRlYnVnIChLZWVwIE91dCEpIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkvEvMWrZGFzIChOZWFpenRpZWMhKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtsanV1ZGFzIG5lYWl6dGllYyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUDQotICBkZXNjOiBVc2VkIHdoZW4geW91IG5lZWQgdG8gc2F5IHBsYXlsaXN0LCBhbHNvIHZvaWNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNhcmFrc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FyYWtzdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JTlNFUlQNCi0gIGRlc2M6IGluIG9ucGxheSBtZW51LiAgaW5zZXJ0IGEgdHJhY2svcGxheWxpc3QgaW50byBkeW5hbWljIHBsYXlsaXN0Lg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkluc2VydCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXZpZXRvdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImlldmlldG90Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSU5TRVJUX0ZJUlNUDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIGluc2VydCBhIHRyYWNrL3BsYXlsaXN0IGludG8gZHluYW1pYyBwbGF5bGlzdC4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJJbnNlcnQgTmV4dCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXZpZXRvdCBOxIFrYW1vIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaWV2aWV0b3QgTmFha2FtbyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lOU0VSVF9MQVNUDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIGFwcGVuZCBhIHRyYWNrL3BsYXlsaXN0IGludG8gZHluYW1pYyBwbGF5bGlzdC4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJJbnNlcnQgTGFzdCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXZpZXRvdCBQxJNkxJNqbyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImlldmlldG90IHBlZWRlZWpvIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSU5TRVJUX1NIVUZGTEVEDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIGluc2VydCBhIHRyYWNrL3BsYXlsaXN0IHJhbmRvbWx5IGludG8gZHluYW1pYyBwbGF5bGlzdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkluc2VydCBTaHVmZmxlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZXZpZXRvdCBTYWphdWt0aSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImlldmlldG90IHNhamF1a3RpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUVVFVUUNCi0gIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBRdWV1ZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlF1ZXVlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJpbmRhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicmluZGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19RVUVVRV9GSVJTVA0KLSAgZGVzYzogaW4gb25wbGF5IG1lbnUuICBxdWV1ZSBhIHRyYWNrL3BsYXlsaXN0IGludG8gZHluYW1pYyBwbGF5bGlzdC4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJRdWV1ZSBOZXh0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlJpbmTEgSBOxIFrYW1vIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicmluZGFhIG5hYWthbW8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19RVUVVRV9MQVNUDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIHF1ZXVlIGEgdHJhY2svcGxheWxpc3QgYXQgZW5kIG9mIHBsYXlsaXN0Lg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlF1ZXVlIExhc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUmluZMSBIFDEk2TEk2pvIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicmluZMSBIHBlZWRlZWpvIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUVVFVUVfU0hVRkZMRUQNCi0gIGRlc2M6IGluIG9ucGxheSBtZW51LiAgcXVldWUgYSB0cmFjay9wbGF5bGlzdCByYW5kb21seSBpbnRvIGR5bmFtaWMgcGxheWxpc3QNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJRdWV1ZSBTaHVmZmxlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSaW5kxIEgU2FqYXVrdGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJyaW5kYWEgc2FqYXVrdGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRVBMQUNFDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIFJlcGxhY2UgdGhlIGN1cnJlbnQgcGxheWxpc3Qgd2l0aCBhIG5ldyBvbmUuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGxheSBOZXh0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0c2thxYZvdCBOxIFrYW1vIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRza2Fuam90IG5hYWthbW8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTEFZTElTVF9JTlNFUlRfQ09VTlQNCi0gIGRlc2M6IHNwbGFzaCBudW1iZXIgb2YgdHJhY2tzIGluc2VydGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiSW5zZXJ0ZWQgJWQgdHJhY2tzICglcykiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSWV2aWV0b3RhcyAlZCBkemllc21hcyAoJXMpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaWV2aWV0b3RhcyBkemllc21hcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUX1FVRVVFX0NPVU5UDQotICBkZXNjOiBzcGxhc2ggbnVtYmVyIG9mIHRyYWNrcyBxdWV1ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJRdWV1ZWQgJWQgdHJhY2tzICglcykiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUmluZMSBICVkIGR6aWVzbWFzICglcykiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZXZpZXRvdGFzIHJpbmRhYSBkemllc21hcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1ZJRVcNCi0gIGRlc2M6IGluIG9uK3BsYXkgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlZpZXciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXBsxatrb3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhcGx1dWtvdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NFQVJDSF9JTl9QTEFZTElTVA0KLSAgZGVzYzogaW4gcGxheWxpc3QgbWVudS4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTZWFyY2ggSW4gUGxheWxpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTWVrbMSTdCBTYXJha3N0xIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtZWtsZWV0IHNhcmFrc3RhYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUX1NFQVJDSF9NU0cNCi0gIGRlc2M6IHNwbGFzaCBudW1iZXIgb2YgdHJhY2tzIGluc2VydGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2VhcmNoaW5nLi4uICVkIGZvdW5kICglcykiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTWVrbMSTLi4uICVkIGF0cmFzdGFzICglcykiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TSFVGRkxFX1BMQVlMSVNUDQotICBkZXNjOiBpbiBwbGF5bGlzdCBtZW51LCByZXNodWZmbGVzIHRoZSBvcmRlciBpbiB3aGljaCBzb25ncyBhcmUgcGxheWVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVzaHVmZmxlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEgXJrxIFydG90Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGFhcmthYXJ0b3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVRBTE9HX1ZJRVcNCi0gIGRlc2M6IGluIG9ucGxheSBwbGF5bGlzdCBjYXRhbG9ndWUgc3VibWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlZpZXcgQ2F0YWxvZ3VlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFwbMWra290IEthdGFsb2d1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXBsdXVrb3Qga2F0YWxvZ3UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVRBTE9HX0FERF9UTw0KLSAgZGVzYzogaW4gb25wbGF5IHBsYXlsaXN0IGNhdGFsb2d1ZSBzdWJtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWRkIHRvIFBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlBpZXZpZW5vdCBTYXJha3N0YW0iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwaWV2aWVub3Qgc2FyYWtzdGFtIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ0FUQUxPR19BRERfVE9fTkVXDQotICBkZXNjOiBpbiBvbnBsYXkgcGxheWxpc3QgY2F0YWxvZ3VlIHN1Ym1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJBZGQgdG8gTmV3IFBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlBpZXZpZW5vdCBKYXVuYW0gU2FyYWtzdGFtIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGlldmllbm90IGphdW5hbSBzYXJha3N0YW0iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVRBTE9HX05PX0RJUkVDVE9SWQ0KLSAgZGVzYzogZXJyb3IgbWVzc2FnZSB3aGVuIHBsYXlsaXN0IGNhdGFsb2d1ZSBkaXJlY3RvcnkgZG9lc24ndCBleGlzdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiVzIGRvZXNuJ3QgZXhpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiJXMgbmVwYXN0xIF2Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2FyYWtzdGEgbWFwZSBuZXBhc3RhYXYiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DQVRBTE9HX05PX1BMQVlMSVNUUw0KLSAgZGVzYzogZXJyb3IgbWVzc2FnZSB3aGVuIG5vIHBsYXlsaXN0cyBmb3IgcGxheWxpc3QgY2F0YWxvZ3VlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTm8gUGxheWxpc3RzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5hdiBTYXJha3N0dSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5hdiBzYXJha3N0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX01FTlUNCi0gIGRlc2M6IFRleHQgb24gbWFpbiBtZW51IHRvIGdldCB0byBib29rbWFyayBjb21tYW5kcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJvb2ttYXJrcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJHcsSBbWF0esSrbWVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ3JhYW1hdHppaW1lcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JPT0tNQVJLX01FTlVfQ1JFQVRFDQotICBkZXNjOiBVc2VkIG9mZiBvZiB0aGUgYm9va21hcmsgbWVudSB0byBjcmVhdGUgYSBib29rbWFyaw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNyZWF0ZSBCb29rbWFyayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJenZlaWRvdCBHcsSBbWF0esSrbWkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenZlaWRvdCBncmFhbWF0emlpbWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19NRU5VX0xJU1QNCi0gIGRlc2M6IFVzZWQgb2ZmIG9mIHRoZSBib29rbWFyayBtZW51IHRvIGxpc3QgYXZhaWxhYmxlIGJvb2ttYXJrcyBmb3IgdGhlIGN1cnJlbnRseSBwbGF5aW5nIGRpcmVjdG9yeSBvciBNM1UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJMaXN0IEJvb2ttYXJrcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJTYWvEgXJ0b3QgR3LEgW1hdHrEq21lcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNha2FhcnRvdCBncmFhbWF0emlpbWVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfT05QTEFZX01FTlVfVElUTEUNCi0gIGRlc2M6IHRpdGxlIGZvciB0aGUgb25wbGF5IG1lbnVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQ29udGV4dCBNZW51Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6dsSTbG5lIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXp2ZWVsbmUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NRU5VX1NFVF9SQVRJTkcNCi0gIGRlc2M6IFNldCB0aGUgcmF0aW5nIG9mIGEgZmlsZSBpbiB0aGUgd3BzIGNvbnRleHQgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNldCBTb25nIFJhdGluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJVemxpa3QgVsSTcnTEk2p1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ1emxpa3QgdmVlcnRlZWp1bXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CUk9XU0VfQ1VFU0hFRVQNCi0gIGRlc2M6DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQnJvd3NlIEN1ZXNoZWV0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFwbMWra290IGN1ZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFwbHV1a290IGN1ZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX01FTlVfU0hPV19JRDNfSU5GTw0KLSAgZGVzYzogTWVudSBvcHRpb24gdG8gc3RhcnQgdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNob3cgVHJhY2sgSW5mbyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJEemllc21hcyBJbmZvIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGFyYWFkaWl0IGR6aWVzbWFzIGluZm8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfVElUTEUNCi0gIGRlc2M6IGluIHRhZyB2aWV3ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUaXRsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOb3NhdWt1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfQVJUSVNUDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQXJ0aXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6cGlsZMSrdMSBanMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfQUxCVU0NCi0gIGRlc2M6IGluIHRhZyB2aWV3ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJBbGJ1bSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBbGLFq21zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX1RSQUNLTlVNDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiVHJhY2tudW0iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTnVtdXJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX0dFTlJFDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiR2VucmUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAixb1hbnJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX1lFQVINCi0gIGRlc2M6IGluIHRhZyB2aWV3ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJZZWFyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkdhZHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfTEVOR1RIDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTGVuZ3RoIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkdhcnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lEM19QTEFZTElTVA0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNhcmFrc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX0JJVFJBVEUNCi0gIGRlc2M6IGluIHRhZyB2aWV3ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCaXRyYXRlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkJpdHJlaXRzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX0FMQlVNQVJUSVNUDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWxidW0gQXJ0aXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFsYsWrbWEgSXpwaWxkxKt0xIFqcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lEM19ESVNDTlVNDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGlzY251bSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJEaXNrYSBOdW11cnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfQ09NTUVOVA0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNvbW1lbnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiS29tZW50xIFycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lEM19WQlINCi0gIGRlc2M6IGluIGJyb3dzZV9pZDMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIgKFZCUikiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIChNQlIpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSUQzX0ZSRVFVRU5DWQ0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkZyZXF1ZW5jeSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJGcmVrdmVuY2UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfVFJBQ0tfR0FJTg0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlRyYWNrIEdhaW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRHppZXNtYXMgU2thxLx1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfQUxCVU1fR0FJTg0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkFsYnVtIEdhaW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQWxixattYSBTa2HEvHVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lEM19QQVRIDQotICBkZXNjOiBpbiB0YWcgdmlld2VyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGF0aCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJDZcS8xaEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfTk9fSU5GTw0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIjxObyBJbmZvPiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICI8TmF2IEluZm9ybcSBY2lqYXM+Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVOQU1FDQotICBkZXNjOiBUaGUgdmVyYi9hY3Rpb24gUmVuYW1lDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUmVuYW1lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEgXJzYXVrdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBhYXJzYXVrdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NVVA0KLSAgZGVzYzogVGhlIHZlcmIvYWN0aW9uIEN1dA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkN1dCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemdyaWV6dCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6Z3JpZXp0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09QWQ0KLSAgZGVzYzogVGhlIHZlcmIvYWN0aW9uIENvcHkNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDb3B5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktvcMSTdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtvcGVldCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BBU1RFDQotICBkZXNjOiBUaGUgdmVyYi9hY3Rpb24gUGFzdGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQYXN0ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJZWzEq23Ek3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZWxpaW1lZXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUFMTFlfT1ZFUldSSVRFDQotICBkZXNjOiBUaGUgdmVyYi9hY3Rpb24gUGFzdGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGaWxlL2RpcmVjdG9yeSBleGlzdHMuIE92ZXJ3cml0ZT8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRmFpbHMvbWFwZSBqYXUgaXIuIFDEgXJyYWtzdMSrdD8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJmYWlscyB2YWkgbWFwZSBqYXUgaXIuIHZhaSBwYWFycmFrc3RpaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERUxFVEUNCi0gIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBEZWxldGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJEZWxldGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpkesSTc3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpemR6ZWVzdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RFTEVURV9ESVINCi0gIGRlc2M6IGluIG9uK3BsYXkgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRlbGV0ZSBEaXJlY3RvcnkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpkesSTc3QgTWFwaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6ZHplZXN0IG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUFMTFlfREVMRVRFDQotICBkZXNjOiBSZWFsbHkgRGVsZXRlPw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRlbGV0ZT8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpkesSTc3Q/Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidmFpIHRpZXNoYWFtIGl6ZHplZXN0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09QWUlORw0KLSAgZGVzYzoNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDb3B5aW5nLi4uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktvcMSTLi4uIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia29wZWUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERUxFVElORw0KLSAgZGVzYzoNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJEZWxldGluZy4uLiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJemR6xJPFoS4uLiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6ZHplZXNoIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9WSU5HDQotICBkZXNjOg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk1vdmluZy4uLiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQxIFydmlldG8uLi4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWFydmlldG8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERUxFVEVEDQotICBkZXNjOiBBIGZpbGUgaGFzIGJlZWQgZGVsZXRlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRlbGV0ZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpkesSTc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpkemVlc3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VUX0FTX0JBQ0tEUk9QDQotICBkZXNjOiB0ZXh0IGZvciBvbnBsYXkgbWVudSBlbnRyeQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfbm9uLW1vbm86ICJTZXQgQXMgQmFja2Ryb3AiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9ub24tbW9ubzogIlV6bGlrdCBLxIEgRm9udSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfbm9uLW1vbm86ICJ1emxpa3Qga2FhIGZvbnUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQUNLRFJPUF9MT0FERUQNCi0gIGRlc2M6IGRlcHJlY2F0ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX25vbi1tb25vOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2Rfbm9uLW1vbm86ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX25vbi1tb25vOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFDS0RST1BfRkFJTEVEDQotICBkZXNjOiBkZXByZWNhdGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9ub24tbW9ubzogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX25vbi1tb25vOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9ub24tbW9ubzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX09OUExBWV9PUEVOX1dJVEgNCi0gIGRlc2M6IE9ucGxheSBvcGVuIHdpdGgNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJPcGVuIFdpdGguLi4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXR2xJNydCBBci4uLiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0dmVlcnQgYXIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DUkVBVEVfRElSDQotICBkZXNjOiBpbiBtYWluIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDcmVhdGUgRGlyZWN0b3J5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6dmVpZG90IE1hcGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpenZlaWRvdCBtYXBpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUFJPUEVSVElFUw0KLSAgZGVzYzogYnJvd3NlciBmaWxlL2RpciBwcm9wZXJ0aWVzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUHJvcGVydGllcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQYXJhbWV0cmkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYXJhbWV0cmkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BRERfVE9fRkFWRVMNCi0gIGRlc2M6DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQWRkIHRvIFNob3J0Y3V0cyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQaWV2aWVub3QgU2HEq3NuxJNtIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGlldmllbm90IHNhaWlzbmVlbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BJVENIDQotICBkZXNjOiAicGl0Y2giIGluIHRoZSBwaXRjaCBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJQaXRjaCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICLEgHRydW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHBpdGNoc2NyZWVuOiAiYWF0cnVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BJVENIX1VQDQotICBkZXNjOiBpbiB3cHMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJQaXRjaCBVcCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJQYWF1Z3N0aW7EgXQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QSVRDSF9ET1dODQotICBkZXNjOiBpbiB3cHMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJQaXRjaCBEb3duIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIlBhemVtaW7EgXQiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QSVRDSF9VUF9TRU1JVE9ORQ0KLSAgZGVzYzogaW4gd3BzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHBpdGNoc2NyZWVuOiAiU2VtaXRvbmUgVXAiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHBpdGNoc2NyZWVuOiAiUHVzdG9uaSBVeiBBdWfFoXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QSVRDSF9ET1dOX1NFTUlUT05FDQotICBkZXNjOiBpbiB3cHMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJTZW1pdG9uZSBEb3duIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIlB1c3RvbmkgVXogTGVqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUX0JVRkZFUl9GVUxMDQotICBkZXNjOiBpbiBwbGF5bGlzdC5pbmRpY2VzKCkgd2hlbiBwbGF5bGlzdCBpcyBmdWxsDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGxheWxpc3QgQnVmZmVyIEZ1bGwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2FyYWtzdHUgQnVmZXJpcyBQaWxucyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNhcmFrc3R1IGJ1ZmVyaXMgcGlsbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FTkRfUExBWUxJU1QNCi0gIGRlc2M6IHdoZW4gcGxheWxpc3QgaGFzIGZpbmlzaGVkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRW5kIG9mIFNvbmcgTGlzdCINCi0gICAgYXJjaG9zcGxheWVyOiAiRW5kIG9mIExpc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRHppZXNtdSBTYXJha3N0YSBCZWlnYXMiDQotICAgIGFyY2hvc3BsYXllcjogIlNhcmFrc3RhIEJlaWdhcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNhcmFrc3RhIGJlaWdhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NSRUFUSU5HDQotICBkZXNjOiBTY3JlZW4gZmVlZGJhY2sgZHVyaW5nIHBsYXlsaXN0IGNyZWF0aW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQ3JlYXRpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVmVpZG8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19OT1RISU5HX1RPX1JFU1VNRQ0KLSAgZGVzYzogRXJyb3IgbWVzc2FnZSBkaXNwbGF5ZWQgd2hlbiByZXN1bWUgYnV0dG9uIHByZXNzZWQgYnV0IG5vIHBsYXlsaXN0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTm90aGluZyB0byByZXN1bWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTmF2IEtvIEF0c8SBa3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuYXYga28gYXRzYWFrdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUX0NPTlRST0xfVVBEQVRFX0VSUk9SDQotICBkZXNjOiBQbGF5bGlzdCBlcnJvcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkVycm9yIHVwZGF0aW5nIHBsYXlsaXN0IGNvbnRyb2wgZmlsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLxLzFq2RhIEF0amF1bm9qb3QgU2FyYWtzdGEgS29udHJvbGVzIEZhaWx1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia2xqdXVkYSBpenZlaWRvam90IHNhcmFrc3RhIGtvbnRyb2xlcyBmYWlsdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMQVlMSVNUX0FDQ0VTU19FUlJPUg0KLSAgZGVzYzogUGxheWxpc3QgZXJyb3INCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJFcnJvciBhY2Nlc3NpbmcgcGxheWxpc3QgZmlsZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLxLzFq2RhIEF0dmVyb3QgU2FyYWtzdGEgRmFpbHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJrbGp1dWRhIGF0dmVyb3Qgc2FyYWtzdGEgZmFpbHUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTEFZTElTVF9DT05UUk9MX0FDQ0VTU19FUlJPUg0KLSAgZGVzYzogUGxheWxpc3QgZXJyb3INCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJFcnJvciBhY2Nlc3NpbmcgcGxheWxpc3QgY29udHJvbCBmaWxlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkvEvMWrZGEgQXR2ZXJvdCBTYXJha3N0YSBLb250cm9sZXMgRmFpbHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJrbGp1dWRhIGF0dmVyb3Qgc2FyYWtzdGEga29udHJvbGVzIGZhaWx1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExBWUxJU1RfRElSRUNUT1JZX0FDQ0VTU19FUlJPUg0KLSAgZGVzYzogUGxheWxpc3QgZXJyb3INCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJFcnJvciBhY2Nlc3NpbmcgZGlyZWN0b3J5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkvEvMWrZGEgQXR2ZXJvdCBNYXBpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia2xqdXVkYSBhdHZlcm90IG1hcGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTEFZTElTVF9DT05UUk9MX0lOVkFMSUQNCi0gIGRlc2M6IFBsYXlsaXN0IHJlc3VtZSBlcnJvcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBsYXlsaXN0IGNvbnRyb2wgZmlsZSBpcyBpbnZhbGlkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlNhcmFrc3RhIEtvbnRyb2xlcyBGYWlscyBOZWRlcsSrZ3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzYXJha3N0YSBrb250cm9sZXMgZmFpbHMgaXIgbmVkZXJpaWdzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUEFVU0UNCi0gIGRlc2M6IGluIHdwcyBhbmQgcmVjb3JkaW5nIHRyaWdnZXIgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBhdXNlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlBhdXplIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGF1emUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NT0RFDQotICBkZXNjOiBpbiB3cHMgRjIgcHJlc3NlZCBhbmQgcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTW9kZToiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUmXFvsSrbXM6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVElNRQ0KLSAgZGVzYzogVXNlZCBvbiB0aGUgYm9va21hcmsgc2VsZWN0IHdpbmRvdyB0byBsYWJlbCBlbGFwc2VkIHRpbWUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUaW1lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkxhaWtzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibGFpa3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLS8qIFRPRE86IGNsZWFudXAgTEFOR19VU0JfQ0hBUkdJTkcgdW5sZXNzIEhBVkVfVVNCX0NIQVJHSU5HX0VOQUJMRSBkZWZpbmVkLA0KLSAqIHRoZSBzZWxlY3RvciBzaG91bGQgcHJvYmFibHkgYmUgdXNiX2NoYXJnaW5nX2VuYWJsZV9lbmFibGUgYXMgd2VsbC4gKi8NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVVNCX0NIQVJHSU5HDQotICBkZXNjOiBpbiBCYXR0ZXJ5IG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2NoYXJnaW5nX2VuYWJsZTogIkNoYXJnZSBEdXJpbmcgVVNCIENvbm5lY3Rpb24iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHVzYl9jaGFyZ2luZ19lbmFibGU6ICJMxIFkxJN0IGFyIFVTQiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfY2hhcmdpbmdfZW5hYmxlOiAibGFhZGVldCBhciB1dWVzYmVlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfS0VZTE9DS19PTg0KLSAgZGVzYzogZGlzcGxheWVkIHdoZW4ga2V5IGxvY2sgaXMgb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCdXR0b25zIExvY2tlZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQb2dhcyBOb2Jsb8S3xJN0YXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19LRVlMT0NLX09GRg0KLSAgZGVzYzogZGlzcGxheWVkIHdoZW4ga2V5IGxvY2sgaXMgdHVybmVkIG9mZg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkJ1dHRvbnMgVW5sb2NrZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUG9nYXMgQXRibG/Et8STdGFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JESU5HX1RJTUUNCi0gIGRlc2M6IERpc3BsYXkgb2YgcmVjb3JkZWQgdGltZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJUaW1lOiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTGFpa3M6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RJU0tfRlVMTA0KLSAgZGVzYzogaW4gcmVjb3JkaW5nIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJUaGUgZGlzayBpcyBmdWxsLiBQcmVzcyBPRkYgdG8gY29udGludWUuIg0KLSAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIlRoZSBkaXNrIGlzIGZ1bGwuIFByZXNzIFNUT1AgdG8gY29udGludWUuIg0KLSAgICBpYXVkaW9tNSxpYXVkaW94NTogIlRoZSBkaXNrIGlzIGZ1bGwuIFByZXNzIFBPV0VSIHRvIGNvbnRpbnVlLiINCi0gICAgc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHZpYmU1MDA6ICJUaGUgZGlzayBpcyBmdWxsLiBQcmVzcyBQUkVWIHRvIGNvbnRpbnVlLiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiQXRtacWGYSBwaWxuYS4gU3BpZWQgT0ZGIGxhaSB0dXJwaW7EgXR1LiINCi0gICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJBdG1pxYZhIHBpbG5hLiBTcGllZCBTVE9QIGxhaSB0dXJwaW7EgXR1LiINCi0gICAgaWF1ZGlvbTUsaWF1ZGlveDU6ICJBdG1pxYZhIHBpbG5hLiBTcGllZCBQT1dFUiBsYWkgdHVycGluxIF0dS4iDQotICAgIHNhbnNhZTIwMCosc2Fuc2FjMjAwKix2aWJlNTAwOiAiQXRtacWGYSBwaWxuYS4gU3BpZWQgUFJFViBsYWkgdHVycGluxIF0dS4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nLGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwLGlhdWRpb201LGlhdWRpb3g1LHNhbnNhZTIwMCosc2Fuc2FjMjAwKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0RCX0lORg0KLSAgZGVzYzogLWluZiBkYiBmb3IgdmFsdWVzIGJlbG93IG1lYXN1cmVtZW50DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIi1pbmYiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIi1uZWciDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAibWlpbnVzIGJlemdhbGlpYmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT05GSVJNX1NIVVRET1dODQotICBkZXNjOiBpbiBzaHV0ZG93biBzY3JlZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc29mdF9zaHV0ZG93bjogIlByZXNzIE9GRiB0byBzaHV0IGRvd24iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHNvZnRfc2h1dGRvd246ICJTcGllZCBPRkYgbGFpIGl6c2zEk2d0dSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzb2Z0X3NodXRkb3duOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVNT1ZFX01NQw0KLSAgZGVzYzogYmVmb3JlIGFja25vd2xlZGdpbmcgdXNiIGluIGNhc2UgYW4gTU1DIGlzIGluc2VydGVkIChPbmRpbykNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYXJjaG9zb25kaW8qOiAiUGxlYXNlIHJlbW92ZSBpbnNlcnRlZCBNTUMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFyY2hvc29uZGlvKjogIkzFq2R6dSBpesWGZW1pZXQgaWV2aWV0b3RvIE1NQyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhcmNob3NvbmRpbyo6ICJsdXVkenUgaXpuamVtaWV0IGF0bWluamFzIGthcnRpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9PVF9DSEFOR0VEDQotICBkZXNjOiBGaWxlIGJyb3dzZXIgZGlzY292ZXJlZCB0aGUgYm9vdCBmaWxlIHdhcyBjaGFuZ2VkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm9vdCBjaGFuZ2VkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkZhaWxzIEl6bWFpbsSrdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJmYWlscyBpem1haW5paXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVCT09UX05PVw0KLSAgZGVzYzogRG8geW91IHdhbnQgdG8gcmVib290Pw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlJlYm9vdCBub3c/Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEgXJzdGFydMSTdCB0YWdhZD8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2YWkgcGFhcnN0YXJ0ZWV0IHRhZ2FkIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfT0ZGX0FCT1JUDQotICBkZXNjOiBVc2VkIG9uIGFyY2hvc3JlY29yZGVyIG1vZGVscw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk9GRiB0byBhYm9ydCINCi0gICAgYXJjaG9zcGxheWVyLGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiU1RPUCB0byBhYm9ydCINCi0gICAgaXBvZCo6ICJQTEFZL1BBVVNFIHRvIGFib3J0Ig0KLSAgICBpYXVkaW94NSxpYXVkaW9tNTogIkxvbmcgUExBWSB0byBhYm9ydCINCi0gICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2Isc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHZpYmU1MDA6ICJQUkVWIHRvIGFib3J0Ig0KLSAgICBnaWdhYmVhdHM6ICJCQUNLIHRvIGFib3J0Ig0KLSAgICBnaWdhYmVhdGZ4OiAiUE9XRVIgdG8gYWJvcnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiT0ZGIGxhaSBwxIFydHJhdWt0dSINCi0gICAgYXJjaG9zcGxheWVyLGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiU1RPUCBsYWkgcMSBcnRyYXVrdHUiDQotICAgIGlwb2QqOiAiUExBWS9QQVVTRSBsYWkgcMSBcnRyYXVrdHUiDQotICAgIGlhdWRpb3g1LGlhdWRpb201OiAiTG9uZyBQTEFZIGxhaSBwxIFydHJhdWt0dSINCi0gICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2Isc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHZpYmU1MDA6ICJQUkVWIGxhaSBwxIFydHJhdWt0dSINCi0gICAgZ2lnYWJlYXRzOiAiQkFDSyBsYWkgcMSBcnRyYXVrdHUiDQotICAgIGdpZ2FiZWF0Zng6ICJQT1dFUiBsYWkgcMSBcnRyYXVrdHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19OT19GSUxFUw0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk5vIGZpbGVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5hdiBGYWlsdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5hdiBmYWlsdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0tFWUJPQVJEX0xPQURFRA0KLSAgZGVzYzogc2hvd24gd2hlbiBhIGtleWJvYXJkIGhhcyBiZWVuIGxvYWRlZCBmcm9tIHRoZSBkaXIgYnJvd3Nlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk5ldyBLZXlib2FyZCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJKYXVuYSBLbGF2aWF0xatyYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImphdW5hIGtsYXZpYXR1dXJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExVR0lOX0NBTlRfT1BFTg0KLSAgZGVzYzogUGx1Z2luIG9wZW4gZXJyb3IgbWVzc2FnZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNhbid0IG9wZW4gJXMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTmV2YXIgYXR2xJNydCAlcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQURfRkFJTEVEDQotICBkZXNjOiBUaGVyZSB3YXMgYW4gZXJyb3IgcmVhZGluZyBhIGZpbGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGYWlsZWQgcmVhZGluZyAlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOZWl6ZGV2xIFzIG5vbGFzxKt0ICVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExVR0lOX1dST05HX01PREVMDQotICBkZXNjOiBUaGUgcGx1Z2luIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGFyY2hvcyBtb2RlbCB0cnlpbmcgdG8gcnVuIGl0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiSW5jb21wYXRpYmxlIG1vZGVsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5lc2FkZXLEq2dzIG1vZGVsaXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTFVHSU5fV1JPTkdfVkVSU0lPTg0KLSAgZGVzYzogVGhlIHBsdWdpbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSByb2NrYm94IHZlcnNpb24gdHJ5aW5nIHRvIHJ1biBpdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkluY29tcGF0aWJsZSB2ZXJzaW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5lc2FkZXLEq2dhIHZlcnNpamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTFVHSU5fRVJST1INCi0gIGRlc2M6IFRoZSBwbHVnaW4gcmV0dXJuIGFuIGVycm9yIGNvZGUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJQbHVnaW4gcmV0dXJuZWQgZXJyb3IiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU3ByYXVkbmlzIGl6bWV0YSBrxLzFq2R1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRklMRVRZUEVTX0ZVTEwNCi0gIGRlc2M6IEZpbGV0eXBlIGFycmF5IGZ1bGwNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGaWxldHlwZSBhcnJheSBmdWxsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkZhaWx1IFZlaWR1IFNhcmFrc3RzIFBpbG5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZmFpbHUgdmVpZHUgc2FyYWtzdHMgcGlsbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TSE9XRElSX0JVRkZFUl9GVUxMDQotICBkZXNjOiBpbiBzaG93ZGlyKCksIGRpc3BsYXllZCBvbiBzY3JlZW4gd2hlbiB5b3UgcmVhY2ggYnVmZmVyIGxpbWl0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRGlyIEJ1ZmZlciBpcyBGdWxsISINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJNYXBlcyBCdWZlcmlzIElyIFBpbG5zISINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1hcGVzIGJ1ZmVyaXMgaXIgcGlsbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JTlZBTElEX0ZJTEVOQU1FDQotICBkZXNjOiAiaW52YWxpZCBmaWxlbmFtZSBlbnRlcmVkIiBlcnJvciBtZXNzYWdlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiSW52YWxpZCBGaWxlbmFtZSEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTmVkZXLEq2dzIEZhaWxhIE5vc2F1a3VtcyEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuZWRlcmlpZ3MgZmFpbGEgbm9zYXVrdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExFQVNFX1JFQk9PVA0KLSAgZGVzYzogd2hlbiBhY3RpdmF0aW5nIGFuIG9wdGlvbiB0aGF0IHJlcXVpcmVzIGEgcmVib290DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUGxlYXNlIHJlYm9vdCB0byBlbmFibGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUMSBcnN0YXJ0xJNqaWV0IExhaSBJZXNsxJNndHUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWFyc3RhcnRlZWppZXQgbGFpIGllc2xlZWd0dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBVFRFUllfQ0hBUkdFDQotICBkZXNjOiB0ZWxscyB0aGF0IHRoZSBiYXR0ZXJ5IGlzIGNoYXJnaW5nLCBpbnN0ZWFkIG9mIGJhdHRlcnkgbGV2ZWwNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJCYXR0ZXJ5OiBDaGFyZ2luZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJCYXRlcmlqYTogTMSBZMSTamFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGNoYXJnaW5nOiAiYmF0ZXJpamEgbGFhZGVlamFzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFUVEVSWV9UT1BPRkZfQ0hBUkdFDQotICBkZXNjOiBpbiBpbmZvIGRpc3BsYXksIHNob3dzIHRoYXQgdG9wIG9mZiBjaGFyZ2UgaXMgcnVubmluZyBPbmx5IGZvciBWMSBhcmNob3NyZWNvcmRlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhcmNob3NyZWNvcmRlcjogIkJhdHRlcnk6IFRvcC1PZmYgQ2hnIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBhcmNob3NyZWNvcmRlcjogIkJhdGVyaWphOiBCZWlkeiBMxIFkxJN0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFyY2hvc3JlY29yZGVyOiAicGFiZWlnc2hhbmFzIGxhYWRpbmpzaCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JBVFRFUllfVFJJQ0tMRV9DSEFSR0UNCi0gIGRlc2M6IGluIGluZm8gZGlzcGxheSwgc2hvd3MgdGhhdCB0cmlja2xlIGNoYXJnZSBpcyBydW5uaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGNoYXJnaW5nOiAiQmF0dGVyeTogVHJpY2tsZSBDaGciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGNoYXJnaW5nOiAiQmF0ZXJpamE6IFV6bMSBZMSTdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgY2hhcmdpbmc6ICJsYWFkZWVzaGFuYSBwYWJlaWd0YSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1dBUk5JTkdfQkFUVEVSWV9MT1cNCi0gIGRlc2M6IGdlbmVyYWwgd2FybmluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIldBUk5JTkchIExvdyBCYXR0ZXJ5ISINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJCYXRlcmlqYSBHYW5kcsSreiBUdWvFoWEhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYmF0ZXJpamEgZ2FuZHJpaXogdHVrc2hhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfV0FSTklOR19CQVRURVJZX0VNUFRZDQotICBkZXNjOiBnZW5lcmFsIHdhcm5pbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJCYXR0ZXJ5IGVtcHR5ISBSRUNIQVJHRSEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQmF0ZXJpamEgVHVrxaFhISBKxIBMxIBExJIhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYmF0ZXJpamEgdHVrc2hhIGphYWxhYWRlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JZVEUNCi0gIGRlc2M6IGEgdW5pdCBwb3N0Zml4DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJCIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfS0lMT0JZVEUNCi0gIGRlc2M6IGEgdW5pdCBwb3N0Zml4LCBhbHNvIHZvaWNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIktCIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIktCIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAia2lsb2JhaXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTUVHQUJZVEUNCi0gIGRlc2M6IGEgdW5pdCBwb3N0Zml4LCBhbHNvIHZvaWNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk1CIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk1CIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibWVnYWJhaXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfR0lHQUJZVEUNCi0gIGRlc2M6IGEgdW5pdCBwb3N0Zml4LCBhbHNvIHZvaWNlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkdCIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkdCIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ2lnYWJhaXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE9JTlQNCi0gIGRlc2M6IGRlY2ltYWwgc2VwYXJhdG9yIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIi4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiLiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInB1bmt0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9aRVJPDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm51bGxlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX09ORQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2aWVucyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9UV08NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGl2aSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9USFJFRQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ0cmlpcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9GT1VSDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImNoZXRyaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9GSVZFDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBpZWNpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX1NJWA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzZXNoaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9TRVZFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzZXB0aW5qaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FSUdIVA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhc3RvbmppIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX05JTkUNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGV2aW5qaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9URU4NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGVzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0VMRVZFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2aWVucGFkc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9UV0VMVkUNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGl2cGFkc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9USElSVEVFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ0cmlpc3BhZHNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRk9VUlRFRU4NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiY2hldHJwYWRzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0ZJRlRFRU4NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGllY3BhZHNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfU0lYVEVFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzZXNocGFkc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9TRVZFTlRFRU4NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2VwdGluanBhZHNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRUlHSFRFRU4NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXN0b25qcGFkc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9OSU5FVEVFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkZXZpbmpwYWRzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX1RXRU5UWQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkaXZkZXNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfVEhJUlRZDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInRyaWlzZGVzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0ZPUlRZDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImNoZXRyZGVzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0ZJRlRZDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBpZWNkZXNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfU0lYVFkNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2VzaGRlc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9TRVZFTlRZDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNlcHRpbmpkZXNtaXQiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRUlHSFRZDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFzdG9uamRlc21pdCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9OSU5FVFkNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGV2aW5qZGVzbWl0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0hVTkRSRUQNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2ltdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfVEhPVVNBTkQNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidHV1a3N0b3RpcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9NSUxMSU9ODQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1pbGpvbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQklMTElPTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtaWxqYXJkcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9NSU5VUw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtaWludXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfUExVUw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwbHVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX01JTExJU0VDT05EUw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1pbGlzZWt1bmRlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9TRUNPTkQNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzZWt1bmRlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX1NFQ09ORFMNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzZWt1bmRlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9NSU5VVEUNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtaW51dXRlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX01JTlVURVMNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtaW51dXRlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9IT1VSDQotICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic3R1bmRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0hPVVJTDQotICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic3R1bmRhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9LSFoNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJraWxvaGVyY3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfREINCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkZWNpYmVscyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9QRVJDRU5UDQotICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicHJvY2VudHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfTUlMTElBTVBIT1VSUw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1pbGktYW1wZWVyIHN0dW5kYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfUElYRUwNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwaWtzZWxpcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9QRVJfU0VDDQotICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2VrdW5kZWUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfSEVSVFoNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJoZXJjcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9LQklUX1BFUl9TRUMNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJraWxvYml0aSBzZWt1bmRlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX0ENCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9CDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImJlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX0MNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiY2VlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfRA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkZWUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9FDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImVlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfRg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJlZiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX0cNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZ2FhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfSA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJoYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9JDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImlpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfSg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJqZWUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9LDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImthYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX0wNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZWwiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9NDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImVtIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJlbiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX08NCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1ANCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGVlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfUQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJranV1Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfUg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJlciINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1MNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9UDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInRlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1UNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ0hBUl9WDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZlZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1cNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZGFibGp1dSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1gNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaWtzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfWQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZ3JlayINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9DSEFSX1oNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiemVkIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0RPVA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwdW5rdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfUEFVU0UNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcsIGEgc3BsaXQgc2Vjb25kIG9mIHNpbGVuY2UgKGRpZmZpY3VsdCB0byBhdXRob3IpDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIiAiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRklMRQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIHByZWZpeCBmb3IgZmlsZSBudW1iZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZmFpbHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRElSDQotICBkZXNjOiBzcG9rZW4gb25seSwgcHJlZml4IGZvciBkaXJlY3RvcnkgbnVtYmVyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm1hcGUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRVhUX01QQQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhdWRpbyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfQ0ZHDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImtvbmZpZ3VyYWFjaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0VYVF9XUFMNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRza2Fuam9zaGFuYXMgZWtyYWFucyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfUk9DSw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzcHJhdWRuaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRVhUX0ZPTlQNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiZm9udHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRVhUX0JNQVJLDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uIGFuZCB0aGUgd29yZCBpbiBnZW5lcmFsDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImdyYWFtYXR6aWltZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfQUpaDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInByb2dyYW1tYXR1dXJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0VYVF9SV1BTDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogInB1bHRzIGF0c2thbmpvc2hhbmFzIGVrcmFhbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRVhUX0tCRA0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJrbGF2aWF0dXVyYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfQ1VFU0hFRVQNCi0gIGRlc2M6DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJjdWUgZmFpbHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQk9PS01BUktfU0VMRUNUX0lOREVYX1RFWFQNCi0gIGRlc2M6IHZvaWNlIG9ubHksIHVzZWQgaW4gdGhlIGJvb2ttYXJrIGxpc3QgdG8gbGFiZWwgaW5kZXggbnVtYmVyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImluZGVrc3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfQ1VSUkVOVF9USU1FDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiUGF0cmVpemVlamFpcyBsYWlrczoiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX0VRVUFMSVpFUl9FRElUX01PREUNCi0gIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiRWRpdCBtb2RlOiAlcyAlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkl6bWFpbml0OiAlcyAlcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1lTRk9OVF9FUVVBTElaRVJfQkFORF9DVVRPRkYNCi0gIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiQ3V0b2ZmIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUm9iZXphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJyb2JlemhmcmVrdmVuY2UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX0dBSU4NCi0gIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiR2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlBhc3RpcHJpbmFqdW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJwYXN0aXByaW5hYWp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX01PREUNCi0gIGRlc2M6IGluIHdwcyBGMiBwcmVzc2VkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJNb2RlOiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlJlxb7Eq21zOiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1lTRk9OVF9ESVJCUk9XU0VfRjENCi0gIGRlc2M6IGluIGRpciBicm93c2VyLCBGMSBidXR0b24gYmFyIHRleHQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiTWVudSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiSXp2xJNsbmUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1lTRk9OVF9ESVJCUk9XU0VfRjINCi0gIGRlc2M6IGluIGRpciBicm93c2VyLCBGMiBidXR0b24gYmFyIHRleHQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiT3B0aW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRlcl9wYWQ6ICJPcGNpamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1lTRk9OVF9ESVJCUk9XU0VfRjMNCi0gIGRlc2M6IGluIGRpciBicm93c2VyLCBGMyBidXR0b24gYmFyIHRleHQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkZXJfcGFkOiAiTENEIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRlcl9wYWQ6ICJFa3LEgW5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGVyX3BhZDogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NZU0ZPTlRfQ0hBTk5FTF9TVEVSRU8NCi0gIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIlN0ZXJlbyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU3RlcmVvIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInN0ZXJlbyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NZU0ZPTlRfQ0hBTk5FTF9NT05PDQotICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJNb25vIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJNb25vIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIm1vbm8iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX1JFQ09SRElOR19RVUFMSVRZDQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAiUXVhbGl0eSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX2h3Y29kZWM6ICJLdmFsaXTEgXRlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19od2NvZGVjOiAia3ZhbGl0YWF0ZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NZU0ZPTlRfUkVDT1JESU5HX0ZSRVFVRU5DWQ0KLSAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJGcmVxdWVuY3kiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkZyZWt2ZW5jZSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJmcmVrdmVuY2UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX1JFQ09SRElOR19TT1VSQ0UNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU291cmNlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJBdm90cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJhdm90cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NZU0ZPTlRfUkVDT1JESU5HX1NSQ19NSUMNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiSW50LiBNaWMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkllYi4gTWlrciINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJpZWJ1dXZlZXRhaXMgbWlrcm9mb25zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU1lTRk9OVF9MSU5FX0lODQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkxpbmUgSW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkxpbmXEgXLEgSBJZWVqYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJsaW5lYWFyYWEgaWVlamEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX1JFQ09SRElOR19TUkNfRElHSVRBTA0KLSAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJEaWdpdGFsIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJEaWdpdMSBbMSBIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImRpZ2l0YWFsYWEgaWVlamEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX0NIQU5ORUxTDQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkNoYW5uZWxzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJLYW7EgWxpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImthbmFhbGkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TWVNGT05UX1JFQ09SRF9UUklHR0VSDQotICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJUcmlnZ2VyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJQYWxhaWTEk2pzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogInBhbGFpZGVlanMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfT0YNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBhcyBpbiAzLzggPT4gMyBvZiA4DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5vIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExVR0lOX0dBTUVTDQotICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiR2FtZXMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU3DEk2xlcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInNwZWVsZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QTFVHSU5fQVBQUw0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkFwcGxpY2F0aW9ucyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQcm9ncmFtbWFzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicHJvZ3JhbW1hcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BMVUdJTl9ERU1PUw0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkRlbW9zIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkRlbW9uc3RyxIFjaWphcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImRlbW9uc3RyYWFjaWphcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lEM19HUk9VUElORw0KLSAgZGVzYzogaW4gdGFnIHZpZXdlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIldvcmsiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiRGFyYnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TSE9XX0ZJTEVOQU1FX0VYVA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNob3cgRmlsZW5hbWUgRXh0ZW5zaW9ucyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJSxIFkxKt0IFBhcGxhxaFpbsSBanVtdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJyYWFkaWl0IHBhcGxhc2hpbmFhanVtdXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19VTktOT1dOX1RZUEVTDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiT25seSBVbmtub3duIFR5cGVzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlRpa2FpIE5lemluxIFtaWVtIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidGlrYWkgbmV6aW5hYW1pZW0iDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19FWFRfT05MWV9WSUVXX0FMTA0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIk9ubHkgV2hlbiBWaWV3aW5nIEFsbCBUeXBlcyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJUaWthaSBTa2F0b3RpZXMgVmlzdXMgVmVpZHVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidGlrYWkgc2thdG90aWVzIHZpc3VzIHZlaWR1cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9QTV9VTklUU19QRVJfVElDSw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIHBlYWsgbWV0ZXIgcmVsZWFzZSB1bml0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInZpZW5paWJhcyB1eiBrbGlrc2hramkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfT0NMT0NLDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAicHVsa3N0ZW5pcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9QTQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciB3YWxsIGNsb2NrIGFubm91bmNlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogInBlZSBlbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9BTQ0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciB3YWxsIGNsb2NrIGFubm91bmNlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJ0YzogImFhIGVtIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX09IDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBydGM6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcnRjOiAiICINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BNX0NMSVBDT1VOVEVSDQotICBkZXNjOiBpbiBzZXR0aW5ncywgZm9yIHJlY29yZGluZyBwZWFrIG1ldGVyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkNsaXAgQ291bnRlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUMSBcmzEq21lxYZhIFNrYWl0xKt0xIFqcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJwYWFybGlpbWVuamEgc2thaXRpaXRhYWpzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VMRUNUT1JfU1RBUlRfQ09MT1INCi0gIGRlc2M6IGxpbmUgc2VsZWN0b3IgY29sb3Igb3B0aW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlByaW1hcnkgQ29sb3VyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJQcmltxIFyxIEgS3LEgXNhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogInByaW1hYXJhYSBrcmFhc2EiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRUxFQ1RPUl9FTkRfQ09MT1INCi0gIGRlc2M6IGxpbmUgc2VsZWN0b3IgY29sb3Igb3B0aW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlNlY29uZGFyeSBDb2xvdXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlNla3VuZMSBcsSBIEtyxIFzYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJzZWt1bmRhYXJhYSBrcmFhc2EiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRUxFQ1RPUl9URVhUX0NPTE9SDQotICBkZXNjOiBsaW5lIHNlbGVjdG9yIHRleHQgY29sb3Igb3B0aW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIlRleHQgQ29sb3VyIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJUZWtzdGEgS3LEgXNhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogInRla3N0YSBrcmFhc2EiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JTlZFUlRfQ1VSU09SX0NPTE9SDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIkJhciAoU29saWQgQ29sb3VyKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiSm9zbGEgKFZpZW5rcsSBc2FpbmEpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogInZpZW5rcmFhc2FpbmEgam9zbGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JTlZFUlRfQ1VSU09SX0dSQURJRU5UDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIkJhciAoR3JhZGllbnQgQ29sb3VyKSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAiSm9zbGEgKE1haW7Eq2dhcyBLcmFzYXMpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIm1haW5paWd1IGtyYWFzdSBqb3NsYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPREVQQUdFX0NFTlRSQUxfRVVST1BFQU4NCi0gIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNlbnRyYWwgRXVyb3BlYW4gKENQMTI1MCkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQ2VudHLEgWzEgXMgRWlyb3BhcyAoQ1AxMjUwKSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImNlbnRyYWFsYWFzIGVpcm9wYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19USEVNRV9NRU5VDQotICBkZXNjOiBpbiB0aGUgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlRoZW1lIFNldHRpbmdzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlTEk21hcyBVenN0xIFkxKtqdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidGVlbWFzIHV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT0xPUlNfTUVOVQ0KLSAgZGVzYzogY29sb3VycyBtZW51IHVuZGVyIHRoZW1lIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIkNvbG91cnMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIktyxIFzYXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2NvbG9yOiAia3JhYXNhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NFTEVDVE9SX0NPTE9SX01FTlUNCi0gIGRlc2M6IGxpbmUgc2VsZWN0b3IgY29sb3IgbWVudSB0aXRsZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfY29sb3I6ICJMaW5lIFNlbGVjdG9yIENvbG91cnMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIkl6dsSTbGVzIEpvc2xhcyBLcsSBc2FzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9jb2xvcjogIml6dmVlbGVzIGpvc2xhcyBrcmFhc2FzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0VESVQNCi0gIGRlc2M6IGtleWJvYXJkDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInJlZGlnamVldCINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9CTEFOSw0KLSAgZGVzYzoga2V5Ym9hcmQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidHVrc2hzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0VNUFRZX0xJU1QNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCB3aGVuIGEgbGlzdCBkaWFsb2cgY29udGFpbnMgbm8gZWxlbWVudHMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidHVrc2hzIHNhcmFrc3RzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTk9UX1BSRVNFTlQNCi0gIGRlc2M6IHdoZW4gZXh0ZXJuYWwgbWVtb3J5IGlzIG5vdCBwcmVzZW50DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAiTm90IHByZXNlbnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAiTmF2Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIG11bHRpdm9sdW1lOiAibmF2Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPiAgDQotICBpZDogTEFOR19UQUxLX0JBVFRFUllfTEVWRUwNCi0gIGRlc2M6IFNldHRpbmcgZm9yIHNwb250YW5lb3VzIGJhdHRlcnkgbGV2ZWwgYW5ub3VuY2VtZW50DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQW5ub3VuY2UgQmF0dGVyeSBMZXZlbCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJJenJ1bsSBdCBCYXRlcmlqYXMgTMSrbWVuaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6cnVuYWF0IGJhdGVyaWphcyBsaWltZW5pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVk9JQ0VfRklMRVRZUEUNCi0gIGRlc2M6IHZvaWNlIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTYXkgRmlsZSBUeXBlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6cnVuxIF0IEZhaWxhIFZlaWR1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpydW5hYXQgZmFpbGEgdmVpZHUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CQVNTX0NVVE9GRg0KLSAgZGVzYzogQmFzcyBzZXR0aW5nIGN1dC1vZmYgZnJlcXVlbmN5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGlwb2R2aWRlbyxpcG9kNmcsbXBpb2hkMjAwLG1waW9oZDMwMCxnaWdhYmVhdGZ4LG1yb2JlMTAwOiAiQmFzcyBDdXRvZmYiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGlwb2R2aWRlbyxpcG9kNmcsbXBpb2hkMjAwLG1waW9oZDMwMCxnaWdhYmVhdGZ4LG1yb2JlMTAwOiAiQmFzdSBSb2Jlxb5mcmVrdmVuY2UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgaXBvZHZpZGVvLGlwb2Q2ZyxtcGlvaGQyMDAsbXBpb2hkMzAwLGdpZ2FiZWF0ZngsbXJvYmUxMDA6ICJiYXN1IHJvYmV6aGZyZWt2ZW5jZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RSRUJMRV9DVVRPRkYNCi0gIGRlc2M6IFRyZWJsZSBzZXR0aW5nIGN1dC1vZmYgZnJlcXVlbmN5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGlwb2R2aWRlbyxpcG9kNmcsbXBpb2hkMjAwLG1waW9oZDMwMCxnaWdhYmVhdGZ4LG1yb2JlMTAwOiAiVHJlYmxlIEN1dG9mZiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgaXBvZHZpZGVvLGlwb2Q2ZyxtcGlvaGQyMDAsbXBpb2hkMzAwLGdpZ2FiZWF0ZngsbXJvYmUxMDA6ICJBRiBSb2Jlxb5mcmVrdmVuY2UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgaXBvZHZpZGVvLGlwb2Q2ZyxtcGlvaGQyMDAsbXBpb2hkMzAwLGdpZ2FiZWF0ZngsbXJvYmUxMDA6ICJhdWdzdG8gZnJla3ZlbmNodSByb2JlemhmcmVrdmVuY2UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19UQUdOQVZJX1JBTkRPTQ0KLSAgZGVzYzogIjxSYW5kb20+IiBlbnRyeSBpbiB0YWcgYnJvd3Nlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIjxSYW5kb20+Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIjxEYcW+xIFkaT4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJkYXpoYWFkaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NBVkVfU09VTkQNCi0gIGRlc2M6IHNhdmUgYSBzb3VuZCBjb25maWcgZmlsZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNhdmUgU291bmQgU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2FnbGFixIF0IFNrYcWGYXMgVXpzdMSBZMSranVtdXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJzYWdsYWJhYXQgc2thbmphcyB1enN0YWFkaWlqdW11cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0tFWUNMSUNLDQotICBkZXNjOiBpbiBrZXljbGljayBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJLZXljbGljayINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIktsaWvFocS3aXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImtsaWtzaGtqaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19LRVlDTElDS19SRVBFQVRTDQotICBkZXNjOiBpbiBrZXljbGljayBzZXR0aW5ncyBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJLZXljbGljayBSZXBlYXRzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiS2xpa8WhxLd1IEF0a8SBcnRvxaFhbmEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImtsaWtzaGtqdSBhdGthYXJ0b3NoYW5hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQUNDRVNTT1JZX1NVUFBMWQ0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgYWNjZXNzb3J5X3N1cHBseTogIkFjY2Vzc29yeSBQb3dlciBTdXBwbHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFjY2Vzc29yeV9zdXBwbHk6ICJBa3Nlc3XEgXJ1IEJhcm/FoWFuYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhY2Nlc3Nvcnlfc3VwcGx5OiAiYWtzZXN1YWFydSBiYXJvc2hhbmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19VTktOT1dODQotICBkZXNjOiBnZW5lcmljIHN0cmluZyBmb3IgdW5rbm93biBzdGF0ZXMsIHN1Y2ggYXMgYW4gdW5zZXQgY2xvY2sNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJVbmtub3duIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIk5lemluxIFtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5lemluYWFtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9RVUlDS1NDUkVFTg0KLSAgZGVzYzogc3Bva2VuIG9ubHksIEFubm91bmNlcyBlbnRlcmluZyB0aGUgInF1aWNrIHNjcmVlbiINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYWF0cmFpcyBla3JhYW5zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX09LDQotICBkZXNjOiBzcG9rZW4gb25seSwgT24gZXhpdGluZyBhIGNvbnRleHQsIHNwZWNpZmljYWxseSB0aGUgcXVpY2sgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImxhYmkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVE9QX1JFQ09SRElOR19BTkRfU0hVVERPV04NCi0gIGRlc2M6IGluIHJlY29yZCB0aW1lc3BsaXQgb3B0aW9ucw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTdG9wIFJlY29yZGluZyBBbmQgU2h1dGRvd24iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkJlaWd0IEllcmFrc3R1IFVuIEl6c2zEk2d0aWVzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogImJlaWd0IGllcmFrc3R1IHVuIGl6c2xlZWd0aWVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hQQURfU0VOU0lUSVZJVFkNCi0gIGRlc2M6IHRvdWNocGFkIHNlbnNpdGl2aXR5IHNldHRpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRmeDogIlRvdWNocGFkIFNlbnNpdGl2aXR5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdGZ4OiAiU2vEgXJpZW52aXJzbWFzIErFq3TEq2JhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0Zng6ICJza2FhcmllbnZpcnNtYXMganV1dGlpYmEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ISUdIDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0Zng6ICJIaWdoIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdGZ4OiAiQXVnc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0Zng6ICJhdWdzdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVJJQUxfQklUUkFURQ0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICJTZXJpYWwgQml0cmF0ZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiU2VyacSBbGFpcyBCaXRyZWl0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4gDQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICJzZXJpYWFsYWlzIGJpdHJlaXRzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VSSUFMX0JJVFJBVEVfQVVUTw0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICJBdXRvIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4gDQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICJBdXRvbcSBdGlza2kiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiYXV0b21hYXRpc2tpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VSSUFMX0JJVFJBVEVfOTYwMA0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICI5NjAwIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4gDQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICI5NjAwIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPiANCi0gICAgKjogbm9uZQ0KLSAgICBzZXJpYWxfcG9ydDogIjk2MDAiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVJJQUxfQklUUkFURV8xOTIwMA0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICIxOTIwMCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiMTkyMDAiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiMTkyMDAiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVJJQUxfQklUUkFURV8zODQwMA0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICIzODQwMCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiMzg0MDAiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiMzg0MDAiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVJJQUxfQklUUkFURV81NzYwMA0KLSAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc2VyaWFsX3BvcnQ6ICI1NzYwMCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiNTc2MDAiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+IA0KLSAgICAqOiBub25lDQotICAgIHNlcmlhbF9wb3J0OiAiNTc2MDAiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19WRVJZX1NMT1cNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJWZXJ5IHNsb3ciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAixLtvdGkgTMSTbnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJsam90aSBsZWVucyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NMT1cNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTbG93Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkzEk25zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibGVlbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19WRVJZX0ZBU1QNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJWZXJ5IGZhc3QiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAixLtvdGkgxIB0cnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJsam90aSBhYXRycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZBU1QNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGYXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsSAdHJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYWF0cnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TS0lQX0xFTkdUSA0KLSAgZGVzYzogcGxheWJhY2sgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNraXAgTGVuZ3RoIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkl6bGFpxaFhbmFzIEdhcnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6bGFpc2hhbmFzIGdhcnVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NLSVBfVFJBQ0sNCi0gIGRlc2M6IHNraXAgbGVuZ3RoIHNldHRpbmcgZW50cnkgMA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNraXAgVHJhY2siDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXpsYWlzdCBEemllc211Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiaXpsYWlzdCBkemllc211Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IFZPSUNFX0NIQVJfU0xBU0gNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAic2xpaXBzdmlpdHJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfR0FJTl9MRUZUDQotICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJHYWluIEwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIktyZWlzYWlzIEthbsSBbHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAia3JlaXNhYSBrYW5hYWxhIHBhc3RpcHJpbmFhanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0dBSU5fUklHSFQNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkdhaW4gUiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiTGFiYWlzIEthbsSBbHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAibGFiYWEga2FuYWFsYSBwYXN0aXByaW5hYWp1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRJTkdfQUdDX1BSRVNFVA0KLSAgZGVzYzogYXV0b21hdGljIGdhaW4gY29udHJvbCBpbiByZWNvcmQgc2V0dGluZ3MgYW5kIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJBR0MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkFQUiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBhZ2M6ICJhdXRvbWFhdGlza2EgcGFzdGlwcmluYWFqdW1hIHJlZ3VsYWFjaWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JESU5HX0FHQ19DTElQVElNRQ0KLSAgZGVzYzogaW4gcmVjb3JkIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkFHQyBjbGlwIHRpbWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkFQUiDEgXRydW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogImF1dG9tYWF0aXNrYWFzIHBhc3RpcHJpbmFhanVtYSByZWd1bGFhY2lqYXMgYWF0cnVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19BR0NfTUFYR0FJTg0KLSAgZGVzYzogQUdDIG1heGltdW0gZ2FpbiBpbiByZWNvcmRpbmcgc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkFHQyBtYXguIGdhaW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGFnYzogIkFQUiBtYWtzLnNrYcS8dW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGFnYzogImF1dG9tYWF0aXNrYWFzIHBhc3RpcHJpbmFhanVtYSByZWd1bGFhY2lqYXMgbWFrc2ltYWFsYWlzIHNrYWxqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVDT1JESU5HX0ZJTEVOQU1FDQotICBkZXNjOiBGaWxlbmFtZSBoZWFkZXIgaW4gcmVjb3JkaW5nIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJGaWxlbmFtZToiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkZhaWxhIG5vc2F1a3VtczoiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUE1fQ0xJUENPVU5UDQotICBkZXNjOiBpbiByZWNvcmRpbmcgR1VJLCBmb3IgcmVjb3JkaW5nIHBlYWsgbWV0ZXIuIE1BWCA1IGNoYXJhY3RlcnMhDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkNMSVA6Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJQxIBSU046Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19USU1FU1BMSVRfUkVDDQotICBkZXNjOiBEaXNwbGF5IG9mIHJlY29yZCB0aW1lciBpbnRlcnZhbCBzZXR0aW5nLCBvbiB0aGUgcmVjb3JkIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICJTcGxpdCBUaW1lOiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiUMSBcnRyYXVrdW1hIExhaWtzOiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmc6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRUNPUkRJTkdfU0laRQ0KLSAgZGVzYzogRGlzcGxheSBvZiByZWNvcmRlZCBmaWxlIHNpemUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nOiAiU2l6ZToiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIkl6bcSTcnM6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZzogIiINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFQ09SRElOR19NT05PX01PREUNCi0gIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJNb25vIG1vZGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlY29yZGluZ19zd2NvZGVjOiAiTW9ubyByZcW+xKttcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZWNvcmRpbmdfc3djb2RlYzogIm1vbm8gcmV6aGlpbXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRUFSQ0hfUkVTVUxUUw0KLSAgZGVzYzogdGl0bGUgZm9yIHRoZSBsaXN0IG9mIHJlc3VsdHMgZGlzcGxheWVkIGFmdGVyIHNlYXJjaGluZyBpbiBhIHBsYXlsaXN0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2VhcmNoIFJlc3VsdHMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTWVrbMSTxaFhbmFzIFJlenVsdMSBdGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJtZWtsZWVzaGFuYXMgcmV6dWx0YWF0aSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0xFRlQNCi0gIGRlc2M6IEdlbmVyaWMgdXNlIG9mICdsZWZ0Jw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkxlZnQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUGEgS3JlaXNpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGEga3JlaXNpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUklHSFQNCi0gIGRlc2M6IEdlbmVyaWMgdXNlIG9mICdyaWdodCcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSaWdodCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQYSBMYWJpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAicGEgbGFiaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFU0VUX1NFVFRJTkcNCi0gIGRlc2M6IHVzZWQgaW4gdGhlIHNldHRpbmdzIGNvbnRleHQgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlJlc2V0IFNldHRpbmciDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXRqYXVub3QgVXpzdMSBZMSranVtdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0amF1bm90IHV6c3RhYWRpaWp1bXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MRUZUX1FTX0lURU0NCi0gIGRlc2M6IHVzZWQgZm9yIHRoZSBzdWJtZW51IG5hbWUgZm9yIHRoZSBxdWlja3NjcmVlbiBpdGVtcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBxdWlja3NjcmVlbjogIlNldCBhcyBMZWZ0IFF1aWNrc2NyZWVuIEl0ZW0iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHF1aWNrc2NyZWVuOiAiVXpsaWt0IEvEgSBLci7EgHRybyBVenN0xIFkxKtqdW11Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHF1aWNrc2NyZWVuOiAidXpsaWt0IGthYSBrcmVpc28gYWF0cm8gdXpzdGFhZGlpanVtdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JJR0hUX1FTX0lURU0NCi0gIGRlc2M6IHVzZWQgZm9yIHRoZSBzdWJtZW51IG5hbWUgZm9yIHRoZSBxdWlja3NjcmVlbiBpdGVtcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBxdWlja3NjcmVlbjogIlNldCBhcyBSaWdodCBRdWlja3NjcmVlbiBJdGVtIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBxdWlja3NjcmVlbjogIlV6bGlrdCBLxIEgTC7EgHRybyBVenN0xIFkxKtqdW11Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHF1aWNrc2NyZWVuOiAidXpsaWtsdCBrYWEgbGFibyBhYXRybyB1enN0YWFkaWlqdW11Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQk9UVE9NX1FTX0lURU0NCi0gIGRlc2M6IHVzZWQgZm9yIHRoZSBzdWJtZW51IG5hbWUgZm9yIHRoZSBxdWlja3NjcmVlbiBpdGVtcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBxdWlja3NjcmVlbjogIlNldCBhcyBCb3R0b20gUXVpY2tzY3JlZW4gSXRlbSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcXVpY2tzY3JlZW46ICJVemxpa3QgS8SBIEFwLsSAdHJvIFV6c3TEgWTEq2p1bXUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcXVpY2tzY3JlZW46ICJ1emxpa3Qga2FhIGFwYWtzaGVlam8gYWF0cm8gdXpzdGFhZGlpanVtdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NSRURJVFMNCi0gIGRlc2M6IGluIHRoZSBNYWluIE1lbnUgLT4gU3lzdGVtIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkNyZWRpdHMiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUGF0ZWljxKtiYXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYXRlaWNpaWJhcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NPUlRfSU5URVJQUkVUX05VTUJFUlMNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEZpbGUgdmlldw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkludGVycHJldCBudW1iZXJzIHdoZW4gc29ydGluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOdW11cnUgSW50ZXJwcmV0xIFjaWphIEvEgXJ0b2pvdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm51bXVydSBpbnRlcnByZXRhYWNpamEga2FhcnRvam90Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU09SVF9JTlRFUlBSRVRfQVNfRElHSVQNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEZpbGUgdmlldw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIkFzIGRpZ2l0cyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLxIEgY2lwYXJ1cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImthYSBjaXBhcnVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU09SVF9JTlRFUlBSRVRfQVNfTlVNQkVSUw0KLSAgZGVzYzogaW4gU2V0dGluZ3MgLT4gRmlsZSB2aWV3DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQXMgd2hvbGUgbnVtYmVycyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLxIEgbnVtdXJ1cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImthYSBudW11cnVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRU5BQkxFX1NQRUFLRVINCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IFNvdW5kIFNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHNwZWFrZXI6ICJFbmFibGUgU3BlYWtlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3BlYWtlcjogIkllc2zEk2d0IFNrYcS8cnVuaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzcGVha2VyOiAiaWVzbGVlZ3Qgc2thbGpydW5pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fTU9ERQ0KLSAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IFRvdWNoc2NyZWVuIFNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiVG91Y2hzY3JlZW4gTW9kZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgdG91Y2hzY3JlZW46ICJTa8SBcmllbmrFq3TEq2dhaXMgRWtyxIFucyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogInNrYWFyaWVuanV1dGlpZ2FpcyBla3JhYW5zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fR1JJRA0KLSAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IFRvdWNoc2NyZWVuIFNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiM3gzIEdyaWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiM3gzIFTEq2tscyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogInRyaWlzIHJlaXogdHJpaXMgdGlpa2xzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fUE9JTlQNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSAtPiBUb3VjaHNjcmVlbiBTZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIkFic29sdXRlIFBvaW50Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIkFic29sxat0YWlzIFB1bmt0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogImFic29sdXV0YWlzIHB1bmt0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BSRVZFTlRfU0tJUFBJTkcNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IFBsYXliYWNrIFNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiUHJldmVudCBUcmFjayBTa2lwcGluZyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJOb3bEk3JzdCBEemllc211IEl6bGFpxaFhbnUiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJub3ZlZXJzdCBkemllc211IGl6bGFpc2hhbnUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19USU1FU1RSRVRDSA0KLSAgZGVzYzogdGltZXN0cmV0Y2ggZW5hYmxlDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJUaW1lc3RyZXRjaCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIsSAdHJ1bWEgTWFpxYZhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJhYXRydW1hIG1haW5qYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NQRUVEDQotICBkZXNjOiB0aW1lc3RyZXRjaCBzcGVlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU3BlZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICLEgHRydW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJhYXRydW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fU0VUVElOR1MNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiVG91Y2hzY3JlZW4gU2V0dGluZ3MiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiU2suRWtyxIFuYSBVenN0xIFkxKtqdW1pIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAic2thYXJpZW5qdXV0aWlnYWEgZWtyYWFuYSB1enN0YWFkaWlqdW1pIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fQ0FMSUJSQVRFDQotICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gVG91Y2hzY3JlZW4gU2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdG91Y2hzY3JlZW46ICJDYWxpYnJhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiS2FsaWJyxJN0Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAia2FsaWJyZWV0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fUkVTRVRfQ0FMSUJSQVRJT04NCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSAtPiBUb3VjaHNjcmVlbiBTZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIlJlc2V0IENhbGlicmF0aW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIkl6ZHrEk3N0IEthbGlicsSBY2lqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIml6ZHplZXN0IGthbGlicmFhY2lqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NUQVRVU0JBUl9UT1ANCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSAtPiBzdGF0dXNiYXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJUb3AiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXVnxaHEgSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF1Z3NoYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVEFUVVNCQVJfQk9UVE9NDQotICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gc3RhdHVzYmFyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiQm90dG9tIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkFwYWvFocSBIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXBha3NoYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRU1PVEVfU1RBVFVTQkFSDQotICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gc3RhdHVzYmFyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIlJlbW90ZSBTdGF0dXNiYXIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogIlB1bHRzIFN0YXR1c2Fqb3NsYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJwdWx0cyBzdGF0dXNhIGpvc2xhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0VNSVRPTkUNCi0gIGRlc2M6IA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIlNlbWl0b25lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIlB1c3RvbmlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHBpdGNoc2NyZWVuOiAicHVzdG9uaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TVFJFVENIX0xJTUlUDQotICBkZXNjOiAibGltaXQiIGluIHBpdGNoIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIkxpbWl0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIkllcm9iZcW+b2p1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcGl0Y2hzY3JlZW46ICJpZXJvYmV6aG9qdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUExBWUJBQ0tfUkFURQ0KLSAgZGVzYzogInJhdGUiIGluIHBpdGNoIHNjcmVlbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogIlJhdGUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHBpdGNoc2NyZWVuOiAixIB0cnVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBwaXRjaHNjcmVlbjogImFhdHJ1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19VU0JfS0VZUEFEX01PREUNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2hpZDogIlVTQiBLZXlwYWQgTW9kZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2hpZDogIlVTQiBLbGF2aWF0xatyYXMgUmXFvsSrbXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2hpZDogInV1ZXNiZWUga2xhdmlhdHV1cmFzIHJlemhpaW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTVVMVElNRURJQV9NT0RFDQotICBkZXNjOiBpbiBzZXR0aW5nc19tZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJNdWx0aW1lZGlhIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAiTXVsdGltxJNkaWp1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJtdWx0aW1lZWRpanUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19QUkVTRU5UQVRJT05fTU9ERQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAiUHJlc2VudGF0aW9uIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAiUHJlemVudMSBY2lqdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAicHJlemVudGFhY2lqdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0JST1dTRVJfTU9ERQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAiQnJvd3NlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2hpZDogIlDEgXJsxatrcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAicGFhcmx1dWthIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9VU0VfTU9ERQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB1c2JfaGlkOiAiTW91c2UiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJQZWxlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJwZWxlIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0tJTl9SQU1fVVNBR0UNCi0gIGRlc2M6IGhvdyBtdWNoIFJBTSB0aGUgc2tpbnMgYXJlIHVzaW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2tpbiBSQU0gdXNhZ2U6Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsSAZGFzIFJBTSBpemwuOiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImFhZGFzIHJhbSBpemxpZXRvanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NDUk9MTEJBUl9XSURUSA0KLSAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IFN0YXR1cy0vU2Nyb2xsYmFyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJTY3JvbGwgQmFyIFdpZHRoIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiUnVsbGpvc2xhcyBQbGF0dW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJydWxsam9zbGFzIHBsYXR1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TQ1JPTExCQVJfUE9TSVRJT04NCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSAtPiBTdGF0dXMtL1Njcm9sbGJhcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiU2Nyb2xsIEJhciBQb3NpdGlvbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlJ1bGxqb3NsYXMgUG96xKtjaWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJydWxsam9zbGFzIHBvemlpY2lqYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPTVBSRVNTT1INCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJDb21wcmVzc29yIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiS29tcHJlc29ycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAia29tcHJlc29ycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RPUF9RU19JVEVNDQotICBkZXNjOiB1c2VkIGZvciB0aGUgc3VibWVudSBuYW1lIGZvciB0aGUgcXVpY2tzY3JlZW4gaXRlbXMNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcXVpY2tzY3JlZW46ICJTZXQgYXMgVG9wIFF1aWNrc2NyZWVuIEl0ZW0iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHF1aWNrc2NyZWVuOiAiVXpsaWt0IEvEgSBBdWcuxIB0cm8gVXpzdMSBZMSranVtdSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBxdWlja3NjcmVlbjogInV6bGlrdCBrYWEgYXVnc2hlZWpvIGFhdHJvIHV6c3RhYWRpaWp1bXUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9JVEFMWQ0KLSAgZGVzYzogZm0gcmVnaW9uIEl0YWx5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSXRhbHkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiSXTEgWxpamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJpdGFhbGlqYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0ZNX09USEVSDQotICBkZXNjOiBDYXRjaC1hbGwgRk0gcmVnaW9uLiBTZWxlY3QgaWYgbm9uZSBvZiB0aGUgb3RoZXJzIHdvcmsNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJPdGhlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJDaXRzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiY2l0cyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPTVBSRVNTT1JfVEhSRVNIT0xEDQotICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiVGhyZXNob2xkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU2xpZWtzbmlzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJzbGlla3NuaXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT01QUkVTU09SX1JBVElPDQotICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUmF0aW8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJBdHRpZWPEq2JhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJhdHRpZWNpaWJhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SQVRJT18yDQotICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiMjoxIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiMjoxIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJkaXZpIHByZXQgdmllbnUiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT01QUkVTU09SX1JBVElPXzQNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICI0OjEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICI0OjEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImNoZXRyaSBwcmV0IHZpZW51Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SQVRJT182DQotICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiNjoxIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiNjoxIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJzZXNoaSBwcmV0IHZpZW51Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SQVRJT18xMA0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIjEwOjEiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICIxMDoxIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJkZXNtaXQgcHJldCB2aWVudSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPTVBSRVNTT1JfUkFUSU9fTElNSVQNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJMaW1pdCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkllcm9iZcW+b2p1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImllcm9iZXpob2p1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT01QUkVTU09SX0dBSU4NCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJNYWtldXAgR2FpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkJlaWd1IFBhc3RpcHJpbsSBanVtcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiYmVpZ3UgcGFzdGlwcmluYWFqdW1zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQVVUTw0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkF1dG8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJBdXRvbcSBdGlza3MiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogImF1dG9tYWF0aXNrcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0NPTVBSRVNTT1JfS05FRQ0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIktuZWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJQxIFyZWphIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJwYWFyZWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09NUFJFU1NPUl9IQVJEX0tORUUNCi0gIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJIYXJkIEtuZWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJBc2EgUMSBcmVqYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiYXNhIHBhYXJlamEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19DT01QUkVTU09SX1NPRlRfS05FRQ0KLSAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIlNvZnQgS25lZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgc3djb2RlYzogIkl6bMSrZHppbsSBdGEgUMSBcmVqYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiaXpsaWlkemluYWF0YSBwYWFyZWphIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SRUxFQVNFDQotICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUmVsZWFzZSBUaW1lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiU2FtYXppbsSBxaFhbmFzIExhaWtzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJzYW1hemluYWFzaGFuYXMgbGFpa3MiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TS0lQX09VVFJPDQotICBkZXNjOiBza2lwcGluZyB0byB0aGUgNSBzZWNvbmRzIGJlZm9yZSB0aGUgZW5kIG9mIGEgdHJhY2sNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJTa2lwIHRvIE91dHJvIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEgXJzbMSTZ3QgVXogQmVpZ8SBbSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBhYXJzbGVlZ3QgdXogYmVpZ2FhbSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NUQVRVU0JBUl9DVVNUT00NCi0gIGRlc2M6IGlmIHRoaXMgdHJhbnNsYXRpb24gaXMgY29tcGF0aWJsZSB3aXRoIExBTkdfQ0hBTk5FTF9DVVNUT00sIHRoZW4gcGxlYXNlIHVzZSB0aGUgc2FtZSB0cmFuc2xhdGlvbi4gaXQgY2FuIGJlIGNvbWJpbmVkIGxhdGVyIHRoZW4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDdXN0b20iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTmVzdGFuZGFydGEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuZXN0YW5kYXJ0YSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfU0JTDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInN0YXR1c2Egam9zbGFzIGFhZGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogVk9JQ0VfRVhUX1JTQlMNCi0gIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAicHVsdHMgc3RhdHVzYSBqb3NsYXMgYWFkYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1VTQl9ISUQNCi0gIGRlc2M6IGluIHNldHRpbmdzX21lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdXNiX2hpZDogIlVTQiBISUQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJVU0IgSWV2YWRlcyBJZXLEq2NlIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHVzYl9oaWQ6ICJ1dWVzYmVlIGlldmFkZXMgaWVyaWljZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0lOU0VSVF9MQVNUX1NIVUZGTEVEDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIGluc2VydCBhIHBsYXlsaXN0IHJhbmRvbWx5IGF0IGVuZCBvZiBkeW5hbWljIHBsYXlsaXN0DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiSW5zZXJ0IExhc3QgU2h1ZmZsZWQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSWV2aWV0b3QgU2FqYXVrdGkgQmVpZ8SBcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImlldmlldG90IHNhamF1a3RpIGJlaWdhYXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19RVUVVRV9MQVNUX1NIVUZGTEVEDQotICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIHF1ZXVlIGEgcGxheWxpc3QgcmFuZG9tbHkgYXQgZW5kIG9mIGR5bmFtaWMgcGxheWxpc3QNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJRdWV1ZSBMYXN0IFNodWZmbGVkIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkllbGlrdCBTYWphdWt0aSBSaW5kxIEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJpZWxpa3Qgc2FqYXVrdGkgcmluZGFhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTU9SU0VfSU5QVVQNCi0gIGRlc2M6IGluIFNldHRpbmdzIC0+IFN5c3RlbQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtb3JzZV9pbnB1dDogIlVzZSBNb3JzZSBDb2RlIElucHV0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBtb3JzZV9pbnB1dDogIkl6bWFudG90IE1vcnplcyBJZXZhZGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbW9yc2VfaW5wdXQ6ICJpem1hbnRvdCBtb3J6ZXMgaWV2YWRpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQVVUT1RSQUNLU0tJUA0KLSAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGNyb3NzZmFkZTogIkF1dG9tYXRpYyBUcmFjayBDaGFuZ2UgT25seSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgY3Jvc3NmYWRlOiAiVGlrYWkgQXV0b23EgXRpc2tpIFDEgXJzbMSTZHpvdGllcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBjcm9zc2ZhZGU6ICJ0aWthaSBhdXRvbWFhdGlza2kgcGFhcnNsZWVkem90aWVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTkVYVF9UUkFDSw0KLSAgZGVzYzogU2hvd24gaW4gV1BTDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTmV4dCBUcmFjazoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTsSBa2FtxIEgRHppZXNtYToiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuYWFrYW1hYSBkemllc21hIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfTkVYVA0KLSAgZGVzYzogU2hvd24gaW4gV1BTIChzaG9ydCBmb3JtIG9mIE5leHQgVHJhY2spDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiTmV4dDoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiTsSBa2FtxIE6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAibmFha2FtYWEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19PRg0KLSAgZGVzYzogU2hvd24gaW4gV1BTOiBYIG9mIFkgKHRyYWNrcykNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJvZiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJubyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIm5vIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQkFTRV9TS0lODQotICBkZXNjOiBicm93c2UgZm9yIHRoZSBiYXNlIHNraW4gaW4gdGhlbWUgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIkJhc2UgU2tpbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgbGNkX2JpdG1hcDogIlBhbWF0xIFkYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAicGFtYXRhYWRhIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVNT1RFX0JBU0VfU0tJTg0KLSAgZGVzYzogYnJvd3NlIGZvciB0aGUgYmFzZSBza2luIGluIHRoZW1lIHNldHRpbmdzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJSZW1vdGUgQmFzZSBTa2luIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBsY2RfYml0bWFwOiAiUHVsdHMgUGFtYXTEgWRhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGxjZF9iaXRtYXA6ICJwdWx0cyBwYW1hdGFhZGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19NQUlOX1NDUkVFTg0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJNYWluIFNjcmVlbiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgcmVtb3RlOiAiSWVyxKtjZXMgRWtyxIFucyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJpZXJpaWNlcyBla3JhYW5zIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVNT1RFX1NDUkVFTg0KLSAgZGVzYzogaW4gdGhlIG1haW4gbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJSZW1vdGUgU2NyZWVuIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByZW1vdGU6ICJQdWx0cyBFa3LEgW5zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJlbW90ZTogInB1bHRzIGVrcmFhbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19MSU5FT1VUX09OT0ZGDQotICBkZXNjOiBpbiBzeXN0ZW0gc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBsaW5lb3V0X3Bvd2Vyb2ZmOiAiTGluZSBPdXQiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGxpbmVvdXRfcG93ZXJvZmY6ICJMaW5lxIFyxIEgSXplamEiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgbGluZW91dF9wb3dlcm9mZjogImxpbmVhYXJhYSBpemVqYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hPVEtFWQ0KLSAgZGVzYzogaG90a2V5IG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgaG90a2V5OiAiSG90a2V5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBob3RrZXk6ICJLYXJzdGllIFRhdXN0acWGaSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBob3RrZXk6ICJrYXJzdGllIHRhdXN0aW5qaSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hPVEtFWV9XUFMNCi0gIGRlc2M6IGhvdGtleSBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGhvdGtleTogIldQUyBIb3RrZXkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGhvdGtleTogIkF0c2thxYYuIExvZ2EgVGF1c3RpxYbFoSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBob3RrZXk6ICJhdHNrYW5qb3NoYW5hcyBsb2dhIHRhdXN0aW5qc2giDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IT1RLRVlfRklMRV9CUk9XU0VSDQotICBkZXNjOiBob3RrZXkgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBob3RrZXk6ICJGaWxlIEJyb3dzZXIgSG90a2V5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBob3RrZXk6ICJGYWx1IFDEgXJsxatrYSBUYXVzdGnFhsWhIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGhvdGtleTogImZhaWx1IHBhYXJsdXVrYSB0YXVzdGluanNoIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfUkVTVU1FX1JFV0lORA0KLSAgZGVzYzogaW4gcGxheWJhY2sgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiUmV3aW5kIEJlZm9yZSBSZXN1bWUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHN3Y29kZWM6ICJBdHTEq3QgUGlybXMgQXRzxIFrdCINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICBzd2NvZGVjOiAiYXR0aWl0IHBpcm1zIGF0c2Fha3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SRU1PVEVfUkFESU9TQ1JFRU4NCi0gIGRlc2M6IGluIHRoZSB0aGVtZSBtZW51DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3JlbW90ZTogIlJlbW90ZSBSYWRpbyBTY3JlZW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3JlbW90ZTogIlB1bHRzIFJhZGlvIEVrcsSBbnMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW9fcmVtb3RlOiAicHVsdHMgcmFkaW8gZWtyYWFucyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfRk1TDQotICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogInJhZGlvIGVrcmFhbmEgYWFkYSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBWT0lDRV9FWFRfUkZNUw0KLSAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19yZW1vdGU6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvX3JlbW90ZTogIiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpb19yZW1vdGU6ICJwdWx0cyByYWRpbyBla3JhYW5hIGFhZGEiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GTV9TVEFUSU9OX0hFQURFUg0KLSAgZGVzYzogaW4gcmFkaW8gc2NyZWVuDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU3RhdGlvbjoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU3RhY2lqYToiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IV19FUV9UT05FX0NPTlRST0xTDQotICBkZXNjOiBpbiBzb3VuZF9tZW51LCBoYXJkd2FyZSBlcXVhbGl6ZXIgdG9uZSBjb250cm9scw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdHM6ICJUb25lIENvbnRyb2xzIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdHM6ICJUb8WGYSBLb250cm9sZXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAidG9uamEga29udHJvbGVzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSFdfRVFfVE9ORV9DT05UUk9MU19BRFZBTkNFRA0KLSAgZGVzYzogaW4gc291bmRfbWVudSwgYWR2YW5jZWQgc2V0dGluZ3MgZm9yIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0czogIkFkdmFuY2VkIFRvbmUgQ29udHJvbCBTZXR0aW5ncyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiUGFwaWxkdXMgVG/FhmEgS29udHJvbGVzIFV6c3TEgWTEq2p1bWkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAicGFwaWxkdXMgdG9uamEga29udHJvbGVzIHV6c3RhYWRpaWp1bWkiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IV19FUV9HQUlODQotICBkZXNjOiBpbiBzb3VuZF9tZW51LCBoYXJkd2FyZSBlcXVhbGl6ZXIgdG9uZSBjb250cm9scyBmaWx0ZXIgZ2Fpbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdHM6ICJCYW5kICVkIEdhaW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0czogIkpvc2xhcyAlZCBQYXN0aXByaW7EgWp1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiam9zbGFzICVkIHBhc3RpcHJpbmFhanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hXX0VRX0ZSRVFVRU5DWQ0KLSAgZGVzYzogaW4gc291bmRfbWVudSwgaGFyZHdhcmUgZXF1YWxpemVyIHRvbmUgY29udHJvbHMgc2hlbGYgZmlsdGVyIGN1dG9mZiBmcmVxdWVuY3kNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiQmFuZCAlZCBGcmVxdWVuY3kiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0czogIkpvc2xhcyAlZCBGcmVrdmVuY2UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiam9zbGFzICVkIGZyZWt2ZW5jZSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hXX0VRX1dJRFRIDQotICBkZXNjOiBpbiBzb3VuZF9tZW51LCBoYXJkd2FyZSBlcXVhbGl6ZXIgdG9uZSBjb250cm9scyBwZWFrIGJhbmR3aXRoIHNldHRpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiQmFuZCAlZCBXaWR0aCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiSm9zbGFzICVkIFBsYXR1bXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiam9zbGFzICVkIHBsYXR1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19IV19FUV9XSURUSF9OQVJST1cNCi0gIGRlc2M6IGluIHNvdW5kX21lbnUsIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzIG5hcnJvdyBiYW5kd2l0aCBzZXR0aW5nDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0czogIk5hcnJvdyINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAixaBhdXJzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0czogInNoYXVycyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX0hXX0VRX1dJRFRIX1dJREUNCi0gIGRlc2M6IGluIHNvdW5kX21lbnUsIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzIHdpZGUgYmFuZHdpZHRoIHNldHRpbmcNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiV2lkZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAiUGxhdHMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzOiAicGxhdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19ERVBUSF8zRA0KLSAgZGVzYzogaW4gc291bmRfbWVudSwgYW1vdW50IG9mIDNEIGVuaGFuY2VtZW50IGVmZmVjdA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBnaWdhYmVhdHMsbXBpb2hkMjAwLG1waW9oZDMwMDogIjMtRCBFbmhhbmNlbWVudCINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6IG5vbmUNCi0gICAgZ2lnYWJlYXRzLG1waW9oZDIwMCxtcGlvaGQzMDA6ICIzLUQgUGFwbGHFoWluxIFqdW1zIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGdpZ2FiZWF0cyxtcGlvaGQyMDAsbXBpb2hkMzAwOiAidHJpaXMgZGltZW5zaWp1IHBhcGxhc2hpbmFhanVtcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1RBR05BVklfVU5UQUdHRUQNCi0gIGRlc2M6ICI8dW50YWdnZWQ+IiBlbnRyeSBpbiB0YWcgYnJvd3Nlcg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIjxVbnRhZ2dlZD4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiPE5lYXR6xKttxJN0cz4iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJuZWF0emlpbWVldHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19SQURJT1NDUkVFTg0KLSAgZGVzYzogaW4gdGhlIHRoZW1lIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgcmFkaW86ICJSYWRpbyBTY3JlZW4iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiUmFkaW8gRWtyxIFucyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogImVhZGlvIGVrcmFhbnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19JRDNfQ09NUE9TRVINCi0gIGRlc2M6IGluIHRhZyB2aWV3ZXINCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDb21wb3NlciINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJLb21wb25pc3RzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk9SQ0UNCi0gIGRlc2M6IGFsdGVybmF0aXZlIHRvIHllcy9ubyBmb3IgdHJpc3RhdGUgc2V0dGluZ3MNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJGb3JjZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJQaWVzcGllc3QiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwaWVzcGllc3QiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19PTlBMQVlfUElDVFVSRUZMT1cNCi0gIGRlc2M6IE9ucGxheSBwaWN0dXJlZmxvdw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlBpY3R1cmVGbG93Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0dMSTbHUgUGzFq3NtYSINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0dmVlcnQgYXR0ZWVsdSBwbHV1c211Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfS0JEX09LDQotICBkZXNjOiBpbiBrZXlib2FyZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIk9LIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIkxhYmkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6IG5vbmUNCi0gICAgdG91Y2hzY3JlZW46ICJsYWJpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfS0JEX0RFTEVURQ0KLSAgZGVzYzogaW4ga2V5Ym9hcmQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdG91Y2hzY3JlZW46ICJEZWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiSXpkeiINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogIml6ZHplZXN0Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfS0JEX0NBTkNFTA0KLSAgZGVzYzogaW4ga2V5Ym9hcmQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6IG5vbmUNCi0gICAgdG91Y2hzY3JlZW46ICJDYW5jZWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHRvdWNoc2NyZWVuOiAiQXR0ZWlrdGllcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogbm9uZQ0KLSAgICB0b3VjaHNjcmVlbjogImF0dGVpa3RpZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19BVVRPVVBEQVRFDQotICBkZXNjOiBwcm9tcHQgZm9yIHVzZXIgdG8gZGVjaWRlIHdoZXRoZXIgdG8gdXBkYXRlIGJvb2ttYXJrcw0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlVwZGF0ZSBvbiBTdG9wIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0amF1bm90IEFwc3TEgWpvdGllcyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogImF0amF1bm90IGFwc3RhYWpvdGllcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1NFVF9BU19TVEFSVF9ESVINCi0gIGRlc2M6IHVzZWQgaW4gdGhlIG9ucGxheSBtZW51IHRvIHNldCBhIHN0YXJ0aW5nIGJyb3dzZXIgZGlyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU3RhcnQgRmlsZSBCcm93c2VyIEhlcmUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUGFsYWlzdCDFoGVpdCBGYWlsdSBQxIFybMWra3UiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWxhaXN0IHNoZWl0IGZhaWx1IHBhYXJsdXVrdSINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFU0VUX1NUQVJUX0RJUg0KLSAgZGVzYzogcmVzZXQgdGhlIGJyb3dzZXIgc3RhcnQgZGlyZWN0b3J5DQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU3RhcnQgRmlsZSBCcm93c2VyIGF0IC8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiUMSBcnN0YXTEq3QgRmFpbHUgUMSBcmzFq2t1IHV6IC8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWFyc3RhdGlpdCBmYWlsdSBwYWFybHV1a3UgdXogcGFtYXRtYXBpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfRk1fUlNTSQ0KLSAgZGVzYzogU2lnbmFsIHN0cmVuZ3RoIG9mIGEgcmVjZWl2ZWQgRk0gc3RhdGlvbg0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICByYWRpbzogIlNpZ25hbCBzdHJlbmd0aDoiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAiU2lnbsSBbGEgU3RpcHJ1bXM6Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIHJhZGlvOiAic2lnbmFhbGEgc3RpcHJ1bXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19GSUxFU0laRQ0KLSAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zIGFuZCBpbiB0cmFjayBpbmZvcm1hdGlvbiB2aWV3ZXIgDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiRmlsZXNpemUiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiSXptxJNycyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogIml6bWVlcnMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVVRPUkVTVU1FX0VOQUJMRQ0KLSAgZGVzYzogZGVwcmVjYXRlZA0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIiINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICIiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICIiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVVRPUkVTVU1FX0VOQUJMRV9ZRVMNCi0gIGRlc2M6IGRlcHJlY2F0ZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICIiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQVVUT1JFU1VNRQ0KLSAgZGVzYzogcmVzdW1lIHNldHRpbmdzIG1lbnUNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJBdXRvbWF0aWMgcmVzdW1lIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIkF0c8SBa3QgQXV0b23EgXRpc2tpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXRzYWFrdCBhdXRvbWFhdGlza2kiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVVRPUkVTVU1FX0FVVE9NQVRJQw0KLSAgZGVzYzogcmVzdW1lIG9uIGF1dG9tYXRpYyB0cmFjayBjaGFuZ2UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSZXN1bWUgb24gYXV0b21hdGljIHRyYWNrIGNoYW5nZSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJBdHPEgWt0IEF1dG9txIF0aXNraSBQxIFyc2zEk2R6b3RpZXMiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJhdHNhYWt0IGF1dG9tYWF0aXNraSBwYWFyc2xlZWR6b3RpZXMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19BVVRPUkVTVU1FX0NVU1RPTQ0KLSAgZGVzYzogZW5hYmxlIGN1c3RvbWl6YXRpb24gb2YgcmVzdW1lIG9uIGF1dG9tYXRpYyB0cmFjayBjaGFuZ2UNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJJbiBjdXN0b20gZGlyZWN0b3JpZXMgb25seSINCi0gIDwvc291cmNlPg0KLSAgPGRlc3Q+DQotICAgICo6ICJUaWthaSBOb3LEgWTEq3TEgXMgTWFwxJNzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidGlrYWkgbm9yYWFkaWl0YWFzIG1hcGVlcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1BBVVNFX1JFV0lORA0KLSAgZGVzYzogU2Vjb25kcyB0byByZXdpbmQgd2hlbiByZXdpbmQgb24gcGF1c2UgaXMgZW5hYmxlZC4NCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSZXdpbmQgb24gUGF1c2UiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiQXR0xKt0IE5vcGF1esSTam90Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAiYXR0aWl0IG5vcGF1emVlam90Ig0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfQ1VSUkVOVF9QTEFZTElTVA0KLSAgZGVzYzogVXNlZCB3aGVuIHlvdSBuZWVkIHRvIHNheSBwbGF5bGlzdCwgYWxzbyB2b2ljZWQNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJDdXJyZW50IFBsYXlsaXN0Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIsKwUGF0cmVpesSTamFpcyBTYXJha3N0cyINCi0gIDwvZGVzdD4NCi0gIDx2b2ljZT4NCi0gICAgKjogInBhdHJlaXplZWphaXMgc2FyYWtzdHMiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19VU0JfU0tJUF9GSVJTVF9EUklWRQ0KLSAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBtdWx0aWRyaXZlX3VzYjogIlVTQiBIaWRlIEludGVybmFsIERyaXZlIg0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogbm9uZQ0KLSAgICBtdWx0aWRyaXZlX3VzYjogIlNhdmllbm9qb3RpZXMgUGFzbMSTcHQgSWVrxaHEk2pvIERpc2t1Ig0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIG11bHRpZHJpdmVfdXNiOiAic2F2aWVub2pvdGllcyBwYXNsZWVwdCBpZWtzaGVlam8gZGlza3UiDQotICA8L3ZvaWNlPg0KLTwvcGhyYXNlPg0KLTxwaHJhc2U+DQotICBpZDogTEFOR19TRVRfQVNfUExBWUxJU1RDQVRfRElSDQotICBkZXNjOiB1c2VkIGluIHRoZSBvbnBsYXkgbWVudSB0byBzZXQgYSBwbGF5bGlzdCBjYXRhbG9ndWUgZGlyDQotICB1c2VyOiBjb3JlDQotICA8c291cmNlPg0KLSAgICAqOiAiU2V0IEFzIFBsYXlsaXN0IENhdGFsb2d1ZSBEaXJlY3RvcnkiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiVXpsaWt0IEvEgSBTYXJha3N0dSBLYXRhbG9nYSBNYXBpIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiAidXpsaWt0IGthYSBzYXJha3N0dSBrYXRhbG9nYSBtYXBpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfU0FWRV9DSEFOR0VTDQotICBkZXNjOiBXaGVuIHlvdSB0cnkgdG8gZXhpdCBzY3JlZW5zIHRvIGNvbmZpcm0gc2F2ZQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogIlNhdmUgQ2hhbmdlcz8iDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiAiU2FnbGFixIF0IEl6bWFpxYZhcz8iDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJ2YWkgc2FnbGFiYWF0IGl6bWFpbmphcyINCi0gIDwvdm9pY2U+DQotPC9waHJhc2U+DQotPHBocmFzZT4NCi0gIGlkOiBMQU5HX1JFU0VUX1BMQVlMSVNUQ0FUX0RJUg0KLSAgZGVzYzoNCi0gIHVzZXI6IGNvcmUNCi0gIDxzb3VyY2U+DQotICAgICo6ICJSZXNldCBQbGF5bGlzdCBDYXRhbG9ndWUgRGlyZWN0b3J5Ig0KLSAgPC9zb3VyY2U+DQotICA8ZGVzdD4NCi0gICAgKjogIlDEgXJzdGF0xKt0IFNhcmFrc3R1IEthdGFsb2dhIE1hcGkiDQotICA8L2Rlc3Q+DQotICA8dm9pY2U+DQotICAgICo6ICJwYWFyc3RhdGlpdCBzYXJha3N0dSBrYXRhbG9nYSBtYXBpIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCi08cGhyYXNlPg0KLSAgaWQ6IExBTkdfSElTVE9HUkFNX0lOVEVSVkFMDQotICBkZXNjOiBpbiByZWNvcmQgc2V0dGluZ3MgbWVudQ0KLSAgdXNlcjogY29yZQ0KLSAgPHNvdXJjZT4NCi0gICAgKjogbm9uZQ0KLSAgICBoaXN0b2dyYW06ICJIaXN0b2dyYW0gaW50ZXJ2YWwiDQotICA8L3NvdXJjZT4NCi0gIDxkZXN0Pg0KLSAgICAqOiBub25lDQotICAgIGhpc3RvZ3JhbTogIlZpenVhbGl6xIFjaWphcyBJbnRlcnbEgWxzIg0KLSAgPC9kZXN0Pg0KLSAgPHZvaWNlPg0KLSAgICAqOiBub25lDQotICAgIGhpc3RvZ3JhbTogInZpenVhbGl6YWFjaWphcyBpbnRlcnZhYWxzIg0KLSAgPC92b2ljZT4NCi08L3BocmFzZT4NCisjICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4KKyMgICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisjICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLworIyAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAorIyAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyMgICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCisjICRJZCQKKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorIyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIworIyAKKyMgTGF0dmlhbiBsYW5ndWFnZSBmaWxlLCB0cmFuc2xhdGVkIGJ5IE3EgXJ0acWGxaEgxaBpbWlzIGplYiBtc2gKKworPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VUX0JPT0xfWUVTCisgIGRlc2M6IGJvb2wgdHJ1ZSByZXByZXNlbnRhdGlvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlllcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJKxIEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJqYWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFVF9CT09MX05PCisgIGRlc2M6IGJvb2wgZmFsc2UgcmVwcmVzZW50YXRpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJObyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOxJMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuZWUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX09OCisgIGRlc2M6IFVzZWQgaW4gYSBsb3Qgb2YgcGxhY2VzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiT24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSWVzbMSTZ3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWVzbGVlZ3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19PRkYKKyAgZGVzYzogVXNlZCBpbiBhIGxvdCBvZiBwbGFjZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJPZmYiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXpzbMSTZ3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpzbGVlZ3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BU0sKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkFzayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQcmFzxKt0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicHJhc2lpdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUxXQVlTCisgIGRlc2M6IHVzZWQgaW4gdmFyaW91cyBwbGFjZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBbHdheXMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVmllbm3Ek3IiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2aWVubWVlciIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTk9STUFMCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJOb3JtYWwiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTm9ybcSBbHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJub3JtYWFscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfR0FJTgorICBkZXNjOiBHZW5lcmljIHN0cmluZyBmb3IgZ2FpbiB1c2VkIGluIEVRIG1lbnUgYW5kIHJlY29yZGluZyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBhc3RpcHJpbsSBanVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhc3RpcHJpbmFhanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfV0FJVAorICBkZXNjOiBnZW5lcmFsIHBsZWFzZSB3YWl0IHNwbGFzaAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxvYWRpbmcuLi4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSWVsxIFkxJMuLi4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJub3RpZWsgaWVsYWFkZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTE9BRElOR19QRVJDRU5UCisgIGRlc2M6IHNwbGFzaCBudW1iZXIgb2YgcGVyY2VudHMgbG9hZGVkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTG9hZGluZy4uLiAlZCUlIGRvbmUgKCVzKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJpZWxhYWRlLi4uICVkJSUgZ2F0YXZzICglcykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NDQU5OSU5HX0RJU0sKKyAgZGVzYzogd2hlbiBib290aW5nIHVwIGFuZCByZWJ1aWxkaW5nIHRoZSBjYWNoZSBhbmQgY2FsY3VsYXRpbmcgZnJlZSBzcGFjZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjYW5uaW5nIGRpc2suLi4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2thbsSTIGF0bWnFhnUuLi4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJza2FuZWUgYXRtaW5qdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0hVVFRJTkdET1dOCisgIGRlc2M6IGluIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNodXR0aW5nIGRvd24uLi4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXpzbMSTZHphcy4uLiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6c2xlZWR6YXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NBTkNFTAorICBkZXNjOiBWaXN1YWwgY29uZmlybWF0aW9uIG9mIGNhbmNlbGluZyBhIGNoYW5nZWQgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNhbmNlbGxlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdGNlbHRzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRjZWx0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRkFJTEVECisgIGRlc2M6IFNvbWV0aGluZyBmYWlsZWQuIFRvIGJlIGFwcGVuZGVkIGFmdGVyIGFjdGlvbnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGYWlsZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTmVpemRldsSBcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5laXpkZXZhYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NIQU5ORUxTCisgIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ2hhbm5lbHMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiS2FuxIFsaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImthbmFhbGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFU0VUX0FTSworICBkZXNjOiBjb25maXJtIHRvIHJlc2V0IHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXJlIFlvdSBTdXJlPyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWYWkgZXNpIHDEgXJsaWVjaW7EgXRzPyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInZhaSBlc2kgcGFhcmxpZWNpbmFhdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTkZJUk1fV0lUSF9CVVRUT04KKyAgZGVzYzogR2VuZXJpYyBzdHJpbmcgdG8gdXNlIHRvIGNvbmZpcm0KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQTEFZID0gWWVzIgorICAgIGNvd29uZDIqOiAiTUVOVSwgb3IgdG9wLXJpZ2h0ID0gWWVzIgorICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiTkFWSSA9IFllcyIKKyAgICBzYW1zdW5neWgqLGlwb2QqLGlhdWRpb3g1LGlhdWRpb201LGdpZ2FiZWF0KixzYW5zYWUyMDAqLHNhbnNhYzIwMCosaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2IsbXJvYmUxMDAsc2Fuc2FjbGlwKixzYW5zYWZ1emUqOiAiU0VMRUNUID0gWWVzIgorICAgIG1yb2JlNTAwOiAiUExBWSwgUE9XRVIsIG9yIHRvcC1yaWdodCA9IFllcyIKKyAgICBhcmNob3NwbGF5ZXI6ICIoUExBWS9TVE9QKSIKKyAgICB2aWJlNTAwOiAiT0sgPSBZZXMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUExBWSA9IErEgSIKKyAgICBjb3dvbmQyKjogIk1FTlUsIHZhaSBsYWLEgSBhdWfFocSTasSBID0gSsSBIgorICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiTkFWSSA9IErEgSIKKyAgICBzYW1zdW5neWgqLGlwb2QqLGlhdWRpb3g1LGlhdWRpb201LGdpZ2FiZWF0KixzYW5zYWUyMDAqLHNhbnNhYzIwMCosaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2IsbXJvYmUxMDAsc2Fuc2FjbGlwKixzYW5zYWZ1emUqOiAiU0VMRUNUID0gSsSBIgorICAgIG1yb2JlNTAwOiAiUExBWSwgUE9XRVIsIHZhaSBsYWLEgSBhdWfFocSTasSBID0gSsSBIgorICAgIGFyY2hvc3BsYXllcjogIihQTEFZL1NUT1ApIgorICAgIHZpYmU1MDA6ICJPSyA9IErEgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ0FOQ0VMX1dJVEhfQU5ZCisgIGRlc2M6IEdlbmVyaWMgc3RyaW5nIHRvIHVzZSB0byBjYW5jZWwKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBbnkgT3RoZXIgPSBObyIKKyAgICBhcmNob3NwbGF5ZXI6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJKZWJrYXMgY2l0cyA9IE7EkyIKKyAgICBhcmNob3NwbGF5ZXI6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgICBhcmNob3NwbGF5ZXI6IG5vbmUKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUk9DS0JPWF9USVRMRQorICBkZXNjOiBtYWluIG1lbnUgdGl0bGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSb2NrYm94IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlJvY2tib3giCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJSb2NrYm94IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19NRU5VX1JFQ0VOVF9CT09LTUFSS1MKKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlJlY2VudCBCb29rbWFya3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTmVzZW7EgXMgR3LEgW1hdHrEq21lcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5lc2VuYWFzIGdyYWFtYXR6aWltZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJUl9CUk9XU0VSCisgIGRlc2M6IG1haW4gbWVudSB0aXRsZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZpbGVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkZhaWxpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZmFpbGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR0NBQ0hFCisgIGRlc2M6IGluIHRoZSBtYWluIG1lbnUgYW5kIHRoZSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGF0YWJhc2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiRGF0dWLEgXplIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGF0dWJhYXplIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19OT1dfUExBWUlORworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTm93IFBsYXlpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAixaBvYnLEq2QgQXRza2HFhm8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzaG9icmlpZCBhdHNrYW5qbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVTVU1FX1BMQVlCQUNLCisgIGRlc2M6IGluIHRoZSBtYWluIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXN1bWUgUGxheWJhY2siCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVHVycGluxIF0IEF0c2thxYZvxaFhbnUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0dXJwaW5hYXQgYXRza2Fuam9zaGFudSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VUVElOR1MKKyAgZGVzYzogIGluIG1haW4gbWVudSBhbmQgdmlzdWFsIGNvbmZpcm1hdGlvbiBhZnRlciBzZXR0aW5ncyByZXNldAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNldHRpbmdzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlV6c3TEgWTEq2p1bWkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ1enN0YWFkaWlqdW1pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNPUkRJTkcKKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlJlY29yZGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJJZXJha3N0xKvFoWFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImllcmFrc3RpaXNoYW5hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9SQURJTworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJGTSBSYWRpbyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkZNIFJhZGlvIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJmbSByYWRpbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUxJU1RTCisgIGRlc2M6IGluIHRoZSBmaWxlIHZpZXcgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBsYXlsaXN0cyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJemxhc2VzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpsYXNlcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExVR0lOUworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUGx1Z2lucyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTcHJhdWTFhmkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzcHJhdWRuamkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU1RFTQorICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51IGFuZCBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU3lzdGVtIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNpc3TEk21hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2lzdGVlbWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX1NFTEVDVF9CT09LTUFSSworICBkZXNjOiBib29rbWFyayBzZWxlY3Rpb24gbGlzdCB0aXRsZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNlbGVjdCBCb29rbWFyayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenbEk2zEk3RpZXMgR3LEgW1hdHrEq21pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXp2ZWVsZWV0aWVzIGdyYWFtYXR6aWltaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfRE9OVF9SRVNVTUUKKyAgZGVzYzogdG9wIGl0ZW0gaW4gdGhlIGxpc3Qgd2hlbiBhc2tpbmcgdXNlciBhYm91dCBib29rbWFyayBhdXRvIGxvYWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICI8RG9uJ3QgUmVzdW1lPiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICI8TmVhdHPEgWt0PiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5lYXRzYWFrdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfU0hVRkZMRQorICBkZXNjOiBib29rbWFyayBzZWxlY3Rpb24gbGlzdCwgYm9va21hcmsgZW5hYmxlcyBzaHVmZmxlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiLCBTaHVmZmxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiwgUMSBcm1hacWGdXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX0lOVkFMSUQKKyAgZGVzYzogYm9va21hcmsgc2VsZWN0aW9uIGxpc3QsIGJvb2ttYXJrIGNvdWxkbid0IGJlIHBhcnNlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIjxJbnZhbGlkIEJvb2ttYXJrPiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICI8TmVkZXLEq2dhIEdyxIFtYXR6xKttZT4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuZWRlcmlpZ2EgZ3JhYW1hdHppaW1lIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19DT05URVhUX01FTlUKKyAgZGVzYzogYm9va21hcmsgc2VsZWN0aW9uIGxpc3QgY29udGV4dCBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQm9va21hcmsgQWN0aW9ucyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJHcsSBbWF0esSrbWp1IERhcmLEq2JhcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdyYWFtYXR6aWltanUgZGFyYmlpYmFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19DT05URVhUX1JFU1VNRQorICBkZXNjOiBib29rbWFyayBjb250ZXh0IG1lbnUsIHJlc3VtZSB0aGlzIGJvb2ttYXJrCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVzdW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkF0c8SBa3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhdHNhYWt0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19DT05URVhUX0RFTEVURQorICBkZXNjOiBib29rbWFyayBjb250ZXh0IG1lbnUsIGRlbGV0ZSB0aGlzIGJvb2ttYXJrCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGVsZXRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk3N0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpkemVlc3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FVVE9fQk9PS01BUktfUVVFUlkKKyAgZGVzYzogcHJvbXB0IGZvciB1c2VyIHRvIGRlY2lkZSB0byBjcmVhdGUgYW4gYm9va21hcmsKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDcmVhdGUgYSBCb29rbWFyaz8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXp2ZWlkb3QgR3LEgW1hdHrEq21pPyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInZhaSBpenZlaWRvdCBncmFhbWF0emlpbWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX0NSRUFURV9TVUNDRVNTCisgIGRlc2M6IEluZGljYXRlcyBib29rbWFyayB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCb29rbWFyayBDcmVhdGVkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkdyxIFtYXR6xKttZSBJenZlaWRvdGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJncmFhbWF0emlpbWUgaXp2ZWlkb3RhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19DUkVBVEVfRkFJTFVSRQorICBkZXNjOiBJbmRpY2F0ZXMgYm9va21hcmsgd2FzIG5vdCBjcmVhdGVkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQm9va21hcmsgRmFpbGVkISIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOZWl6ZGV2xIFzIEl6dmVpZG90ISIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5laXpkZXZhYXMgaXp2ZWlkb3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX0xPQURfRU1QVFkKKyAgZGVzYzogSW5kaWNhdGVzIGJvb2ttYXJrIHdhcyBlbXB0eQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJvb2ttYXJrIEVtcHR5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlR1a8WhYSBHcsSBbWF0esSrbWUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0dWtzaGEgZ3JhYW1hdHppaW1lIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TT1VORF9TRVRUSU5HUworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU291bmQgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2thxYZhcyBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2thbmphcyB1enN0YWFkaWlqdW1pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0xVTUUKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWb2x1bWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2thxLx1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJza2FsanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFTUworICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJhc3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQmFzaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJhc2kiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RSRUJMRQorICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRyZWJsZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdWfFoWFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXVnc2hhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFMQU5DRQorICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJhbGFuY2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQmFsYW5zcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJhbGFuc3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NIQU5ORUxfQ09ORklHVVJBVElPTgorICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNoYW5uZWwgQ29uZmlndXJhdGlvbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLYW7EgWx1IEtvbmZpZ3VyxIFjaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia2FuYWFsdSBrb25maWd1cmFhY2lqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ0hBTk5FTF9TVEVSRU8KKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTdGVyZW8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU3RlcmVvIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic3RlcmVvIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DSEFOTkVMX01PTk8KKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJNb25vIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1vbm8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJtb25vIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DSEFOTkVMX0NVU1RPTQorICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkN1c3RvbSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOZXN0YW5kYXJ0YSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5lc3RhbmRhcnRhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DSEFOTkVMX0xFRlQKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJNb25vIExlZnQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTW9ubyBLcmVpc2FpcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1vbm8ga3JlaXNhaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NIQU5ORUxfUklHSFQKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJNb25vIFJpZ2h0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1vbm8gTGFiYWlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibW9ubyBsYWJhaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NIQU5ORUxfTEVGVFJJR0hUCisgIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJNb25vIExlZnQgKyBSaWdodCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfc3djb2RlYzogIktyZWlzYWlzICsgTGFiYWlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJtb25vIGtyZWlzYWlzIHBsdXMgbGFiYWlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DSEFOTkVMX0tBUkFPS0UKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJLYXJhb2tlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkthcmFva2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJrYXJhb2tlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TVEVSRU9fV0lEVEgKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTdGVyZW8gV2lkdGgiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU3RlcmVvIFBsYXR1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzdGVyZW8gcGxhdHVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGRUVECisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkNyb3NzZmVlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiS2FuxIFsdSBJemzEq2R6aW7EgcWhYW5hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImthbmFhbHUgaXpsaWlkemluYWFzaGFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGRUVEX0RJUkVDVF9HQUlOCisgIGRlc2M6IGluIGNyb3NzZmVlZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJEaXJlY3QgR2FpbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiVGllxaFhaXMgU2thxLx1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAidGllc2hhaXMgc2thbGp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NST1NTRkVFRF9DUk9TU19HQUlOCisgIGRlc2M6IGluIGNyb3NzZmVlZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJDcm9zcyBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJTdGFycHNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInN0YXJwc2thbGp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NST1NTRkVFRF9IRl9BVFRFTlVBVElPTgorICBkZXNjOiBpbiBjcm9zc2ZlZWQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiSGlnaC1GcmVxdWVuY3kgQXR0ZW51YXRpb24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkF1Z3N0byBGcmVrdmVuxI11IFbEgWppbsSBanVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdWdzdG8gZnJla3ZlbmNodSB2YWFqaW5hYWp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NST1NTRkVFRF9IRl9DVVRPRkYKKyAgZGVzYzogaW4gY3Jvc3NmZWVkIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkhpZ2gtRnJlcXVlbmN5IEN1dG9mZiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiQXVnc3RvIEZyZWt2ZW7EjXUgU8SBa3VtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdWdzdG8gZnJla3ZlbmNodSBzYWFrdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19FUVVBTElaRVIKKyAgZGVzYzogaW4gdGhlIHNvdW5kIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiRXF1YWxpemVyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJFa3ZhbGFpemVycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJla3ZhbGFpemVycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0VOQUJMRUQKKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkVuYWJsZSBFUSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiSWVzbMSTZ3QgRWt2YWxhaXplcnUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiaWVzbMSTZ3QgZWt2YWxhaXplcnUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0VRVUFMSVpFUl9HUkFQSElDQUwKKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkdyYXBoaWNhbCBFUSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiR3JhZmlza2FpcyBFa3ZhbGFpemVycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJncmFmaXNrYWlzIGVrdmFsYWl6ZXJzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19FUVVBTElaRVJfUFJFQ1VUCisgIGRlc2M6IGluIGVxIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlByZWN1dCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUGFzdGlwcmluxIFqdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImtvcGVlamFpcyBmcmVrdmVuY2h1IHBhc3RpcHJpbmFhanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0dBSU4KKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlNpbXBsZSBFUSBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiVmllbmvEgXLFoW90YWlzIEVrdmFsYWl6ZXJzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInZpZW5rYWFyc2hvdGFpcyBla3ZhbGFpemVycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0FEVkFOQ0VECisgIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJBZHZhbmNlZCBFUSBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUGFwaWxkdXMgVXpzdMSBZMSranVtaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJwYXBpbGR1cyB1enN0YWFkaWlqdW1pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19FUVVBTElaRVJfU0FWRQorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiU2F2ZSBFUSBQcmVzZXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlNhZ2xhYsSBdCBVenN0xIFkxKtqdW11cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJzYWdsYWJhYXQgZWt2YWxhaXplcmEgdXpzdGFhZGlpanVtdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0VRVUFMSVpFUl9CUk9XU0UKKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkJyb3dzZSBFUSBQcmVzZXRzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJBcGzFq2tvdCBVenN0xIFkxKtqdW11cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhcGx1dWtvdCBla3ZhbGFpemVyYSB1enN0YWFkaWlqdW11cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0VESVRfTU9ERQorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiRWRpdCBtb2RlOiAlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUmXFvsSrbXM6ICVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0dBSU5fSVRFTQorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiJWQgSHogQmFuZCBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICIlZCBIeiBKb3NsYXMgU3RpcHJ1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiam9zbGFzIHN0aXBydW1zIGhlcmNvcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfTE9XX1NIRUxGCisgIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJMb3cgU2hlbGYgRmlsdGVyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJCYXN1IEZpbHRycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJiYXN1IGZpbHRycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfUEVBSworICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUGVhayBGaWx0ZXIgJWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlDEq8S3YSBGaWx0cnMgJWQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAicGlpa2phIGZpbHRycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfSElHSF9TSEVMRgorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiSGlnaCBTaGVsZiBGaWx0ZXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkF1Z3N0byBGcmVrdmVuxI11IEZpbHRycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdWdzdG8gZnJla3ZlbmNodSBmaWx0cnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0VRVUFMSVpFUl9CQU5EX0NVVE9GRgorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiQ3V0b2ZmIEZyZXF1ZW5jeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUm9iZcW+ZnJla3ZlbmNlIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInJvYmV6aGZyZWt2ZW5jZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRVFVQUxJWkVSX0JBTkRfQ0VOVEVSCisgIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJDZW50cmUgRnJlcXVlbmN5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJDZW50cmEgRnJla3ZlbmNlIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImNlbnRyYSBmcmVrdmVuY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0VRVUFMSVpFUl9CQU5EX1EKKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlBsYXR1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAicGxhdHVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRElUSEVSSU5HCisgIGRlc2M6IGluIHRoZSBzb3VuZCBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkRpdGhlcmluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiU2thxYZhcyBJemzEq2R6aW7EgcWhYW5hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInNrYW5qYXMgaXpsaWlkemluYWFzaGFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTE9VRE5FU1MKKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiTG91ZG5lc3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbWFzZjogIlNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogInNrYWxqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BVVRPVk9MCisgIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogIkF1dG8gVm9sdW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJBdXRvIFNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogImF1dG8gc2thbGp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RFQ0FZCisgIGRlc2M6IGluIHNvdW5kX3NldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogIkFWIERlY2F5IFRpbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbWFzZjogIkFTIFJlZ3VsxJPFoWFuYXMgTGFpa3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TVVBFUkJBU1MKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiU3VwZXIgQmFzcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiQmFzdSBQYXN0aXByaW7EgWp1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiYmFzdSBwYXN0aXByaW5hYWp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01EQl9FTkFCTEUKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiTURCIEVuYWJsZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiSWVzbMSTZ3QgTcSBa3NsxKtnb3MgQmFzdXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiaWVzbGVlZ3QgbWFha3NsaWlnb3MgYmFzdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01EQl9TVFJFTkdUSAorICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJNREIgU3RyZW5ndGgiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbWFzZjogIk1CIFN0aXBydW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogIm1hYWtzbGlpZ28gYmFzdSBzdGlwcnVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTURCX0hBUk1PTklDUworICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJNREIgSGFybW9uaWNzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJNQiBLb252ZXJ0xJPFoWFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJtYWFrc2xpaWdvIGJhc3Uga29udmVydGVlc2hhbmEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01EQl9DRU5URVIKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAiTURCIENlbnRyZSBGcmVxdWVuY3kiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbWFzZjogIk1CIENlbnRyYSBGcmVrdmVuY2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBtYXNmOiAibWFha3NsaWlnbyBiYXN1IGNlbnRyYSBmcmVrdmVuY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01EQl9TSEFQRQorICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIG1hc2Y6ICJNREIgU2hhcGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbWFzZjogIk1CIEZvcm1hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbWFzZjogIm1hYWtzbGlpZ28gYmFzdSBmb3JtYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfR0VORVJBTF9TRVRUSU5HUworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiR2VuZXJhbCBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWaXNwxIFyxJNqaSBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmlzcGFhcmVlamkgdXpzdGFhZGlpanVtaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUJBQ0sKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSgpCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUGxheWJhY2sgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRza2HFhm/FoWFuYXMgVXpzdMSBZMSranVtaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImF0c2thbmpvc2hhbmFzIFV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NIVUZGTEUKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNodWZmbGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSmF1a3RhIFNlY8SrYmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJqYXVrdGEgc2VjaWliYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVQRUFUCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXBlYXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRrxIFydG90IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRrYWFydG90IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEwKKyAgZGVzYzogZ2VuZXJpYyBzdHJpbmcgdXNlZCBib3RoIGluIGRpciBmaWxlIGZpbHRlciBhbmQgcmVwZWF0IG1vZGUgc2VsZWN0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQWxsIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlZpc3VzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmlzdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFUEVBVF9PTkUKKyAgZGVzYzogcmVwZWF0IG9uZSBzb25nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiT25lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlZpZW51IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmllbnUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFUEVBVF9BQgorICBkZXNjOiByZXBlYXQgcmFuZ2UgZnJvbSBwb2ludCBBIHRvIEIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBLUIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQS1CIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYWEtYmVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZX1NFTEVDVEVECisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQbGF5IFNlbGVjdGVkIEZpcnN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6dsSTbMSTdG8gQXRza2HFhm90IFBpcm1vIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXp2ZWVsZWV0byBmYWlsdSBhdHNrYW5qb3QgcGlybW8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dJTkRfTUVOVQorICBkZXNjOiBpbiB0aGUgcGxheWJhY2sgc3ViIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGYXN0LUZvcndhcmQvUmV3aW5kIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlDEgXJ0xKvFoWFuYS9BdHTEq8WhYW5hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYWF0cmFhIHBhYXJ0aWlzaGFuYSB1biBhdHRpaXNoYW5hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GRlJXX1NURVAKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZGL1JXIE1pbiBTdGVwIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBUL0FUVCBNaW4gU29saXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJtaW5pbWFhbGFpcyBzb2xpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRkZSV19BQ0NFTAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRkYvUlcgQWNjZWwiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUFQvQVRUIFBhxIF0cmluIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiUGFhYXRyaW5hYWp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01QM0JVRkZFUl9NQVJHSU4KKyAgZGVzYzogTVAzIGJ1ZmZlciBtYXJnaW4gdGltZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkFudGktU2tpcCBCdWZmZXIiCisgICAgZmxhc2hfc3RvcmFnZTogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlByZXRyYXVzdMSrxaFhbsSBcyBCdWZlcmlzIgorICAgIGZsYXNoX3N0b3JhZ2U6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInByZXRyYXVzdGlpc2hhbmFhcyBidWZlcmlzIgorICAgIGZsYXNoX3N0b3JhZ2U6IG5vbmUKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRkFERV9PTl9TVE9QCisgIGRlc2M6IG9wdGlvbnMgbWVudSB0byBzZXQgZmFkZSBvbiBzdG9wIG9yIHBhdXNlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRmFkZSBvbiBTdG9wL1BhdXNlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHppxaFhbmEgcGllIFN0b3AvUGF1emVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpkemlzaGFuYSBwaWUgc3RvcCB2YWkgcGF1emVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QQVJUWV9NT0RFCisgIGRlc2M6IHBhcnR5IG1vZGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQYXJ0eSBNb2RlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkJhbGzEq3RlcyBSZcW+xKttcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJhbGxpaXRlcyByZXpoaWltcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGQURFCisgIGRlc2M6IGluIHBsYXliYWNrIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiQ3Jvc3NmYWRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIlDEgXJrbMSBxaFhbsSBcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogInBhYXJrbGFhc2hhbmFhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGQURFX0VOQUJMRQorICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIkVuYWJsZSBDcm9zc2ZhZGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiSXptYW50b3QgUMSBcmtsxIHFoWFub3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJpem1hbnRvdCBwYWFya2xhYXNoYW5vcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTUFOVFJBQ0tTS0lQCisgIGRlc2M6IGluIGNyb3NzZmFkZSBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIk1hbnVhbCBUcmFjayBTa2lwIE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiVGlrYWkgUMSBcnNsxJNkem90IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAidGlrYWkgcGFhcnNsZWVkem90IGR6aWVzbWFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSFVGRkxFX1RSQUNLU0tJUAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiU2h1ZmZsZSBvciBNYW51YWwgVHJhY2sgU2tpcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJKYXVrdGEgU2VjxKtiYSBWYWkgUMSBcnNsxJNkem90aWVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiYXRza2Fuam9qb3QgamF1a3RhYSBzZWNpaWJhYSB2YWkgcGFhcnNsZWVkem90aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DUk9TU0ZBREVfRkFERV9JTl9ERUxBWQorICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIkZhZGUtSW4gRGVsYXkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiSWV2YWRhIEFpenR1cmUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJpZXZhZGEgYWl6dHVyZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGQURFX0ZBREVfSU5fRFVSQVRJT04KKyAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJGYWRlLUluIER1cmF0aW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIklldmFkYSBHYXJ1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJpZXZhZGEgZ2FydW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DUk9TU0ZBREVfRkFERV9PVVRfREVMQVkKKyAgZGVzYzogaW4gY3Jvc3NmYWRlIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJGYWRlLU91dCBEZWxheSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJCZWlndSBBaXp0dXJlIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiYmVpZ3UgYWl6dHVyZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JPU1NGQURFX0ZBREVfT1VUX0RVUkFUSU9OCisgIGRlc2M6IGluIGNyb3NzZmFkZSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiRmFkZS1PdXQgRHVyYXRpb24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiQmVpZ3UgR2FydW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiYmVpZ3UgZ2FydW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DUk9TU0ZBREVfRkFERV9PVVRfTU9ERQorICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIkZhZGUtT3V0IE1vZGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiQmVpZ3UgUmXFvsSrbXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJiZWlndSByZXpoaWltcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTUlYCisgIGRlc2M6IGluIHBsYXliYWNrIHNldHRpbmdzLCBjcm9zc2ZhZGUgb3B0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiTWl4IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogIlNhamF1a8WhYW7EgXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJzYWphdWtzaGFuYWFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRVBMQVlHQUlOCisgIGRlc2M6IGluIHJlcGxheWdhaW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXBsYXlnYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNrYcS8dW1hIE5vcm1hbGl6xIFjaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2thbGp1bWEgbm9ybWFsaXphYWNpamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFUExBWUdBSU5fTk9DTElQCisgIGRlc2M6IGluIHJlcGxheWdhaW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUHJldmVudCBDbGlwcGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiTm92xJNyc3QgUMSBcmxpZWt1IFNrYcS8dW11IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIm5vdmVlcnN0IHBhYXJsaWVrdSBza2FsanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVQTEFZR0FJTl9NT0RFCisgIGRlc2M6IGluIHJlcGxheWdhaW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXBsYXlnYWluIFR5cGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTm9ybWFsaXrEgWNpamFzIFZlaWRzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibm9ybWFsaXphYWNpamFzIHZlaWRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEJVTV9HQUlOCisgIGRlc2M6IGluIHJlcGxheWdhaW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBbGJ1bSBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFsYsWrbXUgU2thxLx1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhbGJ1dW11IHNrYWxqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UUkFDS19HQUlOCisgIGRlc2M6IGluIHJlcGxheWdhaW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJUcmFjayBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkR6aWVzbXUgU2thxLx1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJkemllc211IHNrYWxqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSFVGRkxFX0dBSU4KKyAgZGVzYzogdXNlIHRyYWNrIGdhaW4gaWYgc2h1ZmZsZSBtb2RlIGlzIG9uLCBhbGJ1bSBnYWluIG90aGVyd2lzZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRyYWNrIEdhaW4gaWYgU2h1ZmZsaW5nIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkR6aWVzbXUgSmEgSmF1a3RhIFNlY8SrYmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJkemllc211IGphIGphdWt0YSBzZWNpaWJhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRVBMQVlHQUlOX1BSRUFNUAorICBkZXNjOiBpbiByZXBsYXlnYWluIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUHJlLWFtcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQcmlla8WhcGFzdGlwcmluxIFqdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicHJpZWtzaHBhc3RpcHJpbmFhanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkVFUAorICBkZXNjOiBpbiBwbGF5YmFjayBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJUcmFjayBTa2lwIEJlZXAiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkR6LlDEgXJzbMSTZ8WhYW5hcyBQxKtrc3RpZW5zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImR6aWVzbXUgcGFhcnNsZWVnc2hhbmFzIHBpaWtzdGllbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dFQUsKKyAgZGVzYzogaW4gYmVlcCB2b2x1bWUgaW4gcGxheWJhY2sgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiV2VhayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiVsSBasWhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInZhYWpzaCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTU9ERVJBVEUKKyAgZGVzYzogaW4gYmVlcCB2b2x1bWUgaW4gcGxheWJhY2sgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiTW9kZXJhdGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlZpZHV2xJNqcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJ2aWR1dmVlanMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NUUk9ORworICBkZXNjOiBpbiBiZWVwIHZvbHVtZSBpbiBwbGF5YmFjayBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJTdHJvbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlNwxJNjxKtncyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJzcGVlY2lpZ3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NQRElGX0VOQUJMRQorICBkZXNjOiBpbiBwbGF5YmFjayBzZXR0aW5ncyBtZW51LiBlbmFibGUvZGlzYWJsZSB0aGUgb3B0aWNhbCBvdXQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzcGRpZl9wb3dlcjogIk9wdGljYWwgT3V0cHV0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHNwZGlmX3Bvd2VyOiAiT3B0aXNrxIEgSXplamEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzcGRpZl9wb3dlcjogIm9wdGlza2FhIGl6ZWphIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ORVhUX0ZPTERFUgorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51LiBTaG91bGQgd2UgYWxsb3cgbW92ZSB0byBuZXh0L3ByZXYgZm9sZGVyIGZyb20gbGFzdC9maXJzdCB0cmFjayBvZiBjdXJyZW50IG9uZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkF1dG8tQ2hhbmdlIERpcmVjdG9yeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdXRvbcSBdGlza2kgTWFpbsSrdCBNYXBpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXV0b21hYXRpc2tpIG1haW5paXQgbWFwaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkFORE9NCisgIGRlc2M6IHJhbmRvbSBmb2xkZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSYW5kb20iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSmF1a3TEgSBTZWPEq2LEgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImphdWt0YWEgc2VjaWliYWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FVRElPU0NST0JCTEVSCisgIGRlc2M6ICJMYXN0LmZtIExvZyIgaW4gdGhlIHBsYXliYWNrIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMYXN0LmZtIExvZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWZWlkb3QgTGFzdC5mbSBMb2d1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmVpZG90IExhc3QuZm0gbG9ndSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1VFU0hFRVRfRU5BQkxFCisgIGRlc2M6IGN1ZXNoZWV0IHN1cHBvcnQgb3B0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ3Vlc2hlZXQgU3VwcG9ydCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJDdWUgQXRiYWxzdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJjdWUgYXRiYWxzdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hFQURQSE9ORV9VTlBMVUcKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudS4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBoZWFkcGhvbmVfZGV0ZWN0aW9uOiAiUGF1c2Ugb24gSGVhZHBob25lIFVucGx1ZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBoZWFkcGhvbmVfZGV0ZWN0aW9uOiAiQXR2aWVub2pvdCBBdXN0acWGYXMgTm9wYXV6xJN0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogImF0dmllbm9qb3QgYXVzdGluamFzIG5vcGF1emVldCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSEVBRFBIT05FX1VOUExVR19SRVNVTUUKKyAgZGVzYzogaW4gcGF1c2VfcGhvbmVzX21lbnUuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIlBhdXNlIGFuZCBSZXN1bWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIk5vcGF1esSTdCBVbiBBdHPEgWt0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIm5vcGF1emVldCB1biBhdHNhYWt0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19IRUFEUEhPTkVfVU5QTFVHX1JXCisgIGRlc2M6IGRlcHJlY2F0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIkF0dMSrxaFhbmFzIElsZ3VtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJhdHRpaXNoYW5hcyBpbGd1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hFQURQSE9ORV9VTlBMVUdfRElTQUJMRV9BVVRPUkVTVU1FCisgIGRlc2M6IGluIHBhdXNlX3Bob25lc19tZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGhlYWRwaG9uZV9kZXRlY3Rpb246ICJEaXNhYmxlIHJlc3VtZSBvbiBzdGFydHVwIGlmIHBob25lcyB1bnBsdWdnZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIkl6c2wgQXRzxIFrdCBQYWxhacW+b3QgamEgQXVzdGnFhmFzIEl6cmF1dGFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgaGVhZHBob25lX2RldGVjdGlvbjogIml6c2xlZWd0IGF1dG9tYWF0aXNrdSBhdHNhYWtzaGFudSBqYSBhdXN0aW5qYXMgaXIgaXpyYXV0YXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZJTEUKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSgpCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRmlsZSBWaWV3IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkZhaWx1IFDEgXJsxatrcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImZhaWx1IHBhYXJsdXVrcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU09SVF9DQVNFCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTb3J0IENhc2UgU2Vuc2l0aXZlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIsWgxLdpcm90IFDEk2MgTGllbC5CdXJ0LiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNoa2ppcm90IHBlZWMgbGllbGFqaWVtIGJ1cnRpZW0iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NPUlRfRElSCisgIGRlc2M6IGJyb3dzZXIgc29ydGluZyBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU29ydCBEaXJlY3RvcmllcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICLFoMS3aXJvdCBNYXBlcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNoa2ppcm90IG1hcGVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TT1JUX0ZJTEUKKyAgZGVzYzogYnJvd3NlciBzb3J0aW5nIHNldHRpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTb3J0IEZpbGVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIsWgxLdpcm90IEZhaWx1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNoa2ppcm90IGZhaWx1cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU09SVF9BTFBIQQorICBkZXNjOiBicm93c2VyIHNvcnRpbmcgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkFscGhhYmV0aWNhbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBbGZhYsSTdGlza2kiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhbGZhYmVldGlza2kiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NPUlRfREFURQorICBkZXNjOiBicm93c2VyIHNvcnRpbmcgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJ5IERhdGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUMSTYyBWZWN1bWEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwZWVjIHZlY3VtYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU09SVF9EQVRFX1JFVkVSU0UKKyAgZGVzYzogYnJvd3NlciBzb3J0aW5nIHNldHRpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCeSBOZXdlc3QgRGF0ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQxJNjIEphdW7EgWvEgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBlZWMgamF1bmFha2FhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TT1JUX1RZUEUKKyAgZGVzYzogYnJvd3NlciBzb3J0aW5nIHNldHRpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCeSBUeXBlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlDEk2MgVmVpZGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwZWVjIHZlaWRhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GSUxURVIKKyAgZGVzYzogc2V0dGluZyBuYW1lIGZvciBkaXIgZmlsdGVyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2hvdyBGaWxlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSxIFkxKt0IEZhaWx1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJhYWRpaXQgZmFpbHVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GSUxURVJfU1VQUE9SVEVECisgIGRlc2M6IHNob3cgYWxsIGZpbGUgdHlwZXMgc3VwcG9ydGVkIGJ5IFJvY2tib3gKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTdXBwb3J0ZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRiYWxzdMSrdG9zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicmFhZGlpdCBhdGJhbHN0aWl0b3MgZmFpbHVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GSUxURVJfTVVTSUMKKyAgZGVzYzogc2hvdyBvbmx5IG11c2ljLXJlbGF0ZWQgZmlsZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJNdXNpYyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJNxat6aWthcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJhYWRpaXQgdGlrYWkgbXV1emlrYXMgZmFpbHVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GT0xMT1cKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZvbGxvdyBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTZWtvdCBTYXJha3N0YW0iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzZWtvdCBzYXJha3N0YW0iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NIT1dfUEFUSAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2hvdyBQYXRoIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlLEgWTEq3QgQ2XEvHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJyYWFkaWl0IGNlbGp1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSE9XX1BBVEhfQ1VSUkVOVAorICBkZXNjOiBpbiBzaG93IHBhdGggbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkN1cnJlbnQgRGlyZWN0b3J5IE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVGlrYWkgUGF0cmVpesSTam8gTWFwaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInRpa2FpIHBhdHJlaXplZWpvIG1hcGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJU1BMQVlfRlVMTF9QQVRICisgIGRlc2M6IHRyYWNrIGRpc3BsYXkgb3B0aW9ucworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZ1bGwgUGF0aCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQaWxudSBDZcS8dSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBpbG51IGNlbGp1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CVUlMRElOR19EQVRBQkFTRQorICBkZXNjOiBzcGxhc2ggZGF0YWJhc2UgYnVpbGRpbmcgcHJvZ3Jlc3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCdWlsZGluZyBkYXRhYmFzZS4uLiAlZCBmb3VuZCAoT0ZGIHRvIHJldHVybikiCisgICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJCdWlsZGluZyBkYXRhYmFzZS4uLiAlZCBmb3VuZCAoU1RPUCB0byByZXR1cm4pIgorICAgIGlwb2QqOiAiQnVpbGRpbmcgZGF0YWJhc2UuLi4gJWQgZm91bmQgKFBSRVYgdG8gcmV0dXJuKSIKKyAgICBpYXVkaW94NSxpYXVkaW9tNSxnaWdhYmVhdCosbXJvYmUxMDA6ICJCdWlsZGluZyBkYXRhYmFzZS4uLiAlZCBmb3VuZCAoTEVGVCB0byByZXR1cm4pIgorICAgIGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixzYW5zYWZ1emUqLHZpYmU1MDA6ICJCdWlsZGluZyBkYXRhYmFzZS4uLiAlZCBmb3VuZCAoUFJFViB0byByZXR1cm4pIgorICAgIGdvZ2VhcnNhOTIwMDogIkJ1aWxkaW5nIGRhdGFiYXNlLi4uICVkIGZvdW5kIChSRVcgdG8gcmV0dXJuKSIKKyAgICBhcmNob3NwbGF5ZXI6ICJCdWlsZGluZyBEQiAlZCBmb3VuZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWZWlkb2p1IGRhdHVixIF6aS4uLiAlZCBhdHJhc3RhcyAoT0ZGIGxhaSB0dXJwaW7EgXR1KSIKKyAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIlZlaWRvanUgZGF0dWLEgXppLi4uICVkIGF0cmFzdGFzIChTVE9QIGxhaSB0dXJwaW7EgXR1KSIKKyAgICBpcG9kKjogIlZlaWRvanUgZGF0dWLEgXppLi4uICVkIGF0cmFzdGFzIChQUkVWIGxhaSB0dXJwaW7EgXR1KSIKKyAgICBpYXVkaW94NSxpYXVkaW9tNSxnaWdhYmVhdCosbXJvYmUxMDA6ICJWZWlkb2p1IGRhdHVixIF6aS4uLiAlZCBhdHJhc3RhcyAoTEVGVCBsYWkgdHVycGluxIF0dSkiCisgICAgaXJpdmVyaDEwLGlyaXZlcmgxMF81Z2Isc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHNhbnNhZnV6ZSosdmliZTUwMDogIlZlaWRvanUgZGF0dWLEgXppLi4uICVkIGF0cmFzdGFzIChQUkVWIGxhaSB0dXJwaW7EgXR1KSIKKyAgICBnb2dlYXJzYTkyMDA6ICJWZWlkb2p1IGRhdHVixIF6aS4uLiAlZCBhdHJhc3RhcyAoUkVXIGxhaSB0dXJwaW7EgXR1KSIKKyAgICBhcmNob3NwbGF5ZXI6ICJWZWlkb2p1IERCIGF0cmFzdHMgJWQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhdHJhc3RpIGllcmFrc3RpIGRhdHViYWF6ZWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR0NBQ0hFX1JBTQorICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0Y19yYW1jYWNoZTogIkxvYWQgdG8gUkFNIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHRjX3JhbWNhY2hlOiAiSWVsxIFkxJN0IEF0bWnFhsSBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdGNfcmFtY2FjaGU6ICJpZWxhYWRlZXQgb3BlcmF0aWl2YWphYSBhdG1pbmphYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVEFHQ0FDSEVfQVVUT1VQREFURQorICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBdXRvIFVwZGF0ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdGphdW5vdCBBdXRvbcSBdGlza2kiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhdGphdW5vdCBhdXRvbWFhdGlza2kiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR0NBQ0hFX0ZPUkNFX1VQREFURQorICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJJbml0aWFsaXplIE5vdyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJbmljaWFsaXrEk3QgVGFnYWQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpbmljaWFsaXplZXQgdGFnYWQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR0NBQ0hFX1VQREFURQorICBkZXNjOiBpbiB0YWcgY2FjaGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJVcGRhdGUgTm93IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkF0amF1bm90IFRhZ2FkIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRqYXVub3QgdGFnYWQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JVTlRJTUVEQl9BQ1RJVkUKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudS4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJHYXRoZXIgUnVudGltZSBEYXRhIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIktyxIF0IFN0YXRpc3Rpa3UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJrcmFhdCBzdGF0aXN0aWt1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UQUdDQUNIRV9FWFBPUlQKKyAgZGVzYzogaW4gdGFnIGNhY2hlIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRXhwb3J0IE1vZGlmaWNhdGlvbnMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiRWtzcG9ydMSTdCBJem1hacWGYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJla3Nwb3J0ZWV0IGl6bWFpbmphcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVEFHQ0FDSEVfSU1QT1JUCisgIGRlc2M6IGluIHRhZyBjYWNoZSBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkltcG9ydCBNb2RpZmljYXRpb25zIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkltcG9ydMSTdCBJem1hacWGYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpbXBvcnRlZXQgaXptYWluamFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UQUdDQUNIRV9GT1JDRV9VUERBVEVfU1BMQVNICisgIGRlc2M6IGluIHRhZyBjYWNoZSBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlVwZGF0aW5nIGluIGJhY2tncm91bmQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRqYXVuaW5hIGZvbsSBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRqYXVuaW5hIGZvbmFhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UQUdDQUNIRV9JTklUCisgIGRlc2M6IHdoaWxlIGluaXRpYWxpemluZyB0YWdjYWNoZSBvbiBib290CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ29tbWl0dGluZyBkYXRhYmFzZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQYWxhacW+IGRhdHVixIF6aSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhbGFpemggZGF0dWJhYXppIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UQUdDQUNIRV9CVVNZCisgIGRlc2M6IHdoZW4gdHJ5aW5nIHRvIHNodXRkb3duIGFuZCB0YWdjYWNoZSBpcyBjb21taXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGF0YWJhc2UgaXMgbm90IHJlYWR5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkRhdHVixIF6ZSB2xJNsIGRhcmJvamFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGF0dWJhYXplIHZlZWwgZGFyYm9qYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR05BVklfQUxMX1RSQUNLUworICBkZXNjOiAiPEFsbCB0cmFja3M+IiBlbnRyeSBpbiB0YWcgYnJvd3NlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIjxBbGwgdHJhY2tzPiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICI8VmlzYXMgZHppZXNtYXM+IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmlzYXMgZHppZXNtYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJU1BMQVkKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSgpCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGlzcGxheSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdHTEk2xzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXR0ZWVscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1VTVE9NX0ZPTlQKKyAgZGVzYzogaW4gc2V0dGluZ19tZW51KCkKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiRm9udCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiRm9udGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiZm9udGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dISUxFX1BMQVlJTkcKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSgpCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiV2hpbGUgUGxheWluZyBTY3JlZW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRza2HFhm/FoWFuYXMgRWtyxIFucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImF0c2thbmpvc2hhbmFzIGVrcmFhbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9XSElMRV9QTEFZSU5HCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUoKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZSBXaGlsZSBQbGF5aW5nIFNjcmVlbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICJQdWx0cyBBdHNrYcWGb8WhYW5hcyBFa3LEgW5zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgYXRza2Fuam9zaGFuYXMgZWtyYWFucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTENEX01FTlUKKyAgZGVzYzogaW4gdGhlIGRpc3BsYXkgc3ViIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMQ0QgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiRWtyxIFuYSBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZWtyYWFuYSB1enN0YWFkaWlqdW1pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQUNLTElHSFQKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJhY2tsaWdodCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBcGdhaXNtb2p1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhcGdhaXNtb2p1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBQ0tMSUdIVF9PTl9XSEVOX0NIQVJHSU5HCisgIGRlc2M6IGluIGRpc3BsYXlfc2V0dGluZ3NfbWVudSwgYmFja2xpZ2h0IHRpbWVvdXQgd2l0aCBjaGFyZ2VyIGNvbm5lY3RlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiQmFja2xpZ2h0IChXaGlsZSBQbHVnZ2VkIEluKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBjaGFyZ2luZzogIkFwZ2Fpc21vanVtcyAoTMSBZMSTam90KSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiYXBnYWlzbW9qdW1zIGxhYWRlZXNoYW5hcyBsYWlrYWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBQ0tMSUdIVF9PTl9CVVRUT05fSE9MRAorICBkZXNjOiBpbiBsY2Qgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBob2xkX2J1dHRvbjogIkJhY2tsaWdodCBvbiBIb2xkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGhvbGRfYnV0dG9uOiAiQXBnYWlzbW9qdW1zIGthZCBIb2xkIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgaG9sZF9idXR0b246ICJhcGdhaXNtb2p1bXMgYXIgbm9ibG9ramVldGllbSB0YXVzdGluamllbSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ0FQVElPTl9CQUNLTElHSFQKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNhcHRpb24gQmFja2xpZ2h0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5vc2F1a3VtYSBBcGdhaXNtb2p1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJub3NhdWt1bWEgYXBnYWlzbW9qdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQUNLTElHSFRfRkFERV9JTgorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYmFja2xpZ2h0X2ZhZGUqOiAiQmFja2xpZ2h0IEZhZGUgSW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYmFja2xpZ2h0X2ZhZGUqOiAiQXBnYWlzbW9qdW1hIGllc2wubGFpa3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBiYWNrbGlnaHRfZmFkZSo6ICJhcGdhaXNtb2p1bWEgaWVzbGVlZ3NoYW5hYXMgbGFpa3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBQ0tMSUdIVF9GQURFX09VVAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYmFja2xpZ2h0X2ZhZGUqOiAiQmFja2xpZ2h0IEZhZGUgT3V0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGJhY2tsaWdodF9mYWRlKjogIkFwZ2Fpc21vanVtYSBpenNsLmxhaWtzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYmFja2xpZ2h0X2ZhZGUqOiAiYXBnYWlzbW9qdW1hIGl6c2xlZWdzaGFuYWFzIGxhaWtzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQUNLTElHSFRfRklMVEVSX0ZJUlNUX0tFWVBSRVNTCisgIGRlc2M6IEJhY2tsaWdodCBiZWhhdmlvdXIgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZpcnN0IEJ1dHRvbnByZXNzIEVuYWJsZXMgQmFja2xpZ2h0IE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGlybWFpcyBTcGllZGllbnMgSWVzbMSTZHogVGlrYWkgQXBnYWlzbW9qdW11IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGlybWFpcyBzcGllZGllbnMgSWVzbGVlZHogdGlrYWkgYXBnYWlzbW9qdW11IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19MQ0RfU0xFRVBfQUZURVJfQkFDS0xJR0hUX09GRgorICBkZXNjOiBJbiBkaXNwbGF5IHNldHRpbmdzLCB0aW1lIHRvIHN3aXRjaCBMQ0QgY2hpcCBpbnRvIHBvd2VyIHNhdmluZyBzdGF0ZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9zbGVlcDogIlNsZWVwIChBZnRlciBCYWNrbGlnaHQgT2ZmKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2Rfc2xlZXA6ICJFa3LEgW5hIEl6c2zEk2fFoWFuYXMgTGFpa3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2Rfc2xlZXA6ICJla3JhYW5hIGl6c2xlZWdzaGFuYXMgbGFpa3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX05FVkVSCisgIGRlc2M6IGluIGxjZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9zbGVlcDogIk5ldmVyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9zbGVlcDogIk5la2FkIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX3NsZWVwOiAibmVrYWQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JSSUdIVE5FU1MKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGJhY2tsaWdodF9icmlnaHRuZXNzOiAiQnJpZ2h0bmVzcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBiYWNrbGlnaHRfYnJpZ2h0bmVzczogIlNwaWxndHVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGJhY2tsaWdodF9icmlnaHRuZXNzOiAic3BpbGd0dW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT05UUkFTVAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ29udHJhc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiS29udHJhc3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia29udHJhc3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JTlZFUlQKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJMQ0QgTW9kZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfaW52ZXJ0LHJlbW90ZV9sY2RfaW52ZXJ0OiAiRWtyxIFuYSBSZcW+xKttcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJla3JhYW5hIHJlemhpaW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JTlZFUlRfTENEX0lOVkVSU0UKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJJbnZlcnNlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9pbnZlcnQscmVtb3RlX2xjZF9pbnZlcnQ6ICJOZWdhdMSrdnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfaW52ZXJ0LHJlbW90ZV9sY2RfaW52ZXJ0OiAibmVnYXRpaXZzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTElQX0RJU1BMQVkKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudSwgb3B0aW9uIHRvIHR1cm4gZGlzcGxheStidXR0b3MgYnkgMTgwIGRlZ3JlZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiVXBzaWRlIERvd24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIkvEgWrEgW0gR2Fpc8SBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogImthYWphYW0gZ2Fpc2FhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JTlZFUlRfQ1VSU09SCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiTGluZSBTZWxlY3RvciBUeXBlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJMxKtuaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogImxpaW5pamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lOVkVSVF9DVVJTT1JfUE9JTlRFUgorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlBvaW50ZXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIkt1cnNvcnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAia3Vyc29ycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSU5WRVJUX0NVUlNPUl9CQVIKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJCYXIgKEludmVyc2UpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJSaW5kYSAoQXB2xJNyc3RhKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJhcHZlZXJzdGEgcmluZGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NMRUFSX0JBQ0tEUk9QCisgIGRlc2M6IHRleHQgZm9yIExDRCBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAiQ2xlYXIgQmFja2Ryb3AiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAiTm92xIFrdCBGb251IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAibm92YWFrdCBmb251IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQUNLR1JPVU5EX0NPTE9SCisgIGRlc2M6IG1lbnUgZW50cnkgdG8gc2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiQmFja2dyb3VuZCBDb2xvdXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiRm9uYSBLcsSBc2EiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJmb25hIGtyYWFzYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk9SRUdST1VORF9DT0xPUgorICBkZXNjOiBtZW51IGVudHJ5IHRvIHNldCB0aGUgZm9yZWdyb3VuZCBjb2xvcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIkZvcmVncm91bmQgQ29sb3VyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIlByaWVrxaFwbMSBbmEgS3LEgXNhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAicHJpZWtzaHBsYWFuYSBrcmFhc2EiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFU0VUX0NPTE9SUworICBkZXNjOiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiUmVzZXQgQ29sb3VycyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJOb2tsdXPEk3TEgXMgS3LEgXNhcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIm5va2x1c2VldGFhcyBrcmFhc2FzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT0xPUl9SR0JfTEFCRUxTCisgIGRlc2M6IHdoYXQgdG8gc2hvdyBmb3IgdGhlICdSJyAnRycgJ0InIE9ORSBMRVRURVIgRUFDSAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIlJHQiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJTYVphWmkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTE9SX1JHQl9WQUxVRQorICBkZXNjOiBpbiBjb2xvciBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJSR0I6ICUwMlglMDJYJTAyWCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJTYVphWmk6ICUwMlglMDJYJTAyWCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09MT1JfVU5BQ0NFUFRBQkxFCisgIGRlc2M6IHNwbGFzaCB3aGVuIHVzZXIgc2VsZWN0cyBhbiBpbnZhbGlkIGNvbG91cgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIkludmFsaWQgY29sb3VyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIk5lZGVyxKtnYSBLcsSBc2EiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xDRF9SRU1PVEVfTUVOVQorICBkZXNjOiBpbiB0aGUgZGlzcGxheSBzdWIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZS1MQ0QgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiUHVsdHMgRWtyxIFuYSBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgZWtyYWFuYSB1enN0YWFkaWlqdW1pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRURVQ0VfVElDS0lORworICBkZXNjOiBpbiByZW1vdGUgbGNkIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZW1vdGVfdGlja2luZzogIlJlZHVjZSBUaWNraW5nIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlbW90ZV90aWNraW5nOiAiU2FtYXppbsSBdCBUaWvFocS3aSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZV90aWNraW5nOiAic2FtYXppbmFhdCB0aWtzaGtqaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0hPV19JQ09OUworICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2hvdyBJY29ucyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSxIFkxKt0IElrb25hcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJhYWRpaXQgaWtvbmFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JPTExfTUVOVQorICBkZXNjOiBpbiBkaXNwbGF5X3NldHRpbmdzX21lbnUoKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjcm9sbGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSdWxsxJPFoWFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJ1bGxlZXNoYW5hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JPTEwKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjcm9sbCBTcGVlZCBTZXR0aW5nIEV4YW1wbGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUnVsbMSTxaFhbmFzIMSAdHJ1bWEgUGllbcSTcnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NDUk9MTF9TUEVFRAorICBkZXNjOiBpbiBkaXNwbGF5X3NldHRpbmdzX21lbnUoKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjcm9sbCBTcGVlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSdWxsxJPFoWFuYXMgxIB0cnVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJ1bGxlZXNoYW5hcyBhYXRydW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JPTExfREVMQVkKKyAgZGVzYzogRGVsYXkgYmVmb3JlIHNjcm9sbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjcm9sbCBTdGFydCBEZWxheSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSdWxsxJPFoWFuYXMgQWl6dHVyZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJ1bGxlZXNoYW5hcyBhaXp0dXJlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JPTExfU1RFUAorICBkZXNjOiBQaXhlbHMgdG8gYWR2YW5jZSBwZXIgc2Nyb2xsCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2Nyb2xsIFN0ZXAgU2l6ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSdWxsxJPFoWFuYXMgU29saXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJydWxsZWVzaGFuYXMgc29saXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NDUk9MTF9TVEVQX0VYQU1QTEUKKyAgZGVzYzogUGl4ZWxzIHRvIGFkdmFuY2UgcGVyIHNjcm9sbAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjcm9sbCBTdGVwIFNpemUgU2V0dGluZyBFeGFtcGxlIFRleHQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUnVsbMSTxaFhbmFzIFNvxLxhIFBpZW3Ek3JzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CSURJUl9TQ1JPTEwKKyAgZGVzYzogQmlkaXJlY3Rpb25hbCBzY3JvbGwgbGltaXQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCaWRpcmVjdGlvbmFsIFNjcm9sbCBMaW1pdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBYnB1c8STamFzIFJ1bGzEk8WhYW5hcyBMaW1pdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhYnB1c2VlamFzIHJ1bGxlZXNoYW5hcyBsaW1pdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9TQ1JPTExfU0VUUworICBkZXNjOiAiUmVtb3RlIFNjcm9sbGluZyBPcHRpb25zIiBTdWJtZW51IGluICJTY3JvbGxpbmcgT3B0aW9ucyIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZSBTY3JvbGxpbmcgT3B0aW9ucyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICJQdWx0cyBSdWxsxJPFoWFuYXMgT3BjaWphcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogInB1bHRzIHJ1bGxlZXNoYW5hcyBvcGNpamFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JFRU5fU0NST0xMX1ZJRVcKKyAgZGVzYzogc2hvdWxkIGxpbmVzIHNjcm9sbCBvdXQgb2YgdGhlIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTY3JlZW4gU2Nyb2xscyBPdXQgT2YgVmlldyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiVGVrc3RzIEl6cnVsbMSTamFzIMSAcnB1cyBFa3LEgW5hIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogInRla3N0cyBpenJ1bGxlZWphcyBhYXJwdXMgZWtyYWFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0NSRUVOX1NDUk9MTF9TVEVQCisgIGRlc2M6IFBpeGVscyB0byBhZHZhbmNlIHBlciBTY3JlZW4gc2Nyb2xsCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlNjcmVlbiBTY3JvbGwgU3RlcCBTaXplIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJFa3LEgW5hIFJ1bGzEk8WhYW5hcyBTb2xpcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJla3JhYW5hIHJ1bGxlZXNoYW5hcyBzb2xpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0NST0xMX1BBR0lOQVRFRAorICBkZXNjOiBqdW1wIHRvIG5ldyBwYWdlIHdoZW4gc2Nyb2xsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUGFnZWQgU2Nyb2xsaW5nIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlJ1bGzEk3QgTGFwYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJydWxsZWV0IGxhcGFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19MSVNUQUNDRUxfU1RBUlRfREVMQVkKKyAgZGVzYzogRGVsYXkgYmVmb3JlIGxpc3Qgc3RhcnRzIGFjY2VsZXJhdGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxpc3QgQWNjZWxlcmF0aW9uIFN0YXJ0IERlbGF5IgorICAgIHdoZWVsX2FjY2VsZXJhdGlvbjogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNhcmFrc3RhIFJ1bGzEk8WhYW5hcyBBaXp0dXJlIgorICAgIHdoZWVsX2FjY2VsZXJhdGlvbjogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2FyYWtzdGEgcnVsbGVlc2hhbmFzIGFpenR1cmUiCisgICAgd2hlZWxfYWNjZWxlcmF0aW9uOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xJU1RBQ0NFTF9BQ0NFTF9TUEVFRAorICBkZXNjOiBsaXN0IGFjY2VsZXJhdGlvbiBzcGVlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxpc3QgQWNjZWxlcmF0aW9uIFNwZWVkIgorICAgIHdoZWVsX2FjY2VsZXJhdGlvbjogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNhcmFrc3RhIFBhxIF0cmluxIFqdW1zIgorICAgIHdoZWVsX2FjY2VsZXJhdGlvbjogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2FyYWtzdGEgcGFhYXRyaW5hYWp1bXMiCisgICAgd2hlZWxfYWNjZWxlcmF0aW9uOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBUlNfTUVOVQorICBkZXNjOiBpbiB0aGUgZGlzcGxheSBzdWIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTdGF0dXMtL1Njcm9sbGJhciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiU3RhdHVzYS0vUnVsbGpvc2xhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogInN0YXR1c2EgcnVsbGpvc2xhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQ1JPTExfQkFSCisgIGRlc2M6IGRpc3BsYXkgbWVudSwgRjMgc3Vic3RpdHV0ZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTY3JvbGwgQmFyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJSdWxsam9zbGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAicnVsbGpvc2xhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TVEFUVVNfQkFSCisgIGRlc2M6IGRpc3BsYXkgbWVudSwgRjMgc3Vic3RpdHV0ZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTdGF0dXMgQmFyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTdGF0dXNhIEpvc2xhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogInN0YXR1c2Egam9zbGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JVVFRPTl9CQVIKKyAgZGVzYzogaW4gc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGVyX3BhZDogIkJ1dHRvbiBCYXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkZXJfcGFkOiAiUG9ndSBKb3NsYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGVyX3BhZDogInBvZ3Ugam9zbGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZPTFVNRV9ESVNQTEFZCisgIGRlc2M6IFZvbHVtZSB0eXBlIHRpdGxlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlZvbHVtZSBEaXNwbGF5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTa2HEvHVtYSBBdHTEk2xvxaFhbmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAic2thbGp1bWEgYXR0ZWVsb3NoYW5hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQVRURVJZX0RJU1BMQVkKKyAgZGVzYzogQmF0dGVyeSB0eXBlIHRpdGxlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIkJhdHRlcnkgRGlzcGxheSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiQmF0dGVyaWphcyBBdHTEk2xvxaFhbmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiYmF0ZXJpamFzIGF0dGVlbG9zaGFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRElTUExBWV9HUkFQSElDCisgIGRlc2M6IExhYmVsIGZvciB0eXBlIG9mIGljb24gZGlzcGxheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJHcmFwaGljIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJHcmFmaXNraSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJncmFmaXNraSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRElTUExBWV9OVU1FUklDCisgIGRlc2M6IExhYmVsIGZvciB0eXBlIG9mIGljb24gZGlzcGxheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJOdW1lcmljIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJOdW1lcmlza2kiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAibnVtZXJpc2tpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTV9NRU5VCisgIGRlc2M6IGluIHRoZSBkaXNwbGF5IG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQZWFrIE1ldGVyIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJMxKttZcWGYSBJbmRpa2F0b3JzIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImxpaW1lbmphIGluZGlrYXRvcnMiCisgICAgbWFzZDogbm9uZQorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTV9DTElQX0hPTEQKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNsaXAgSG9sZCBUaW1lIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLcm9wxLxvanVtYSBBaXp0dXJlIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtyb3Bsam9qdW1hIGluZGlrYWFjaWphcyBhaXp0dXJlIgorICAgIG1hc2Q6IG5vbmUKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE1fUEVBS19IT0xECisgIGRlc2M6IGluIHRoZSBwZWFrIG1ldGVyIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQZWFrIEhvbGQgVGltZSIKKyAgICBtYXNkOiBub25lCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUMSrxLdhIEFpenR1cmVzIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBpaWtqYSBpbmRpa2FhY2lqYXMgYWl6dHVyZSIKKyAgICBtYXNkOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BNX0VURVJOQUwKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkV0ZXJuYWwiCisgICAgbWFzZDogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIsSAcsSTanMiCisgICAgbWFzZDogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYWFyZWVqcyIKKyAgICBtYXNkOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BNX1JFTEVBU0UKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBlYWsgUmVsZWFzZSIKKyAgICBtYXNkOiBub25lCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUMSrxLdhIEF0bGFpxaFhbmEiCisgICAgbWFzZDogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGlpa2phIGluZGlrYWFjaWphcyBhdGxhaXNoYW5hIgorICAgIG1hc2Q6IG5vbmUKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE1fU0NBTEUKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNjYWxlIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTa2FsYSIKKyAgICBtYXNkOiBub25lCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJza2FsYSIKKyAgICBtYXNkOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BNX0RCRlMKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxvZ2FyaXRobWljIChkQikiCisgICAgbWFzZDogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkxvZ2FyaXRtaXNrxIEgKGRCKSIKKyAgICBtYXNkOiBub25lCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJsb2dhcml0bWlza2FhIGRlY2liZWx1IgorICAgIG1hc2Q6IG5vbmUKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE1fTElORUFSCisgIGRlc2M6IGluIHRoZSBwZWFrIG1ldGVyIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMaW5lYXIgKCUpIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJMaW5lxIFyxIEgKCUpIgorICAgIG1hc2Q6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImxpbmVhYXJhYSBwcm9jZW50dSIKKyAgICBtYXNkOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BNX01JTgorICBkZXNjOiBpbiB0aGUgcGVhayBtZXRlciBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTWluaW11bSBPZiBSYW5nZSIKKyAgICBtYXNkOiBub25lCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2thbGFzIFPEgWt1bXMiCisgICAgbWFzZDogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2thbGFzIHNhYWt1bXMiCisgICAgbWFzZDogbm9uZQorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTV9NQVgKKyAgZGVzYzogaW4gdGhlIHBlYWsgbWV0ZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1heGltdW0gT2YgUmFuZ2UiCisgICAgbWFzZDogbm9uZQorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNrYWxhcyBCZWlnYXMiCisgICAgbWFzZDogbm9uZQorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2thbGFzIGJlaWdhcyIKKyAgICBtYXNkOiBub25lCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RFRkFVTFRfQ09ERVBBR0UKKyAgZGVzYzogZGVmYXVsdCBlbmNvZGluZyB1c2VkIHdpdGggaWQzIHRhZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEZWZhdWx0IENvZGVwYWdlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5va2x1c8STdGFpcyBLb2TEk2p1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJub2tsdXNlZXRhaXMga29kZWVqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT0RFUEFHRV9MQVRJTjEKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTGF0aW4xIChJU08tODg1OS0xKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJMYXTEq8WGdTEgKElTTy04ODU5LTEpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibGF0aWluanUgdmllbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX0dSRUVLCisgIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkdyZWVrIChJU08tODg1OS03KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJHcmllxLd1IChJU08tODg1OS03KSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdyaWVranUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX0hFQlJFVworICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiSGVicmV3IChJU08tODg1OS04KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiRWJyZWp1IChJU08tODg1OS04KSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJlYnJlanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX0NZUklMTElDCisgIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkN5cmlsbGljIChDUDEyNTEpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIktpcmlsaWNhIChDUDEyNTEpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia2lyaWxpY2EiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX1RIQUkKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlRoYWkgKElTTy04ODU5LTExKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiVGFpIChJU08tODg1OS0xMSkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAidGFpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT0RFUEFHRV9BUkFCSUMKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIkFyYWJpYyAoQ1AxMjU2KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiQXLEgWJ1IChDUDEyNTYpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogImFyYWFidSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09ERVBBR0VfVFVSS0lTSAorICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJUdXJraXNoIChJU08tODg1OS05KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJUdXJrdSAoSVNPLTg4NTktOSkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0dXJrdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09ERVBBR0VfTEFUSU5fRVhURU5ERUQKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTGF0aW4gRXh0ZW5kZWQgKElTTy04ODU5LTIpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkxhdMSrxYZ1IFBhcGxhxaFpbi4gKElTTy04ODU5LTIpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibGF0aWluanUgcGFwbGFzaGluYWF0YWlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT0RFUEFHRV9KQVBBTkVTRQorICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiSmFwYW5lc2UgKFNKSVMpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJKYXDEgcWGdSAoU0pJUykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiSmFwYWFuanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX1NJTVBMSUZJRUQKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlNpbXAuIENoaW5lc2UgKEdCMjMxMikiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIlZpZW5rLiDEtsSrbmllxaF1IChHQjIzMTIpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogInZpZW5rYWFyc2hvdGFpcyBramlpbmllc2h1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT0RFUEFHRV9LT1JFQU4KKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIktvcmVhbiAoS1NYMTAwMSkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIktvcmVqaWXFoXUgKEtTWDEwMDEpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogImtvcmVqaWVzaHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX1RSQURJVElPTkFMCisgIGRlc2M6IGluIGNvZGVwYWdlIHNldHRpbmcgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJUcmFkLiBDaGluZXNlIChCSUc1KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiVHJhZC4gxLbEq25pZcWhdSAoQklHNSkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAidHJhZGljaW9uYWFsYWlzIGtqaWluaWVzaHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPREVQQUdFX1VURjgKKyAgZGVzYzogaW4gY29kZXBhZ2Ugc2V0dGluZyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiVW5pY29kZSAoVVRGLTgpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlVuaWtvZHMgKFVURi04KSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInVuaWtvZHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JVVFRPTkxJR0hUX1RJTUVPVVQKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGJ1dHRvbl9saWdodDogIkJ1dHRvbiBMaWdodCBUaW1lb3V0IgorICAgIHNhbnNhZnV6ZSosc2Fuc2FlMjAwKjogIldoZWVsIExpZ2h0IFRpbWVvdXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYnV0dG9uX2xpZ2h0OiAiUG9ndSBBcGdhaXNtb2p1bXMiCisgICAgc2Fuc2FmdXplKixzYW5zYWUyMDAqOiAiUmlwdcS8YSBBcGdhaXNtb2p1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBidXR0b25fbGlnaHQ6ICJwb2d1IGFwZ2Fpc21vanVtcyIKKyAgICBzYW5zYWZ1emUqLHNhbnNhZTIwMCo6ICJyaXB1bGphIGFwZ2Fpc21vanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQlVUVE9OTElHSFRfQlJJR0hUTkVTUworICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYnV0dG9ubGlnaHRfYnJpZ2h0bmVzczogIkJ1dHRvbiBMaWdodCBCcmlnaHRuZXNzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGJ1dHRvbmxpZ2h0X2JyaWdodG5lc3M6ICJQb2d1IFNwaWxndHVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGJ1dHRvbmxpZ2h0X2JyaWdodG5lc3M6ICJwb2d1IHNwaWxndHVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RBUlRfU0NSRUVOCisgIGRlc2M6IGluIHRoZSBzeXN0ZW0gc3ViIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTdGFydCBTY3JlZW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU8SBa3VtYSBMb2dzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2Fha3VtYSBsb2dzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NQUlOX01FTlUKKyAgZGVzYzogaW4gc3RhcnQgc2NyZWVuIHNldHRpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJNYWluIE1lbnUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiR2FsdmVuxIEgSXp2xJNsbmUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJnYWx2ZW5hYSBpenZlZWxuZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUFJFVklPVVNfU0NSRUVOCisgIGRlc2M6IGluIHN0YXJ0IHNjcmVlbiBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUHJldmlvdXMgU2NyZWVuIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkllcHJpZWvFocSTasSBIEl6dsSTbG5lIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWVwcmlla3NoZWVqYWEgaXp2ZWVsbmUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBVFRFUllfTUVOVQorICBkZXNjOiBpbiB0aGUgc3lzdGVtIHN1YiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQmF0dGVyeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJCYXRlcmlqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJhdGVyaWphIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQVRURVJZX0NBUEFDSVRZCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCYXR0ZXJ5IENhcGFjaXR5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIklldGlscMSrYmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJiYXRlcmlqYXMgaWV0aWxwaWliYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFUVEVSWV9UWVBFCisgIGRlc2M6IGluIGJhdHRlcnkgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBiYXR0ZXJ5X3R5cGVzOiAiQmF0dGVyeSBUeXBlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGJhdHRlcnlfdHlwZXM6ICJWZWlkcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGJhdHRlcnlfdHlwZXM6ICJ2ZWlkcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFUVEVSWV9UWVBFX0FMS0FMSU5FCisgIGRlc2M6IGluIGJhdHRlcnkgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBiYXR0ZXJ5X3R5cGVzOiAiQWxrYWxpbmUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYmF0dGVyeV90eXBlczogIlPEgXJtYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGJhdHRlcnlfdHlwZXM6ICJzYWFybWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBVFRFUllfVFlQRV9OSU1ICisgIGRlc2M6IGluIGJhdHRlcnkgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBiYXR0ZXJ5X3R5cGVzOiAiTmlNSCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBiYXR0ZXJ5X3R5cGVzOiAiTmlNSCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGJhdHRlcnlfdHlwZXM6ICJuaWtqZWxqYSBtZXRhYWxoaWRyYWF0YSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRElTS19NRU5VCisgIGRlc2M6IGluIHRoZSBzeXN0ZW0gc3ViIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEaXNrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkRpc2tzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGlza3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NQSU5ET1dOCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEaXNrIFNwaW5kb3duIgorICAgIGZsYXNoX3N0b3JhZ2U6IG5vbmUKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJEaXNrYSBBcHN0xIFkaW7EgcWhYW5hIgorICAgIGZsYXNoX3N0b3JhZ2U6IG5vbmUKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImRpc2thIGFwc3RhYWRpbmFhc2hhbmEiCisgICAgZmxhc2hfc3RvcmFnZTogbm9uZQorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ESVJDQUNIRV9FTkFCTEUKKyAgZGVzYzogaW4gZGlyZWN0b3J5IGNhY2hlIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZGlyY2FjaGU6ICJEaXJlY3RvcnkgQ2FjaGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgZGlyY2FjaGU6ICJNYXBqdSBCdWZlcmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgZGlyY2FjaGU6ICJtYXBqdSBidWZlcmlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19USU1FX01FTlUKKyAgZGVzYzogaW4gdGhlIHN5c3RlbSBzdWIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlRpbWUgJiBEYXRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkxhaWtzICYgRGF0dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAibGFpa3MgdW4gZGF0dW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TRVRfVElNRQorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiU2V0IFRpbWUvRGF0ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJVenN0xIFkxKt0IExhaWt1L0RhdHVtdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogInV6c3RhYWRpaXQgbGFpa3UgdW4gZGF0dW11IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19USU1FRk9STUFUCisgIGRlc2M6IHNlbGVjdCB0aGUgdGltZSBmb3JtYXQgb2YgdGltZSBpbiBzdGF0dXMgYmFyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiVGltZSBGb3JtYXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiTGFpa2EgRm9ybcSBdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJsYWlrYSBmb3JtYWF0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfMTJfSE9VUl9DTE9DSworICBkZXNjOiBvcHRpb24gZm9yIDEyIGhvdXIgY2xvY2sKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIxMiBIb3VyIENsb2NrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIjEyIFN0dW5kdSBQdWxrc3RlbmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiZGl2cGFkc21pdCBzdHVuZHUgcHVsa3N0ZW5pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfMjRfSE9VUl9DTE9DSworICBkZXNjOiBvcHRpb24gZm9yIDI0IGhvdXIgY2xvY2sKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIyNCBIb3VyIENsb2NrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIjI0IFN0dW5kdSBQdWxrc3RlbmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiZGl2ZGVzbWl0IGNoZXRydSBzdHVuZHUgcHVsa3N0ZW5pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVElNRV9TRVRfQlVUVE9OCisgIGRlc2M6IHVzZWQgaW4gc2V0X3RpbWUoKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIk9OID0gU2V0IgorICAgIG1yb2JlNTAwOiAiSEVBUlQgPSBTZXQiCisgICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJOQVZJID0gU2V0IgorICAgIGlwb2QqLGlhdWRpb3g1LGlhdWRpb201LGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixnaWdhYmVhdCosbXJvYmUxMDAsc2Fuc2FjbGlwKixzYW5zYWZ1emUqOiAiU0VMRUNUID0gU2V0IgorICAgIGdvZ2VhcnNhOTIwMDogIlBMQVkgPSBTZXQiCisgICAgdmliZTUwMDogIk9LID0gU2V0IgorICAgIG1waW9oZDMwMDogIkVOVEVSID0gU2V0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIk9OID0gVXpzdMSBZMSrdCIKKyAgICBtcm9iZTUwMDogIkhFQVJUID0gVXpzdMSBZMSrdCIKKyAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIk5BVkkgPSBVenN0xIFkxKt0IgorICAgIGlwb2QqLGlhdWRpb3g1LGlhdWRpb201LGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKixnaWdhYmVhdCosbXJvYmUxMDAsc2Fuc2FjbGlwKixzYW5zYWZ1emUqOiAiU0VMRUNUID0gVXpzdMSBZMSrdCIKKyAgICBnb2dlYXJzYTkyMDA6ICJQTEFZID0gVXpzdMSBZMSrdCIKKyAgICB2aWJlNTAwOiAiT0sgPSBVenN0xIFkxKt0IgorICAgIG1waW9oZDMwMDogIkVOVEVSID0gVXpzdMSBZMSrdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJ0Yyxpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMCxpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixpYXVkaW94NSxpYXVkaW9tNSxpcG9kKixzYW5zYWUyMDAqLHNhbnNhYzIwMCosZ2lnYWJlYXQqLG1yb2JlMTAwLGdvZ2VhcnNhOTIwMDogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVElNRV9SRVZFUlQKKyAgZGVzYzogdXNlZCBpbiBzZXRfdGltZSgpCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiT0ZGID0gUmV2ZXJ0IgorICAgIG1yb2JlNTAwOiAiUE9XRVIgPSBSZXZlcnQiCisgICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJTVE9QID0gUmV2ZXJ0IgorICAgIGlwb2QqLHNhbnNhYzIwMCosbXBpb2hkMzAwOiAiTUVOVSA9IFJldmVydCIKKyAgICBpYXVkaW94NSxpYXVkaW9tNTogIlJFQ09SRCA9IFJldmVydCIKKyAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixzYW5zYWUyMDAqLHNhbnNhZnV6ZSo6ICJQUkVWID0gUmV2ZXJ0IgorICAgIGdpZ2FiZWF0Zng6ICJQT1dFUiA9IFJldmVydCIKKyAgICBtcm9iZTEwMDogIkRJU1BMQVkgPSBSZXZlcnQiCisgICAgZ2lnYWJlYXRzOiAiQkFDSyA9IFJldmVydCIKKyAgICBnb2dlYXJzYTkyMDA6ICJMRUZUID0gUmV2ZXJ0IgorICAgIHZpYmU1MDA6ICJDQU5DRUwgPSBSZXZlcnQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiT0ZGID0gQXRjZWx0IgorICAgIG1yb2JlNTAwOiAiUE9XRVIgPSBBdGNlbHQiCisgICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJTVE9QID0gQXRjZWx0IgorICAgIGlwb2QqLHNhbnNhYzIwMCosbXBpb2hkMzAwOiAiTUVOVSA9IEF0Y2VsdCIKKyAgICBpYXVkaW94NSxpYXVkaW9tNTogIlJFQ09SRCA9IEF0Y2VsdCIKKyAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYixzYW5zYWUyMDAqLHNhbnNhZnV6ZSo6ICJQUkVWID0gQXRjZWx0IgorICAgIGdpZ2FiZWF0Zng6ICJQT1dFUiA9IEF0Y2VsdCIKKyAgICBtcm9iZTEwMDogIkRJU1BMQVkgPSBBdGNlbHQiCisgICAgZ2lnYWJlYXRzOiAiQkFDSyA9IEF0Y2VsdCIKKyAgICBnb2dlYXJzYTkyMDA6ICJMRUZUID0gQXRjZWx0IgorICAgIHZpYmU1MDA6ICJDQU5DRUwgPSBBdGNlbHQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGMsaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDAsaXBvZCosc2Fuc2FlMjAwKixzYW5zYWMyMDAqLGlhdWRpb3g1LGlhdWRpb201LGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLGdpZ2FiZWF0Kixtcm9iZTEwMCxnb2dlYXJzYTkyMDA6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dFRUtEQVlfU1VOREFZCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB3ZWVrZGF5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiU3VuIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlN2IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19XRUVLREFZX01PTkRBWQorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3Igd2Vla2RheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIk1vbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJQcm0iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dFRUtEQVlfVFVFU0RBWQorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3Igd2Vla2RheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlR1ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJPdHIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dFRUtEQVlfV0VETkVTREFZCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB3ZWVrZGF5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiV2VkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlRyZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfV0VFS0RBWV9USFVSU0RBWQorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3Igd2Vla2RheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlRodSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJDZXQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dFRUtEQVlfRlJJREFZCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB3ZWVrZGF5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiRnJpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlBrdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfV0VFS0RBWV9TQVRVUkRBWQorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3Igd2Vla2RheQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlNhdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJTc3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PTlRIX0pBTlVBUlkKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkphbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJKYW4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJqYW52YWFyaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PTlRIX0ZFQlJVQVJZCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJGZWIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiRmViIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiZmVicnVhYXJpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTU9OVEhfTUFSQ0gKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIk1hciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJNYXIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJtYXJ0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTU9OVEhfQVBSSUwKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkFwciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJBcHIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJhcHJpaWxpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTU9OVEhfTUFZCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJNYXkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiTWFpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAibWFpanMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PTlRIX0pVTkUKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkp1biIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJKxatuIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAianV1bmlqcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTU9OVEhfSlVMWQorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiSnVsIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkrFq2wiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJqdXVsaWpzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT05USF9BVUdVU1QKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkF1ZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJBdWciCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJhdWd1c3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT05USF9TRVBURU1CRVIKKyAgZGVzYzogTWF4aW11bSAzLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIG1vbnRobmFtZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIlNlcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICJTZXAiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJzZXB0ZW1icmlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT05USF9PQ1RPQkVSCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJPY3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiT2t0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAib2t0b2JyaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PTlRIX05PVkVNQkVSCisgIGRlc2M6IE1heGltdW0gMy1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciBtb250aG5hbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJOb3YiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiTm92IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAibm92ZW1icmlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT05USF9ERUNFTUJFUgorICBkZXNjOiBNYXhpbXVtIDMtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGhuYW1lCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiRGVjIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJ0YzogIkRlYyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogImRlY2VtYnJpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE9XRVJPRkZfSURMRQorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSWRsZSBQb3dlcm9mZiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdXRvbcSBdGlza8SBIEl6c2zEk2fFoWFuxIFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXV0b21hYXRpc2thYSBpenNsZWVnc2hhbmFhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0xFRVBfVElNRVIKKyAgZGVzYzogc2xlZXAgdGltZXIgc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNsZWVwIFRpbWVyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1pZWdhIFRhaW1lcmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWllZ2EgdGFpbWVyaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xJTUlUU19NRU5VCisgIGRlc2M6IGluIHRoZSBzeXN0ZW0gc3ViIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMaW1pdHMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSWVyb2Jlxb5vanVtaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImllcm9iZXpob2p1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01BWF9GSUxFU19JTl9ESVIKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1heCBFbnRyaWVzIGluIEZpbGUgQnJvd3NlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJNYWtzLiBGYWlsaSBQxIFybMWra8SBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWFrc2ltYWFsYWlzIGZhaWx1IHNrYWl0cyBwYWFybHV1a2FhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NQVhfRklMRVNfSU5fUExBWUxJU1QKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1heCBQbGF5bGlzdCBTaXplIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1ha3MgU2FyYWtzdGEgSXptxJNycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1ha3NpbWFhbGFpcyBkemllc211IHNhcmFrc3RhIGl6bWVlcnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NBUl9BREFQVEVSX01PREUKKyAgZGVzYzogRGlzcGxheWVkIGZvciBzZXR0aW5nIGNhciBhZGFwdGVyIG1vZGUgdG8gb24vb2ZmCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgY2hhcmdpbmc6ICJDYXIgQWRhcHRlciBNb2RlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiQXV0b21hxaHEq25hcyBSZcW+xKttcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiYXV0b21hc2hpaW5hcyByZXpoaWltcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUxBUk1fTU9EX0FMQVJNX01FTlUKKyAgZGVzYzogVGhlIG5hbWUgb2YgdGhlIGFkZGl0aW9uYWwgZW50cnkgaW4gdGhlIG1haW4gbWVudSBmb3IgdGhlIFJUQyBhbGFybSBtb2QuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJXYWtlLVVwIEFsYXJtIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiTW9kaW7EgXTEgWpzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJtb2RpbmFhdGFhanMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FMQVJNX1dBS0VVUF9TQ1JFRU4KKyAgZGVzYzogaW4gYWxhcm0gbWVudSBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJBbGFybSBXYWtlIHVwIFNjcmVlbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIk1vZGluxIF0xIFqYSBEYXJixKtiYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAibW9kaW5hYXRhYWphIGRhcmJpaWJhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEFSTV9NT0RfVElNRQorICBkZXNjOiBUaGUgY3VycmVudCBhbGFybSB0aW1lIHNob3duIGluIHRoZSBhbGFybSBtZW51IGZvciB0aGUgUlRDIGFsYXJtIG1vZC4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIkFsYXJtIFRpbWU6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiTW9kaW7EgXTEgWphIGxhaWtzOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEFSTV9NT0RfVElNRV9UT19HTworICBkZXNjOiBUaGUgdGltZSB1bnRpbCB0aGUgYWxhcm0gd2lsbCBnbyBvZmYgc2hvd24gaW4gdGhlIGFsYXJtIG1lbnUgZm9yIHRoZSBSVEMgYWxhcm0gbW9kLgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiV2FraW5nIFVwIEluICVkOiUwMmQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJQYW1vxaFhbsSBcyAlZDolMDJkIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJwYW1vc2hhbmFhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUxBUk1fTU9EX1NIVVRET1dOCisgIGRlc2M6IFRoZSB0ZXh0IHRoYXQgdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGUgYWxhcm0gdGltZSBpcyBvayBhbmQgdGhlIGRldmljZSBzaHV0cyBvZmYgKGZvciB0aGUgUlRDIGFsYXJtIG1vZCkuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJBbGFybSBTZXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJNb2RpbsSBdMSBanMgSWVzbMSTZ3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJtb2RpbmFhdGFhanMgaXIgaWVzbGVlZ3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEFSTV9NT0RfRVJST1IKKyAgZGVzYzogVGhlIHRleHQgdGhhdCB0ZWxscyB0aGF0IHRoZSB0aW1lIGlzIGluY29ycmVjdCAoZm9yIHRoZSBSVEMgYWxhcm0gbW9kKS4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIkFsYXJtIFRpbWUgSXMgVG9vIFNvb24hIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiTGFpa3MgaXIgcMSBcsSBayBkcsSreiEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIm1vZGluYWFzaGFuYXMgbGFpa3MgaXIgcGFhcmFhayBkcmlpeiEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FMQVJNX01PRF9LRVlTCisgIGRlc2M6IFNob3duIGtleSBmdW5jdGlvbnMgaW4gYWxhcm0gbWVudSAoZm9yIHRoZSBSVEMgYWxhcm0gbW9kKS4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIlBMQVk9U2V0IE9GRj1DYW5jZWwiCisgICAgaXBvZCo6ICJTRUxFQ1Q9U2V0IE1FTlU9Q2FuY2VsIgorICAgIGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiOiAiU0VMRUNUPVNldCBQUkVWPUNhbmNlbCIKKyAgICBnaWdhYmVhdHM6ICJTRUxFQ1Q9U2V0IFBPV0VSPUNhbmNlbCIKKyAgICB2aWJlNTAwOiAiT0s9U2V0IEM9Q2FuY2VsIgorICAgIG1waW9oZDMwMDogIkVOVEVSPVNldCBNRU5VPUNhbmNlbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhbGFybTogIlBMQVk9VXpzdCBPRkY9QXR0ZWlrdGllcyIKKyAgICBpcG9kKjogIlNFTEVDVD1VenN0IE1FTlU9QXR0ZWlrdGllcyIKKyAgICBpcml2ZXJoMTAsaXJpdmVyaDEwXzVnYjogIlNFTEVDVD1VenN0IFBSRVY9QXR0ZWlrdGllcyIKKyAgICBnaWdhYmVhdHM6ICJTRUxFQ1Q9VXpzdCBQT1dFUj1BdHRlaWt0aWVzIgorICAgIHZpYmU1MDA6ICJPSz1VenN0IEM9QXR0ZWlrdGllcyIKKyAgICBtcGlvaGQzMDA6ICJFTlRFUj1VenN0IE1FTlU9QXR0ZWlrdGllcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFsYXJtLGlwb2QqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BTEFSTV9NT0RfRElTQUJMRQorICBkZXNjOiBBbm5vdW5jZSB0aGF0IHRoZSBSVEMgYWxhcm0gaGFzIGJlZW4gdHVybmVkIG9mZgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFsYXJtOiAiQWxhcm0gRGlzYWJsZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJNb2RpbsSBdMSBanMgSXpzbMSTZ3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWxhcm06ICJtb2RpbmFhdGFhanMgaXpzbGVlZ3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HUworICBkZXNjOiBpbiBnZW5lcmFsIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQm9va21hcmtpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiR3LEgW1hdHrEq21lcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdyYWFtYXR6aWltZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX1NFVFRJTkdTX0FVVE9DUkVBVEUKKyAgZGVzYzogcHJvbXB0IGZvciB1c2VyIHRvIGRlY2lkZSB0byBjcmVhdGUgYW4gYm9va21hcmsKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCb29rbWFyayBvbiBTdG9wIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkdyxIFtYXR6xKttZSBBcHN0xIFqb3RpZXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpenZlaWRvdCBncmFhbWF0emlpbWkgYXBzdGFham90aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19SRUNFTlRfT05MWV9ZRVMKKyAgZGVzYzogU2F2ZSBpbiByZWNlbnQgYm9va21hcmtzIG9ubHkKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJZZXMgLSBSZWNlbnQgb25seSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJKxIEgLSBUaWthaSBwxJNkxJNqbyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImphYSB0aWthaSBwZWVkZWVqbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfU0VUVElOR1NfUkVDRU5UX09OTFlfQVNLCisgIGRlc2M6IFNhdmUgaW4gcmVjZW50IGJvb2ttYXJrcyBvbmx5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXNrIC0gUmVjZW50IG9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSmF1dMSBdCAtIFRpa2FpIHDEk2TEk2pvIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiamF1dGFhdCB0aWthaSBwZWVkZWVqbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfU0VUVElOR1NfQVVUT0xPQUQKKyAgZGVzYzogcHJvbXB0IGZvciB1c2VyIHRvIGRlY2lkZSB0byBjcmVhdGUgYSBib29rbWFyaworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxvYWQgTGFzdCBCb29rbWFyayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJZWzEgWTEk3QgUMSTZMSTam8gR3LEgW1hdHrEq21pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWVsYWFkZWV0IHBlZWRlZWpvIGdyYWFtYXR6aWltaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfU0VUVElOR1NfTUFJTlRBSU5fUkVDRU5UX0JPT0tNQVJLUworICBkZXNjOiBDb25maWd1cmF0aW9uIG9wdGlvbiB0byBtYWludGFpbiBhIGxpc3Qgb2YgcmVjZW50IGJvb2ttYXJrcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1haW50YWluIGEgTGlzdCBvZiBSZWNlbnQgQm9va21hcmtzPyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJVenR1csSTdCBHcsSBbWF0esSrbWp1IFNhcmFrc3R1PyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInZhaSB1enR1cmVldCBwZWVkZWVqbyBncmFhbWF0emlpbWp1IHNhcmFrc3R1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19VTklRVUVfT05MWQorICBkZXNjOiBTYXZlIG9ubHkgb24gYm9va21hcmsgZm9yIGVhY2ggcGxheWxpc3QgaW4gcmVjZW50IGJvb2ttYXJrcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlVuaXF1ZSBvbmx5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlRpa2FpIHVuaWvEgWx1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidGlrYWkgdW5pa2FhbHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xBTkdVQUdFCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMYW5ndWFnZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWYWxvZGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2YWxvZGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xBTkdVQUdFX0xPQURFRAorICBkZXNjOiBzaG93biB3aGVuIGEgbGFuZ3VhZ2UgaGFzIGJlZW4gbG9hZGVkIGZyb20gdGhlIGRpciBicm93c2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTmV3IExhbmd1YWdlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlZhbG9kYSBOb21haW7Eq3RhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmFsb2RhIG5vbWFpbmlpdGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZPSUNFCisgIGRlc2M6IHJvb3Qgb2Ygdm9pY2UgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlZvaWNlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkJhbHNzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYmFsc3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZPSUNFX01FTlUKKyAgZGVzYzogaXRlbSBvZiB2b2ljZSBtZW51LCBlbmFibGUvZGlzYWJsZSB0aGUgdm9pY2UgVUkKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWb2ljZSBNZW51cyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCBJenbEk2xuZXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpenJ1bmFhdCBpenZlZWxuZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZPSUNFX0RJUgorICBkZXNjOiBpdGVtIG9mIHZvaWNlIG1lbnUsIHNldCB0aGUgdm9pY2UgbW9kZSBmb3IgZGlyZWN0b3JpZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWb2ljZSBEaXJlY3RvcmllcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCBNYXBlcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6cnVuYWF0IG1hcGVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0lDRV9ESVJfVEFMSworICBkZXNjOiBJdGVtIG9mIHZvaWNlIG1lbnUsIHdoZXRoZXIgdG8gdXNlIGRpcmVjdG9yeSAudGFsayBjbGlwcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlVzZSBEaXJlY3RvcnkgLnRhbGsgQ2xpcHMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXptYW50b3QgTWFwZXMgLnRhbGsgS2xpcHVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXptYW50b3QgbWFwZXMgLnRhbGsga2xpcHVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0lDRV9GSUxFCisgIGRlc2M6IGl0ZW0gb2Ygdm9pY2UgbWVudSwgc2V0IHRoZSB2b2ljZSBtb2RlIGZvciBmaWxlcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlZvaWNlIEZpbGVuYW1lcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCBGYWlsdSBOb3NhdWt1bXVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpydW5hYXQgZmFpbHUgbm9zYXVrdW11cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVk9JQ0VfRklMRV9UQUxLCisgIGRlc2M6IEl0ZW0gb2Ygdm9pY2UgbWVudSwgd2hldGhlciB0byB1c2UgZmlsZSAudGFsayBjbGlwcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlVzZSBGaWxlIC50YWxrIENsaXBzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6bWFudG90IEZhaWx1IC50YWxrIEtsaXB1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6bWFudG90IGZhaWx1IC50YWxrIGtsaXB1cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVk9JQ0VfTlVNQkVSCisgIGRlc2M6ICJ0YWxrYm94IiBtb2RlIGZvciBmaWxlcytkaXJlY3RvcmllcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk51bWJlcnMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTnVtdXJpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibnVtdXJpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0lDRV9TUEVMTAorICBkZXNjOiAidGFsa2JveCIgbW9kZSBmb3IgZmlsZXMrZGlyZWN0b3JpZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTcGVsbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6cnVuYWF0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0lDRV9ESVJfSE9WRVIKKyAgZGVzYzogInRhbGtib3giIG1vZGUgZm9yIGRpcmVjdG9yaWVzICsgZmlsZXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIudGFsayBDbGlwIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIi50YWxrIEtsaXBzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidGFsayBrbGlwcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTUFOQUdFX01FTlUKKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1hbmFnZSBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSZWRpxKPEk3QgVXpzdMSBZMSranVtdXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJyZWRpZ2plZXQgdXpzdGFhZGlpanVtdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NVU1RPTV9DRkcKKyAgZGVzYzogaW4gc2V0dGluZ19tZW51KCkKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCcm93c2UgLmNmZyBGaWxlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBcGzFq2tvdCAuY2ZnIEZhaWx1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFwbHV1a290IGtvbmZpZ3VyYWFjaWphcyBmYWlsdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFVFRJTkdTX0xPQURFRAorICBkZXNjOiBGZWVkYmFjayBzaG93biB3aGVuIGEgLmNmZyBmaWxlIGlzIGxvYWRlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNldHRpbmdzIExvYWRlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJVenN0xIFkxKtqdW1pIEllbMSBZMSTdGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ1enN0YWFkaWlqdW1pIGllbGFhZGVldGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFU0VUCisgIGRlc2M6IGluIHN5c3RlbV9zZXR0aW5nc19tZW51KCkKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXNldCBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdGdyaWV6dCBOb2tsdXPEk2p1bXUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhdGdyaWV6dCBub2tsdXNlZXRvcyB1enN0YWFkaWlqdW11cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVTRVRfRE9ORV9DTEVBUgorICBkZXNjOiB2aXN1YWwgY29uZmlybWF0aW9uIGFmdGVyIHNldHRpbmdzIHJlc2V0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ2xlYXJlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdGdyaWV6dHMgTm9rbHVzxJNqdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRncmllenRpIG5va2x1c2VldGllIHV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NBVkVfU0VUVElOR1MKKyAgZGVzYzogaW4gc3lzdGVtX3NldHRpbmdzX21lbnUoKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNhdmUgLmNmZyBGaWxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNhZ2xhYsSBdCAuY2ZnIEZhaWx1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2FnbGFiYWF0IGtvbmZpZ3VyYWFjaWphcyBmYWlsdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VUVElOR1NfU0FWRUQKKyAgZGVzYzogRmVlZGJhY2sgc2hvd24gd2hlbiBhIC5jZmcgZmlsZSBpcyBzYXZlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNldHRpbmdzIFNhdmVkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlV6c3TEgWTEq2p1bWkgU2FnbGFixIF0aSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInV6c3RhYWRpaWp1bWkgc2FnbGFiYWF0aSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0FWRV9USEVNRQorICBkZXNjOiBzYXZlIGEgdGhlbWUgZmlsZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNhdmUgVGhlbWUgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2FnbGFixIF0IFTEk21hcyBVenN0xIFkxKtqdW11cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhZ2xhYmFhdCB0ZWVtYXMgdXpzdGFhZGlpanVtdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NVU1RPTV9USEVNRQorICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQnJvd3NlIFRoZW1lIEZpbGVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFwbMWra290IFTEk211IEZhaWx1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFwbHV1a290IHRlZW11IGZhaWx1cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX1NFVFRJTkdTCisgIGRlc2M6IGluIHRoZSBtYWluIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJSZWNvcmRpbmcgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiSWVyYWtzdGEgVXpzdMSBZMSranVtaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImllcmFrc3RhIHV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX01FTlUKKyAgZGVzYzogZm0gbWVudSB0aXRsZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiRk0gUmFkaW8gTWVudSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkZNIFJhZGlvIEl6dsSTbG5lIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJlZiBlbSByYWRpbyBpenZlZWxuZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fTk9fUFJFU0VUUworICBkZXNjOiBlcnJvciB3aGVuIHByZXNldCBsaXN0IGlzIGVtcHR5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJObyBwcmVzZXRzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiTmF2IFN0YWNpanUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIm5hdiBzYWdsYWJhYXR1IHJhZGlvc3RhY2lqdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fQUREX1BSRVNFVAorICBkZXNjOiBpbiByYWRpbyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJBZGQgUHJlc2V0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiUGlldmllbm90IFN0YWNpanUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogInBpZXZpZW5vdCByYWRpb3N0YWNpanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0VESVRfUFJFU0VUCisgIGRlc2M6IGluIHJhZGlvIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiRWRpdCBQcmVzZXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJMYWJvdCBTdGFjaWp1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJsYWJvdCByYWRpb3N0YWNpanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0RFTEVURV9QUkVTRVQKKyAgZGVzYzogaW4gcmFkaW8gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJSZW1vdmUgUHJlc2V0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiSXpkesSTc3QgU3RhY2lqdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiaXpkemVlc3QgcmFkaW9zdGFjaWp1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9QUkVTRVRfU0FWRV9GQUlMRUQKKyAgZGVzYzogaW4gcmFkaW8gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJQcmVzZXQgU2F2ZSBGYWlsZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTdGFjaWp1IE5laXpkZXbEgXMgU2FnbGFixIF0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJyYWRpb3N0YWNpanUgbmVpemRldmFhcyBzYWdsYWJhYXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX05PX0ZSRUVfUFJFU0VUUworICBkZXNjOiBpbiByYWRpbyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIlRoZSBQcmVzZXQgTGlzdCBpcyBGdWxsIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiU2FyYWtzdHMgSXIgUGlsbnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogInNhcmFrc3RzIGlyIHBpbG5zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CVVRUT05CQVJfTUVOVQorICBkZXNjOiBpbiBidXR0b24gYmFyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJNZW51IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiSXp2xJNsbmUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fQlVUVE9OQkFSX0VYSVQKKyAgZGVzYzogaW4gcmFkaW8gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJFeGl0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvX3NjcmVlbl9idXR0b25fYmFyOiAiSXppZXQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fQlVUVE9OQkFSX0FDVElPTgorICBkZXNjOiBpbiByYWRpbyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIkFjdGlvbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIkRhcmLEq2JhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BSRVNFVAorICBkZXNjOiBpbiBidXR0b24gYmFyIGFuZCByYWRpbyBzY3JlZW4gLyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJQcmVzZXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTdGFjaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJyYWRpb3N0YWNpamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0JVVFRPTkJBUl9BREQKKyAgZGVzYzogaW4gcmFkaW8gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJBZGQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW9fc2NyZWVuX2J1dHRvbl9iYXI6ICJQaWV2aWVub3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fQlVUVE9OQkFSX1JFQ09SRAorICBkZXNjOiBpbiByYWRpbyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIlJlY29yZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIkllcmFrc3TEq3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpb19zY3JlZW5fYnV0dG9uX2JhcjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fTU9OT19NT0RFCisgIGRlc2M6IGluIHJhZGlvIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiRm9yY2UgTW9ubyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkllc2zEk2d0IE1vbm8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogImllc2xlZWd0IG1vbm8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0ZSRUVaRQorICBkZXNjOiBzcGxhc2ggc2NyZWVuIGR1cmluZyBmcmVlemUgaW4gcmFkaW8gbW9kZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiU2NyZWVuIGZyb3plbiEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJFa3LEgW5zIFNhc3RpbmR6aXMhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX1NDQU5fUFJFU0VUUworICBkZXNjOiBpbiByYWRpbyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJBdXRvLVNjYW4gUHJlc2V0cyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIk5vc2thbsSTdCBTdGFjaWphcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAibm9za2FuZWV0IHJhZGlvc3RhY2lqYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0NMRUFSX1BSRVNFVFMKKyAgZGVzYzogY29uZmlybWF0aW9uIGlmIHByZXNldHMgY2FuIGJlIGNsZWFyZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkNsZWFyIEN1cnJlbnQgUHJlc2V0cz8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJJemR6xJNzdCBFc2/FocSBcyBTdGFjaWphcz8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogInZhaSBpemR6ZWVzdCBlc29zaGFhcyByYWRpb3N0YWNpamFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9TQ0FOTklORworICBkZXNjOiBkdXJpbmcgYXV0byBzY2FuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTY2FubmluZyAlZC4lMDJkIE1IeiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIlNrYW7EkyAlZC4lMDJkIE1IeiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9ERUZBVUxUX1BSRVNFVF9OQU1FCisgIGRlc2M6IGRlZmF1bHQgcHJlc2V0IG5hbWUgZm9yIGF1dG8gc2NhbiBtb2RlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICIlZC4lMDJkIE1IeiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIiVkLiUwMmQgTUh6IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JBRElPX1NDQU5fTU9ERQorICBkZXNjOiBpbiByYWRpbyBzY3JlZW4gLyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTY2FuIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiU2thbsSTdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAic2thbmVldCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fUFJFU0VUX0xPQUQKKyAgZGVzYzogbG9hZCBwcmVzZXQgbGlzdCBpbiBmbSByYWRpbworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiTG9hZCBQcmVzZXQgTGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkllbMSBZMSTdCBTdGFjaWphcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiaWVsYWFkZWV0IHJhZGlvc3RhY2lqYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX1BSRVNFVF9TQVZFCisgIGRlc2M6IFNhdmUgcHJlc2V0IGxpc3QgaW4gZm0gcmFkaW8KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIlNhdmUgUHJlc2V0IExpc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTYWdsYWLEgXQgU3RhY2lqYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogInNhZ2xhYmFhdCByYWRpb3N0YWNpamFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9QUkVTRVRfQ0xFQVIKKyAgZGVzYzogY2xlYXIgcHJlc2V0IGxpc3QgaW4gZm0gcmFkaW8KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkNsZWFyIFByZXNldCBMaXN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiSXpkesSTc3QgU3RhY2lqYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIml6ZHplZXN0IHJhZGlvc3RhY2lqYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNUgorICBkZXNjOiBVc2VkIHdoZW4geW91IG5lZWQgdG8gc2F5IFByZXNldCBMaXN0LCBhbHNvIHZvaWNlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiUHJlc2V0IExpc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTdGFjaWp1IFNhcmFrc3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJyYWRpb3N0YWNpanUgc2FyYWtzdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0ZJUlNUX0FVVE9TQ0FOCisgIGRlc2M6IFdoZW4geW91IHJ1biB0aGUgcmFkaW8gd2l0aG91dCBhbiBmbXIgZmlsZSBpbiBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiTm8gc2V0dGluZ3MgZm91bmQuIEF1dG9zY2FuPyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIk5hdiBVenN0xIFkxKtqdW11LiBTa2FuxJN0PyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAibmF2IHV6c3RhYWRpaWp1bXUuIHZhaSBza2FuZWV0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9TQVZFX0NIQU5HRVMKKyAgZGVzYzogZGVwcmVjYXRlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX1JFR0lPTgorICBkZXNjOiBmbSB0dW5lciByZWdpb24gc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiUmVnaW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiUmXEo2lvbnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogInJlZ2ppb25zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GTV9FVVJPUEUKKyAgZGVzYzogZm0gdHVuZXIgcmVnaW9uIGV1cm9wZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiRXVyb3BlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiRWlyb3BhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJlaXJvcGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX1VTCisgIGRlc2M6IGZtIHJlZ2lvbiB1cyAvIGNhbmFkYQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiVVMgLyBDYW5hZGEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJBU1YgLyBLYW7EgWRhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJhc3YgdW4ga2FuYWFkYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fSkFQQU4KKyAgZGVzYzogZm0gcmVnaW9uIGphcGFuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJKYXBhbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkphcMSBbmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogImphcGFhbmEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZNX0tPUkVBCisgIGRlc2M6IGZtIHJlZ2lvbiBrb3JlYQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiS29yZWEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJLb3JlamEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogImtvcmVqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX0ZPUk1BVAorICBkZXNjOiBhdWRpbyBmb3JtYXQgaXRlbSBpbiByZWNvcmRpbmcgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkZvcm1hdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJGb3JtxIF0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImZvcm1hYXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BRk1UX01QQV9MMworICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJNUEVHIExheWVyIDMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTVBFRyBMYXllciAzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTVBFRyBMYXllciAzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BRk1UX1BDTV9XQVYKKyAgZGVzYzogYXVkaW8gZm9ybWF0IGRlc2NyaXB0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUENNIFdhdmUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUENNIFdhdmUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJQQ00gV2F2ZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUZNVF9XQVZQQUNLCisgIGRlc2M6IGF1ZGlvIGZvcm1hdCBkZXNjcmlwdGlvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZ19zd2NvZGVjOiAiV2F2UGFjayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfc3djb2RlYzogIldhdlBhY2siCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfc3djb2RlYzogIldhdlBhY2siCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FGTVRfQUlGRgorICBkZXNjOiBhdWRpbyBmb3JtYXQgZGVzY3JpcHRpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJBSUZGIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkFJRkYiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJBSUZGIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19FTkNPREVSX1NFVFRJTkdTCisgIGRlc2M6IGVuY29kZXIgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJFbmNvZGVyIFNldHRpbmdzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIktvZMSTanVtYSBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAia29kZWVqdW1hIHV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JJVFJBVEUKKyAgZGVzYzogYml0cy1raWxvYml0cyBwZXIgdW5pdCB0aW1lCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJCaXRyYXRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZ19zd2NvZGVjOiAiQml0cmVpdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfc3djb2RlYzogImJpdHJlaXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19OT19TRVRUSU5HUworICBkZXNjOiB3aGVuIHNvbWV0aGluZyBoYXMgc2V0dGluZ3MgaW4gYSBjZXJ0YWluIGNvbnRleHQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICIoTm8gU2V0dGluZ3MpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIihOYXYgVXpzdMSBZMSranVtdSkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJuYXYga28gdXpzdGFhZGlpdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX1FVQUxJVFkKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZ19od2NvZGVjOiAiUXVhbGl0eSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogIkt2YWxpdMSBdGUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogImt2YWxpdGFhdGUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19GUkVRVUVOQ1kKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkZyZXF1ZW5jeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJGcmVrdmVuY2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJmcmVrdmVuY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NPVVJDRV9GUkVRVUVOQ1kKKyAgZGVzYzogd2hlbiByZWNvcmRpbmcgc291cmNlIGZyZXF1ZW5jeSBzZXR0aW5nIG11c3QgZm9sbG93IHNvdXJjZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIihTYW1lIEFzIFNvdXJjZSkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiKEvEgSBBdm90cykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJ0YWFkcyBwYXRzIGthYSBhdm90cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX1NPVVJDRQorICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU291cmNlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkF2b3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiYXZvdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19TUkNfTUlDCisgIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJNaWNyb3Bob25lIgorICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiSW50ZXJuYWwgTWljcm9waG9uZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJNaWtyb2ZvbnMiCisgICAgaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDA6ICJJZXbFq3bEk3RhaXMgTWlrcm9mb25zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAibWlrcm9mb25zIgorICAgIGlyaXZlcmgxMDAsaXJpdmVyaDEyMCxpcml2ZXJoMzAwOiAiaWVidXV2ZWV0YWlzIG1pa3JvZm9ucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX1NSQ19ESUdJVEFMCisgIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJEaWdpdGFsIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkRpZ2l0xIFscyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImRpZ2l0YWFscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTElORV9JTgorICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nLGFyY2hvc3BsYXllcjogIkxpbmUgSW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nLGFyY2hvc3BsYXllcjogIkxpbmXEgXLEgSBJZWVqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZyxhcmNob3NwbGF5ZXI6ICJsaW5lYWFyYWEgaWVlamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19FRElUQUJMRQorICBkZXNjOiBFZGl0YWJsZSByZWNvcmRpbmdzIHNldHRpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogIkluZGVwZW5kZW50IEZyYW1lcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogIk5lYXRrYXLEq2dpIEthZHJpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX2h3Y29kZWM6ICJuZWF0a2FyaWlnaSBrYWRyaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1RJTUVTUExJVAorICBkZXNjOiBSZWNvcmQgc3BsaXQgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkZpbGUgU3BsaXQgT3B0aW9ucyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJGYWlsdSBTYWRhbMSrxaFhbmFzIE9wY2lqYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJmYWlsdSBzYWRhbGlpc2hhbmFzIG9wY2lqYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NQTElUX01FQVNVUkUKKyAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3BsaXQgTWVhc3VyZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTYWRhbMSrxaFhbmFzIEtyaXTEk3JpanMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJzYWRhbGlpc2hhbmFzIGtyaXRlZXJpanMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NQTElUX1RZUEUKKyAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiV2hhdCB0byBkbyB3aGVuIFNwbGl0dGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJLbyBEYXLEq3QgUMSTYyBTYWRhbMSrxaFhbmFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAia28gZGFyaWl0IHBlZWMgc2FkYWxpaXNoYW5hcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RBUlRfTkVXX0ZJTEUKKyAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3RhcnQgbmV3IGZpbGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU8SBa3QgSmF1bnUgRmFpbHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJzYWFrdCBqYXVudSBmYWlsdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RPUF9SRUNPUkRJTkcKKyAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3RvcCByZWNvcmRpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiQmVpZ3QgSWVyYWtzdHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJiZWlndCBpZXJha3N0dSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1BMSVRfVElNRQorICBkZXNjOiBpbiByZWNvcmQgdGltZXNwbGl0IG9wdGlvbnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTcGxpdCBUaW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlNhZGFsxKvFoWFuYXMgTGFpa3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJzYWRhbGlpc2hhbmFzIGxhaWtzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TUExJVF9TSVpFCisgIGRlc2M6IGluIHJlY29yZCB0aW1lc3BsaXQgb3B0aW9ucworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlNwbGl0IEZpbGVzaXplIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlNhZGFsxKvFoWFuYXMgSXptxJNycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogInNhZGFsaWlzaGFuYXMgaXptZWVycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1BSRVJFQ09SRF9USU1FCisgIGRlc2M6IGluIHJlY29yZGluZyBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUHJlcmVjb3JkIFRpbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUGlybXNpZXJha3N0YSBMYWlrcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogInBpcm1zaWVyYWtzdGEgbGFpa3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRF9ESVJFQ1RPUlkKKyAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJEaXJlY3RvcnkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTWFwZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIm1hcGUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFVF9BU19SRUNfRElSCisgIGRlc2M6IHVzZWQgaW4gdGhlIG9ucGxheSBtZW51IHRvIHNldCBhIHJlY29yZGluZyBkaXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTZXQgQXMgUmVjb3JkaW5nIERpcmVjdG9yeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJVemxpa3QgUGFyIEllcmFrc3RhIE1hcGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJ1emxpa3QgcGFyIGllcmFrc3RhIG1hcGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NMRUFSX1JFQ19ESVIKKyAgZGVzYzoKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJDbGVhciBSZWNvcmRpbmcgRGlyZWN0b3J5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlDEgXJzdGF0xKt0IEllcmFrc3RhIE1hcGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJwYWFyc3RhdGlpdCBpZXJha3N0YSBtYXBpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNfRElSX05PVF9XUklUQUJMRQorICBkZXNjOgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkNhbid0IHdyaXRlIHRvIHJlY29yZGluZyBkaXJlY3RvcnkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTmV2YXIgc2FnbGFixIF0IGllcmFrc3RhIG1hcMSTIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAibmV2YXIgc2FnbGFiYWF0IGllcmFrc3RhIG1hcGVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DTElQX0xJR0hUCisgIGRlc2M6IGluIHJlY29yZCBzZXR0aW5ncyBtZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkNsaXBwaW5nIExpZ2h0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlDEgXJsxKttZcWGYSBHYWlzbWEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJwYWFybGlpbWVuamEgZ2Fpc21hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NQUlOX1VOSVQKKyAgZGVzYzogaW4gcmVjb3JkIHNldHRpbmdzIG1lbnUuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiTWFpbiBVbml0IE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiVGlrYWkgVXogRWtyxIFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogInRpa2FpIHV6IGVrcmFhbmEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9VTklUCisgIGRlc2M6IGluIHJlY29yZCBzZXR0aW5ncyBtZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZSBVbml0IE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiVGlrYWkgVXogUHVsdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICJ0aWthaSB1eiBwdWx0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVNT1RFX01BSU4KKyAgZGVzYzogaW4gcmVjb3JkIHNldHRpbmdzIG1lbnUuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiTWFpbiBhbmQgUmVtb3RlIFVuaXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiVXogRWtyxIFuYSBVbiBQdWx0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogInV6IGVrcmFhbmEgdW4gcHVsdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRF9UUklHR0VSCisgIGRlc2M6IGluIHJlY29yZGluZyBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVHJpZ2dlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJQYWxhaWTEk2pzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiaWVyYWtzdGEgcGFsYWlkZWVqcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1RSSUdfTk9SRUFSTQorICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIk9uY2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVmllbnJlaXoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJ2aWVucmVpeiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1RSSUdHRVJfVFlQRQorICBkZXNjOiBpbiByZWNvcmRpbmcgdHJpZ2dlciBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVHJpZ3R5cGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVmVpZHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJ2ZWlkcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1RSSUdHRVJfTkVXRklMRVNUUAorICBkZXNjOiB0cmlnZ2VyIHR5cGVzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTmV3IGZpbGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiSmF1bnMgRmFpbHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJqYXVucyBmYWlscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1RSSUdHRVJfU1RPUAorICBkZXNjOiB0cmlnZ2VyIHR5cGVzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3RvcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJBcHN0xIF0aWVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiYXBzdGFhdGllcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1NUQVJUX1RIUkVTSE9MRAorICBkZXNjOiBpbiByZWNvcmRpbmcgc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlN0YXJ0IEFib3ZlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlPEgWt0IFZpcnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJzYWFrdCB2aXJzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NSU5fRFVSQVRJT04KKyAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJmb3IgYXQgbGVhc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUMSTYyBWaXNtYXoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJwZWVjIHZpc21heiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1NUT1BfVEhSRVNIT0xECisgIGRlc2M6IGluIHJlY29yZGluZyBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3RvcCBCZWxvdyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJBcHN0xIF0aWVzIFplbSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImFwc3RhYXRpZXMgemVtIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNPUkRfU1RPUF9HQVAKKyAgZGVzYzogaW4gcmVjb3JkaW5nIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJQcmVzcGxpdCBHYXAiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUGlybXNzYWRhbGVzIFNwcmF1Z2EiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJwaXJtc3NhZGFsZXMgc3ByYXVnYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JEX1BSRVJFQ09SRAorICBkZXNjOiBpbiByZWNvcmRpbmcgYW5kIHJhZGlvIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlByZS1SZWNvcmRpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUGlybXNpZXJha3N0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUdDX1NBRkVUWQorICBkZXNjOiBBR0MgcHJlc2V0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWdjOiAiU2FmZXR5IChjbGlwKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJEcm/FocSrYmEgKFNrYcS8dW1zKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogIkRyb3NoaWliYSAoc2thbGp1bXMpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BR0NfTElWRQorICBkZXNjOiBBR0MgcHJlc2V0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWdjOiAiTGl2ZSAoc2xvdykiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWdjOiAiS29uY2VydHMgKGzEk25pKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogImtvbmNlcnRzIChsZWVuaSkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FHQ19ESlNFVAorICBkZXNjOiBBR0MgcHJlc2V0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgYWdjOiAiREotU2V0IChzbG93KSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJSZXBzIChsxJNuaSkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJyZXBzIChsZWVuaSkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FHQ19NRURJVU0KKyAgZGVzYzogQUdDIHByZXNldAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogIk1lZGl1bSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJWaWTEk2ppIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWdjOiAidmlkZWVqaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUdDX1ZPSUNFCisgIGRlc2M6IEFHQyBwcmVzZXQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJWb2ljZSAoZmFzdCkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWdjOiAiQmFsc3MgKMSBdHJpKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogImJhbHNzIChhYXRyaSkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9MQ0RfT0ZGCisgIGRlc2M6IFJlbW90ZSBsY2Qgb2ZmIHNwbGFzaCBpbiByZWNvcmRpbmcgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiUmVtb3RlIERpc3BsYXkgT0ZGIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlB1bHRzIEVrcsSBbnMgSXpzbMSTZ3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgZWtyYWFucyBpenNsZWVndHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9MQ0RfT04KKyAgZGVzYzogUmVtb3RlIGxjZCBvZmYgc3BsYXNoIGluIHJlY29yZGluZyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICIoVm9sLSA6IFJlLWVuYWJsZSkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiKFNrYcS8dW1zLSA6IEllc2zEk2d0KSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogInNwaWVzdCBza2FsanVtdSBsYWkgaWVzbGVlZ3R1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DUkVBVEVfUExBWUxJU1QKKyAgZGVzYzogTWVudSBvcHRpb24gZm9yIGNyZWF0aW5nIGEgcGxheWxpc3QKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDcmVhdGUgUGxheWxpc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXp2ZWlkb3QgU2FyYWtzdHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpenZlaWRvdCBzYXJha3N0dSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUxJU1RWSUVXRVJfU0VUVElOR1MKKyAgZGVzYzogdGl0bGUgZm9yIHRoZSBwbGF5bGlzdCB2aWV3ZXIgc2V0dGluZ3MgbWVudXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQbGF5bGlzdCBWaWV3ZXIgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2FyYWtzdHUgU2thdMSrdMSBamEgVXpzdMSBZMSranVtaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhcmFrc3R1IHNrYXRpaXRhYWphIHV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZJRVdfRFlOQU1JQ19QTEFZTElTVAorICBkZXNjOiBpbiBwbGF5bGlzdCBtZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlZpZXcgQ3VycmVudCBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBcGzFq2tvdCBQYXRyZWl6xJNqbyBTYXJha3N0dSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFwbHV1a290IHBhdHJlaXplZWpvIHNhcmFrc3R1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT1ZFCisgIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBNb3ZlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTW92ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQxIFydmlldG90IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFhcnZpZXRvdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0hPV19JTkRJQ0VTCisgIGRlc2M6IGluIHBsYXlsaXN0IHZpZXdlciBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2hvdyBJbmRpY2VzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlLEgWTEq3QgSW5kZWtzdXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJyYWFkaWl0IGluZGVrc3VzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UUkFDS19ESVNQTEFZCisgIGRlc2M6IGluIHBsYXlsaXN0IHZpZXdlciBvbitwbGF5IG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJUcmFjayBEaXNwbGF5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBhcsSBZMSrdCBEemllc211IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFyYWFkaWl0IGR6aWVzbXUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJU1BMQVlfVFJBQ0tfTkFNRV9PTkxZCisgIGRlc2M6IHRyYWNrIGRpc3BsYXkgb3B0aW9ucworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRyYWNrIE5hbWUgT25seSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJUaWthaSBOb3NhdWt1bXUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0aWthaSBub3NhdWt1bXUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9WRQorICBkZXNjOiBpbiBwbGF5bGlzdCB2aWV3ZXIgb24rcGxheSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVtb3ZlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFpenbEgWt0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYWl6dmFha3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NBVkVfRFlOQU1JQ19QTEFZTElTVAorICBkZXNjOiBpbiBwbGF5bGlzdCBtZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNhdmUgQ3VycmVudCBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYWdsYWLEgXQgUGF0cmVpesSTam8gU2FyYWtzdHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzYWdsYWJhYXQgcGF0cmVpemVlam8gc2FyYWtzdHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BMQVlMSVNUX1NBVkVfQ09VTlQKKyAgZGVzYzogc3BsYXNoIG51bWJlciBvZiB0cmFja3Mgc2F2ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTYXZlZCAlZCB0cmFja3MgKCVzKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYWdsYWLEgXRhcyAlZCBkemllc21hcyAoJXMpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2FnbGFiYWF0YXMgZHppZXNtYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NBVEFMT0cKKyAgZGVzYzogaW4gbWFpbiBtZW51IGFuZCBvbnBsYXkgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBsYXlsaXN0IENhdGFsb2d1ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYXJha3N0dSBLYXRhbG9ncyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhcmFrc3R1IGthdGFsb2dzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNVUlNFX0RJUkVDVE9SWQorICBkZXNjOiBJbiBwbGF5bGlzdCBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVjdXJzaXZlbHkgSW5zZXJ0IERpcmVjdG9yaWVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIklldmlldG90IE1hcGVzIEFyIEFwYWvFoW1hcMSTbSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImlldmlldG90IG1hcGVzIGFyIGFwYWtzaG1hcGVlbSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDVVJTRV9ESVJFQ1RPUllfUVVFU1RJT04KKyAgZGVzYzogQXNrZWQgZnJvbSBvbnBsYXkgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVjdXJzaXZlbHk/IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFyIEFwYWvFoW1hcMSTbT8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2YWkgYXIgYXBha3NobWFwZWVtIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19XQVJOX0VSQVNFRFlOUExBWUxJU1RfTUVOVQorICBkZXNjOiBpbiBwbGF5bGlzdCBvcHRpb25zIG1lbnUsIG9wdGlvbiB0byB3YXJuIHdoZW4gZXJhc2luZyBkeW5hbWljIHBsYXlsaXN0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiV2FybiBXaGVuIEVyYXNpbmcgRHluYW1pYyBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJCcsSrZGluxIF0IER6xJPFoW90IERpbmFtaXNrdSBzYXJha3N0dSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJyaWlkaW5hYXQgZHplZXNob3QgZGluYW1pc2t1IHNhcmFrc3R1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19XQVJOX0VSQVNFRFlOUExBWUxJU1RfUFJPTVBUCisgIGRlc2M6IHByb21wdCBzaG93biB3aGVuIGFib3V0IHRvIGVyYXNlIGEgbW9kaWZpZWQgZHluYW1pYyBwbGF5bGlzdAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkVyYXNlIGR5bmFtaWMgcGxheWxpc3Q/IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk3N0IERpbmFtaXNrdSBTYXJha3N0dT8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2YWkgaXpkemVlc3QgZGluYW1pc2t1IHNhcmFrc3R1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSFVURE9XTgorICBkZXNjOiBpbiBtYWluIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzb2Z0X3NodXRkb3duOiAiU2h1dCBkb3duIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHNvZnRfc2h1dGRvd246ICJJenNsxJNndCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHNvZnRfc2h1dGRvd246ICJpenNsZWVndCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUk9DS0JPWF9JTkZPCisgIGRlc2M6IGRpc3BsYXllZCB0b3Btb3N0IG9uIHRoZSBpbmZvIHNjcmVlbiBhbmQgaW4gdGhlIGluZm8gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlJvY2tib3ggSW5mbyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQYXIgUm9ja2JveCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhciByb2NrYm94IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CVUZGRVJfU1RBVAorICBkZXNjOiB0aGUgYnVmZmVyIHNpemUsICVkIE1CICVkIGZyYWN0aW9uIG9mIE1CCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQnVmZmVyOiIKKyAgICBhcmNob3NwbGF5ZXI6ICJCdWY6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkJ1ZmVyaXM6IgorICAgIGFyY2hvc3BsYXllcjogIkJ1ZjoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJidWZlcmEgaXptZWVycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFUVEVSWV9USU1FCisgIGRlc2M6IGJhdHRlcnkgbGV2ZWwgaW4gJSBhbmQgZXN0aW1hdGVkIHRpbWUgcmVtYWluaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQmF0dGVyeTogJWQlJSAlZGggJWRtIgorICAgIGFyY2hvc3BsYXllcixhcmNob3NyZWNvcmRlcixhcmNob3NmbXJlY29yZGVyLGFyY2hvc3JlY29yZGVydjIsYXJjaG9zb25kaW8qLGlyaXZlcmlmcDd4eDogIiVkJSUgJWRoICVkbSIKKyAgICBpcml2ZXJoMTAsaXBvZG1pbmkxZyxpcG9kbWluaTJnOiAiQmF0dDogJWQlJSAlZGggJWRtIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkJhdGVyaWphOiAlZCUlICVkcyAlZG0iCisgICAgYXJjaG9zcGxheWVyLGFyY2hvc3JlY29yZGVyLGFyY2hvc2ZtcmVjb3JkZXIsYXJjaG9zcmVjb3JkZXJ2MixhcmNob3NvbmRpbyosaXJpdmVyaWZwN3h4OiAiJWQlJSAlZHMgJWRtIgorICAgIGlyaXZlcmgxMCxpcG9kbWluaTFnLGlwb2RtaW5pMmc6ICJCYXQ6ICVkJSUgJWRzICVkbSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJhdGVyaWphcyBsaWltZW5pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRElTS19TSVpFX0lORk8KKyAgZGVzYzogZGlzayBzaXplIGluZm8KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEaXNrOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdG1pxYZhOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImF0bWluamFzIGl6bWVlcnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJU0tfRlJFRV9JTkZPCisgIGRlc2M6IGRpc2sgc2l6ZSBpbmZvCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRnJlZToiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQnLEq3ZzOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImJyaWl2YWEgdmlldGE6IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ESVNLX05BTUVfSU5URVJOQUwKKyAgZGVzYzogaW4gaW5mbyBtZW51OyBuYW1lIGZvciBpbnRlcm5hbCBkaXNrIHdpdGggbXVsdGl2b2x1bWUgKGtlZXAgc2hvcnQhKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIG11bHRpdm9sdW1lOiAiSW50OiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBtdWx0aXZvbHVtZTogIkllxLfFoToiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBtdWx0aXZvbHVtZTogImlla3NoZWVqYWlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ESVNLX05BTUVfTU1DCisgIGRlc2M6IGluIGluZm8gbWVudTsgIG5hbWUgZm9yIGV4dGVybmFsIGRpc2sgd2l0aCBtdWx0aXZvbHVtZSAoT25kaW87IGtlZXAgc2hvcnQhKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIG11bHRpdm9sdW1lOiAiSEQxIgorICAgIHNhbnNhZTIwMCosc2Fuc2FjMjAwKixzYW5zYWZ1emUqLHNhbnNhY2xpcHBsdXM6ICJtU0Q6IgorICAgIGFyY2hvc29uZGlvKjogIk1NQzoiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbXVsdGl2b2x1bWU6ICJIRDEiCisgICAgc2Fuc2FlMjAwKixzYW5zYWMyMDAqLHNhbnNhZnV6ZSosc2Fuc2FjbGlwcGx1czogIk1TRDoiCisgICAgYXJjaG9zb25kaW8qOiAiTU1DOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIG11bHRpdm9sdW1lOiAiaGFhIGRlZSB2aWVucyIKKyAgICBzYW5zYWUyMDAqLHNhbnNhYzIwMCosc2Fuc2FmdXplKjogIm1pa3JvIGVzIGRlZSIKKyAgICBhcmNob3NvbmRpbyo6ICJlbSBlbSBjZWUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1ZFUlNJT04KKyAgZGVzYzogaW4gdGhlIFJvY2tib3ggSW5mbyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWZXJzaW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlZlcnNpamEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2ZXJzaWphIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SVU5OSU5HX1RJTUUKKyAgZGVzYzogaW4gcnVuIHRpbWUgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUnVubmluZyBUaW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkllc2zEk2d0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImllc2xlZWd0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVE9QX1RJTUUKKyAgZGVzYzogaW4gcnVuIHRpbWUgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiVG9wIFRpbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSWxnxIFrYWlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWxnYWFrYWlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DTEVBUl9USU1FCisgIGRlc2M6IGluIHJ1biB0aW1lIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNsZWFyIFRpbWU/IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk3N0IExhaWt1PyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInZhaSBpemR6ZWVzdCBsYWlrdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfREVCVUcKKyAgZGVzYzogaW4gdGhlIGluZm8gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkRlYnVnIChLZWVwIE91dCEpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkvEvMWrZGFzIChOZWFpenRpZWMhKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtsanV1ZGFzIG5lYWl6dGllYyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUxJU1QKKyAgZGVzYzogVXNlZCB3aGVuIHlvdSBuZWVkIHRvIHNheSBwbGF5bGlzdCwgYWxzbyB2b2ljZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYXJha3N0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhcmFrc3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JTlNFUlQKKyAgZGVzYzogaW4gb25wbGF5IG1lbnUuICBpbnNlcnQgYSB0cmFjay9wbGF5bGlzdCBpbnRvIGR5bmFtaWMgcGxheWxpc3QuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSW5zZXJ0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIklldmlldG90IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWV2aWV0b3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lOU0VSVF9GSVJTVAorICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIGluc2VydCBhIHRyYWNrL3BsYXlsaXN0IGludG8gZHluYW1pYyBwbGF5bGlzdC4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJJbnNlcnQgTmV4dCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJZXZpZXRvdCBOxIFrYW1vIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWV2aWV0b3QgTmFha2FtbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSU5TRVJUX0xBU1QKKyAgZGVzYzogaW4gb25wbGF5IG1lbnUuICBhcHBlbmQgYSB0cmFjay9wbGF5bGlzdCBpbnRvIGR5bmFtaWMgcGxheWxpc3QuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSW5zZXJ0IExhc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSWV2aWV0b3QgUMSTZMSTam8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpZXZpZXRvdCBwZWVkZWVqbyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSU5TRVJUX1NIVUZGTEVECisgIGRlc2M6IGluIG9ucGxheSBtZW51LiAgaW5zZXJ0IGEgdHJhY2svcGxheWxpc3QgcmFuZG9tbHkgaW50byBkeW5hbWljIHBsYXlsaXN0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSW5zZXJ0IFNodWZmbGVkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIklldmlldG90IFNhamF1a3RpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWV2aWV0b3Qgc2FqYXVrdGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1FVRVVFCisgIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBRdWV1ZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlF1ZXVlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlJpbmRhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicmluZGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1FVRVVFX0ZJUlNUCisgIGRlc2M6IGluIG9ucGxheSBtZW51LiAgcXVldWUgYSB0cmFjay9wbGF5bGlzdCBpbnRvIGR5bmFtaWMgcGxheWxpc3QuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUXVldWUgTmV4dCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSaW5kxIEgTsSBa2FtbyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJpbmRhYSBuYWFrYW1vIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19RVUVVRV9MQVNUCisgIGRlc2M6IGluIG9ucGxheSBtZW51LiAgcXVldWUgYSB0cmFjay9wbGF5bGlzdCBhdCBlbmQgb2YgcGxheWxpc3QuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUXVldWUgTGFzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSaW5kxIEgUMSTZMSTam8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJyaW5kxIEgcGVlZGVlam8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1FVRVVFX1NIVUZGTEVECisgIGRlc2M6IGluIG9ucGxheSBtZW51LiAgcXVldWUgYSB0cmFjay9wbGF5bGlzdCByYW5kb21seSBpbnRvIGR5bmFtaWMgcGxheWxpc3QKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJRdWV1ZSBTaHVmZmxlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJSaW5kxIEgU2FqYXVrdGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJyaW5kYWEgc2FqYXVrdGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFUExBQ0UKKyAgZGVzYzogaW4gb25wbGF5IG1lbnUuICBSZXBsYWNlIHRoZSBjdXJyZW50IHBsYXlsaXN0IHdpdGggYSBuZXcgb25lLgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBsYXkgTmV4dCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdHNrYcWGb3QgTsSBa2FtbyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImF0c2thbmpvdCBuYWFrYW1vIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZTElTVF9JTlNFUlRfQ09VTlQKKyAgZGVzYzogc3BsYXNoIG51bWJlciBvZiB0cmFja3MgaW5zZXJ0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJJbnNlcnRlZCAlZCB0cmFja3MgKCVzKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJZXZpZXRvdGFzICVkIGR6aWVzbWFzICglcykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpZXZpZXRvdGFzIGR6aWVzbWFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZTElTVF9RVUVVRV9DT1VOVAorICBkZXNjOiBzcGxhc2ggbnVtYmVyIG9mIHRyYWNrcyBxdWV1ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJRdWV1ZWQgJWQgdHJhY2tzICglcykiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUmluZMSBICVkIGR6aWVzbWFzICglcykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpZXZpZXRvdGFzIHJpbmRhYSBkemllc21hcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVklFVworICBkZXNjOiBpbiBvbitwbGF5IG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWaWV3IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFwbMWra290IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXBsdXVrb3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFQVJDSF9JTl9QTEFZTElTVAorICBkZXNjOiBpbiBwbGF5bGlzdCBtZW51LgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNlYXJjaCBJbiBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJNZWtsxJN0IFNhcmFrc3TEgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1la2xlZXQgc2FyYWtzdGFhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZTElTVF9TRUFSQ0hfTVNHCisgIGRlc2M6IHNwbGFzaCBudW1iZXIgb2YgdHJhY2tzIGluc2VydGVkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2VhcmNoaW5nLi4uICVkIGZvdW5kICglcykiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTWVrbMSTLi4uICVkIGF0cmFzdGFzICglcykiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NIVUZGTEVfUExBWUxJU1QKKyAgZGVzYzogaW4gcGxheWxpc3QgbWVudSwgcmVzaHVmZmxlcyB0aGUgb3JkZXIgaW4gd2hpY2ggc29uZ3MgYXJlIHBsYXllZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlJlc2h1ZmZsZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQxIFya8SBcnRvdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhYXJrYWFydG90IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DQVRBTE9HX1ZJRVcKKyAgZGVzYzogaW4gb25wbGF5IHBsYXlsaXN0IGNhdGFsb2d1ZSBzdWJtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiVmlldyBDYXRhbG9ndWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXBsxatrb3QgS2F0YWxvZ3UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhcGx1dWtvdCBrYXRhbG9ndSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ0FUQUxPR19BRERfVE8KKyAgZGVzYzogaW4gb25wbGF5IHBsYXlsaXN0IGNhdGFsb2d1ZSBzdWJtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQWRkIHRvIFBsYXlsaXN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBpZXZpZW5vdCBTYXJha3N0YW0iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwaWV2aWVub3Qgc2FyYWtzdGFtIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DQVRBTE9HX0FERF9UT19ORVcKKyAgZGVzYzogaW4gb25wbGF5IHBsYXlsaXN0IGNhdGFsb2d1ZSBzdWJtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQWRkIHRvIE5ldyBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQaWV2aWVub3QgSmF1bmFtIFNhcmFrc3RhbSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBpZXZpZW5vdCBqYXVuYW0gc2FyYWtzdGFtIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DQVRBTE9HX05PX0RJUkVDVE9SWQorICBkZXNjOiBlcnJvciBtZXNzYWdlIHdoZW4gcGxheWxpc3QgY2F0YWxvZ3VlIGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiJXMgZG9lc24ndCBleGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIlcyBuZXBhc3TEgXYiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzYXJha3N0YSBtYXBlIG5lcGFzdGFhdiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ0FUQUxPR19OT19QTEFZTElTVFMKKyAgZGVzYzogZXJyb3IgbWVzc2FnZSB3aGVuIG5vIHBsYXlsaXN0cyBmb3IgcGxheWxpc3QgY2F0YWxvZ3VlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTm8gUGxheWxpc3RzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5hdiBTYXJha3N0dSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5hdiBzYXJha3N0dSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfTUVOVQorICBkZXNjOiBUZXh0IG9uIG1haW4gbWVudSB0byBnZXQgdG8gYm9va21hcmsgY29tbWFuZHMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCb29rbWFya3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiR3LEgW1hdHrEq21lcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdyYWFtYXR6aWltZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT0tNQVJLX01FTlVfQ1JFQVRFCisgIGRlc2M6IFVzZWQgb2ZmIG9mIHRoZSBib29rbWFyayBtZW51IHRvIGNyZWF0ZSBhIGJvb2ttYXJrCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ3JlYXRlIEJvb2ttYXJrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6dmVpZG90IEdyxIFtYXR6xKttaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6dmVpZG90IGdyYWFtYXR6aWltaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9PS01BUktfTUVOVV9MSVNUCisgIGRlc2M6IFVzZWQgb2ZmIG9mIHRoZSBib29rbWFyayBtZW51IHRvIGxpc3QgYXZhaWxhYmxlIGJvb2ttYXJrcyBmb3IgdGhlIGN1cnJlbnRseSBwbGF5aW5nIGRpcmVjdG9yeSBvciBNM1UKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMaXN0IEJvb2ttYXJrcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYWvEgXJ0b3QgR3LEgW1hdHrEq21lcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNha2FhcnRvdCBncmFhbWF0emlpbWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19PTlBMQVlfTUVOVV9USVRMRQorICBkZXNjOiB0aXRsZSBmb3IgdGhlIG9ucGxheSBtZW51cworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNvbnRleHQgTWVudSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenbEk2xuZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6dmVlbG5lIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NRU5VX1NFVF9SQVRJTkcKKyAgZGVzYzogU2V0IHRoZSByYXRpbmcgb2YgYSBmaWxlIGluIHRoZSB3cHMgY29udGV4dCBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2V0IFNvbmcgUmF0aW5nIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlV6bGlrdCBWxJNydMSTanVtdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInV6bGlrdCB2ZWVydGVlanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQlJPV1NFX0NVRVNIRUVUCisgIGRlc2M6CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQnJvd3NlIEN1ZXNoZWV0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFwbMWra290IGN1ZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFwbHV1a290IGN1ZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTUVOVV9TSE9XX0lEM19JTkZPCisgIGRlc2M6IE1lbnUgb3B0aW9uIHRvIHN0YXJ0IHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTaG93IFRyYWNrIEluZm8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiRHppZXNtYXMgSW5mbyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhcmFhZGlpdCBkemllc21hcyBpbmZvIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfVElUTEUKKyAgZGVzYzogaW4gdGFnIHZpZXdlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRpdGxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5vc2F1a3VtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSUQzX0FSVElTVAorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXJ0aXN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6cGlsZMSrdMSBanMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19BTEJVTQorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQWxidW0iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQWxixattcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSUQzX1RSQUNLTlVNCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJUcmFja251bSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOdW11cnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19HRU5SRQorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiR2VucmUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAixb1hbnJzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfWUVBUgorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiWWVhciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJHYWRzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfTEVOR1RICisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJMZW5ndGgiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiR2FydW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfUExBWUxJU1QKKyAgZGVzYzogaW4gdGFnIHZpZXdlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBsYXlsaXN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNhcmFrc3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfQklUUkFURQorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQml0cmF0ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJCaXRyZWl0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSUQzX0FMQlVNQVJUSVNUCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBbGJ1bSBBcnRpc3QiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQWxixattYSBJenBpbGTEq3TEgWpzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfRElTQ05VTQorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGlzY251bSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJEaXNrYSBOdW11cnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19DT01NRU5UCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDb21tZW50IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIktvbWVudMSBcnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19WQlIKKyAgZGVzYzogaW4gYnJvd3NlX2lkMworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiAoVkJSKSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIgKE1CUikiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19GUkVRVUVOQ1kKKyAgZGVzYzogaW4gdGFnIHZpZXdlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkZyZXF1ZW5jeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJGcmVrdmVuY2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19UUkFDS19HQUlOCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJUcmFjayBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkR6aWVzbWFzIFNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfQUxCVU1fR0FJTgorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQWxidW0gR2FpbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBbGLFq21hIFNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfUEFUSAorICBkZXNjOiBpbiB0YWcgdmlld2VyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUGF0aCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJDZcS8xaEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lEM19OT19JTkZPCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICI8Tm8gSW5mbz4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiPE5hdiBJbmZvcm3EgWNpamFzPiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVOQU1FCisgIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBSZW5hbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZW5hbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUMSBcnNhdWt0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFhcnNhdWt0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DVVQKKyAgZGVzYzogVGhlIHZlcmIvYWN0aW9uIEN1dAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkN1dCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJemdyaWV6dCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6Z3JpZXp0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT1BZCisgIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBDb3B5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ29weSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLb3DEk3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJrb3BlZXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BBU1RFCisgIGRlc2M6IFRoZSB2ZXJiL2FjdGlvbiBQYXN0ZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBhc3RlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkllbMSrbcSTdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImllbGlpbWVldCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVBTExZX09WRVJXUklURQorICBkZXNjOiBUaGUgdmVyYi9hY3Rpb24gUGFzdGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGaWxlL2RpcmVjdG9yeSBleGlzdHMuIE92ZXJ3cml0ZT8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiRmFpbHMvbWFwZSBqYXUgaXIuIFDEgXJyYWtzdMSrdD8iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJmYWlscyB2YWkgbWFwZSBqYXUgaXIuIHZhaSBwYWFycmFrc3RpaXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RFTEVURQorICBkZXNjOiBUaGUgdmVyYi9hY3Rpb24gRGVsZXRlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGVsZXRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk3N0IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpkemVlc3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RFTEVURV9ESVIKKyAgZGVzYzogaW4gb24rcGxheSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRGVsZXRlIERpcmVjdG9yeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJemR6xJNzdCBNYXBpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpkemVlc3QgbWFwaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVBTExZX0RFTEVURQorICBkZXNjOiBSZWFsbHkgRGVsZXRlPworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkRlbGV0ZT8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXpkesSTc3Q/IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmFpIHRpZXNoYWFtIGl6ZHplZXN0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT1BZSU5HCisgIGRlc2M6CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ29weWluZy4uLiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLb3DEky4uLiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtvcGVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ERUxFVElORworICBkZXNjOgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkRlbGV0aW5nLi4uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk8WhLi4uIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaXpkemVlc2giCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PVklORworICBkZXNjOgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1vdmluZy4uLiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQxIFydmlldG8uLi4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwYWFydmlldG8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RFTEVURUQKKyAgZGVzYzogQSBmaWxlIGhhcyBiZWVkIGRlbGV0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEZWxldGVkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6ZHrEk3N0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6ZHplZXN0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VUX0FTX0JBQ0tEUk9QCisgIGRlc2M6IHRleHQgZm9yIG9ucGxheSBtZW51IGVudHJ5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAiU2V0IEFzIEJhY2tkcm9wIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9ub24tbW9ubzogIlV6bGlrdCBLxIEgRm9udSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9ub24tbW9ubzogInV6bGlrdCBrYWEgZm9udSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFDS0RST1BfTE9BREVECisgIGRlc2M6IGRlcHJlY2F0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2Rfbm9uLW1vbm86ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX25vbi1tb25vOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQUNLRFJPUF9GQUlMRUQKKyAgZGVzYzogZGVwcmVjYXRlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9ub24tbW9ubzogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2Rfbm9uLW1vbm86ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2Rfbm9uLW1vbm86ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX09OUExBWV9PUEVOX1dJVEgKKyAgZGVzYzogT25wbGF5IG9wZW4gd2l0aAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk9wZW4gV2l0aC4uLiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdHbEk3J0IEFyLi4uIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXR2ZWVydCBhciIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ1JFQVRFX0RJUgorICBkZXNjOiBpbiBtYWluIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDcmVhdGUgRGlyZWN0b3J5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkl6dmVpZG90IE1hcGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpenZlaWRvdCBtYXBpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QUk9QRVJUSUVTCisgIGRlc2M6IGJyb3dzZXIgZmlsZS9kaXIgcHJvcGVydGllcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlByb3BlcnRpZXMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGFyYW1ldHJpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFyYW1ldHJpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BRERfVE9fRkFWRVMKKyAgZGVzYzoKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBZGQgdG8gU2hvcnRjdXRzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBpZXZpZW5vdCBTYcSrc27Ek20iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwaWV2aWVub3Qgc2FpaXNuZWVtIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QSVRDSAorICBkZXNjOiAicGl0Y2giIGluIHRoZSBwaXRjaCBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlBpdGNoIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAixIB0cnVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAiYWF0cnVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUElUQ0hfVVAKKyAgZGVzYzogaW4gd3BzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJQaXRjaCBVcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlBhYXVnc3RpbsSBdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QSVRDSF9ET1dOCisgIGRlc2M6IGluIHdwcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAiUGl0Y2ggRG93biIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlBhemVtaW7EgXQiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUElUQ0hfVVBfU0VNSVRPTkUKKyAgZGVzYzogaW4gd3BzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJTZW1pdG9uZSBVcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlB1c3RvbmkgVXogQXVnxaF1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BJVENIX0RPV05fU0VNSVRPTkUKKyAgZGVzYzogaW4gd3BzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJTZW1pdG9uZSBEb3duIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAiUHVzdG9uaSBVeiBMZWp1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BMQVlMSVNUX0JVRkZFUl9GVUxMCisgIGRlc2M6IGluIHBsYXlsaXN0LmluZGljZXMoKSB3aGVuIHBsYXlsaXN0IGlzIGZ1bGwKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQbGF5bGlzdCBCdWZmZXIgRnVsbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYXJha3N0dSBCdWZlcmlzIFBpbG5zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2FyYWtzdHUgYnVmZXJpcyBwaWxucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRU5EX1BMQVlMSVNUCisgIGRlc2M6IHdoZW4gcGxheWxpc3QgaGFzIGZpbmlzaGVkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRW5kIG9mIFNvbmcgTGlzdCIKKyAgICBhcmNob3NwbGF5ZXI6ICJFbmQgb2YgTGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJEemllc211IFNhcmFrc3RhIEJlaWdhcyIKKyAgICBhcmNob3NwbGF5ZXI6ICJTYXJha3N0YSBCZWlnYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzYXJha3N0YSBiZWlnYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NSRUFUSU5HCisgIGRlc2M6IFNjcmVlbiBmZWVkYmFjayBkdXJpbmcgcGxheWxpc3QgY3JlYXRpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDcmVhdGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJWZWlkbyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTk9USElOR19UT19SRVNVTUUKKyAgZGVzYzogRXJyb3IgbWVzc2FnZSBkaXNwbGF5ZWQgd2hlbiByZXN1bWUgYnV0dG9uIHByZXNzZWQgYnV0IG5vIHBsYXlsaXN0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTm90aGluZyB0byByZXN1bWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTmF2IEtvIEF0c8SBa3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuYXYga28gYXRzYWFrdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUxJU1RfQ09OVFJPTF9VUERBVEVfRVJST1IKKyAgZGVzYzogUGxheWxpc3QgZXJyb3IKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJFcnJvciB1cGRhdGluZyBwbGF5bGlzdCBjb250cm9sIGZpbGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiS8S8xatkYSBBdGphdW5vam90IFNhcmFrc3RhIEtvbnRyb2xlcyBGYWlsdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtsanV1ZGEgaXp2ZWlkb2pvdCBzYXJha3N0YSBrb250cm9sZXMgZmFpbHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BMQVlMSVNUX0FDQ0VTU19FUlJPUgorICBkZXNjOiBQbGF5bGlzdCBlcnJvcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkVycm9yIGFjY2Vzc2luZyBwbGF5bGlzdCBmaWxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkvEvMWrZGEgQXR2ZXJvdCBTYXJha3N0YSBGYWlsdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtsanV1ZGEgYXR2ZXJvdCBzYXJha3N0YSBmYWlsdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExBWUxJU1RfQ09OVFJPTF9BQ0NFU1NfRVJST1IKKyAgZGVzYzogUGxheWxpc3QgZXJyb3IKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJFcnJvciBhY2Nlc3NpbmcgcGxheWxpc3QgY29udHJvbCBmaWxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkvEvMWrZGEgQXR2ZXJvdCBTYXJha3N0YSBLb250cm9sZXMgRmFpbHUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJrbGp1dWRhIGF0dmVyb3Qgc2FyYWtzdGEga29udHJvbGVzIGZhaWx1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZTElTVF9ESVJFQ1RPUllfQUNDRVNTX0VSUk9SCisgIGRlc2M6IFBsYXlsaXN0IGVycm9yCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRXJyb3IgYWNjZXNzaW5nIGRpcmVjdG9yeSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLxLzFq2RhIEF0dmVyb3QgTWFwaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtsanV1ZGEgYXR2ZXJvdCBtYXBpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZTElTVF9DT05UUk9MX0lOVkFMSUQKKyAgZGVzYzogUGxheWxpc3QgcmVzdW1lIGVycm9yCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUGxheWxpc3QgY29udHJvbCBmaWxlIGlzIGludmFsaWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU2FyYWtzdGEgS29udHJvbGVzIEZhaWxzIE5lZGVyxKtncyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhcmFrc3RhIGtvbnRyb2xlcyBmYWlscyBpciBuZWRlcmlpZ3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BBVVNFCisgIGRlc2M6IGluIHdwcyBhbmQgcmVjb3JkaW5nIHRyaWdnZXIgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBhdXNlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBhdXplIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGF1emUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PREUKKyAgZGVzYzogaW4gd3BzIEYyIHByZXNzZWQgYW5kIHJhZGlvIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1vZGU6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlJlxb7Eq21zOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVElNRQorICBkZXNjOiBVc2VkIG9uIHRoZSBib29rbWFyayBzZWxlY3Qgd2luZG93IHRvIGxhYmVsIGVsYXBzZWQgdGltZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRpbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTGFpa3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJsYWlrcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorLyogVE9ETzogY2xlYW51cCBMQU5HX1VTQl9DSEFSR0lORyB1bmxlc3MgSEFWRV9VU0JfQ0hBUkdJTkdfRU5BQkxFIGRlZmluZWQsCisgKiB0aGUgc2VsZWN0b3Igc2hvdWxkIHByb2JhYmx5IGJlIHVzYl9jaGFyZ2luZ19lbmFibGVfZW5hYmxlIGFzIHdlbGwuICovCis8cGhyYXNlPgorICBpZDogTEFOR19VU0JfQ0hBUkdJTkcKKyAgZGVzYzogaW4gQmF0dGVyeSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdXNiX2NoYXJnaW5nX2VuYWJsZTogIkNoYXJnZSBEdXJpbmcgVVNCIENvbm5lY3Rpb24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdXNiX2NoYXJnaW5nX2VuYWJsZTogIkzEgWTEk3QgYXIgVVNCIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdXNiX2NoYXJnaW5nX2VuYWJsZTogImxhYWRlZXQgYXIgdXVlc2JlZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfS0VZTE9DS19PTgorICBkZXNjOiBkaXNwbGF5ZWQgd2hlbiBrZXkgbG9jayBpcyBvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJ1dHRvbnMgTG9ja2VkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlBvZ2FzIE5vYmxvxLfEk3RhcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfS0VZTE9DS19PRkYKKyAgZGVzYzogZGlzcGxheWVkIHdoZW4ga2V5IGxvY2sgaXMgdHVybmVkIG9mZgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkJ1dHRvbnMgVW5sb2NrZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUG9nYXMgQXRibG/Et8STdGFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNPUkRJTkdfVElNRQorICBkZXNjOiBEaXNwbGF5IG9mIHJlY29yZGVkIHRpbWUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJUaW1lOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJMYWlrczoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0RJU0tfRlVMTAorICBkZXNjOiBpbiByZWNvcmRpbmcgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVGhlIGRpc2sgaXMgZnVsbC4gUHJlc3MgT0ZGIHRvIGNvbnRpbnVlLiIKKyAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIlRoZSBkaXNrIGlzIGZ1bGwuIFByZXNzIFNUT1AgdG8gY29udGludWUuIgorICAgIGlhdWRpb201LGlhdWRpb3g1OiAiVGhlIGRpc2sgaXMgZnVsbC4gUHJlc3MgUE9XRVIgdG8gY29udGludWUuIgorICAgIHNhbnNhZTIwMCosc2Fuc2FjMjAwKix2aWJlNTAwOiAiVGhlIGRpc2sgaXMgZnVsbC4gUHJlc3MgUFJFViB0byBjb250aW51ZS4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiQXRtacWGYSBwaWxuYS4gU3BpZWQgT0ZGIGxhaSB0dXJwaW7EgXR1LiIKKyAgICBpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIkF0bWnFhmEgcGlsbmEuIFNwaWVkIFNUT1AgbGFpIHR1cnBpbsSBdHUuIgorICAgIGlhdWRpb201LGlhdWRpb3g1OiAiQXRtacWGYSBwaWxuYS4gU3BpZWQgUE9XRVIgbGFpIHR1cnBpbsSBdHUuIgorICAgIHNhbnNhZTIwMCosc2Fuc2FjMjAwKix2aWJlNTAwOiAiQXRtacWGYSBwaWxuYS4gU3BpZWQgUFJFViBsYWkgdHVycGluxIF0dS4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmcsaXJpdmVyaDEwMCxpcml2ZXJoMTIwLGlyaXZlcmgzMDAsaWF1ZGlvbTUsaWF1ZGlveDUsc2Fuc2FlMjAwKixzYW5zYWMyMDAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19EQl9JTkYKKyAgZGVzYzogLWluZiBkYiBmb3IgdmFsdWVzIGJlbG93IG1lYXN1cmVtZW50CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiLWluZiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICItbmVnIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAibWlpbnVzIGJlemdhbGlpYmEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTkZJUk1fU0hVVERPV04KKyAgZGVzYzogaW4gc2h1dGRvd24gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc29mdF9zaHV0ZG93bjogIlByZXNzIE9GRiB0byBzaHV0IGRvd24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc29mdF9zaHV0ZG93bjogIlNwaWVkIE9GRiBsYWkgaXpzbMSTZ3R1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc29mdF9zaHV0ZG93bjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVNT1ZFX01NQworICBkZXNjOiBiZWZvcmUgYWNrbm93bGVkZ2luZyB1c2IgaW4gY2FzZSBhbiBNTUMgaXMgaW5zZXJ0ZWQgKE9uZGlvKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFyY2hvc29uZGlvKjogIlBsZWFzZSByZW1vdmUgaW5zZXJ0ZWQgTU1DIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFyY2hvc29uZGlvKjogIkzFq2R6dSBpesWGZW1pZXQgaWV2aWV0b3RvIE1NQyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFyY2hvc29uZGlvKjogImx1dWR6dSBpem5qZW1pZXQgYXRtaW5qYXMga2FydGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JPT1RfQ0hBTkdFRAorICBkZXNjOiBGaWxlIGJyb3dzZXIgZGlzY292ZXJlZCB0aGUgYm9vdCBmaWxlIHdhcyBjaGFuZ2VkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQm9vdCBjaGFuZ2VkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkZhaWxzIEl6bWFpbsSrdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJmYWlscyBpem1haW5paXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUJPT1RfTk9XCisgIGRlc2M6IERvIHlvdSB3YW50IHRvIHJlYm9vdD8KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZWJvb3Qgbm93PyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQxIFyc3RhcnTEk3QgdGFnYWQ/IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmFpIHBhYXJzdGFydGVldCB0YWdhZCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfT0ZGX0FCT1JUCisgIGRlc2M6IFVzZWQgb24gYXJjaG9zcmVjb3JkZXIgbW9kZWxzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiT0ZGIHRvIGFib3J0IgorICAgIGFyY2hvc3BsYXllcixpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIlNUT1AgdG8gYWJvcnQiCisgICAgaXBvZCo6ICJQTEFZL1BBVVNFIHRvIGFib3J0IgorICAgIGlhdWRpb3g1LGlhdWRpb201OiAiTG9uZyBQTEFZIHRvIGFib3J0IgorICAgIGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKix2aWJlNTAwOiAiUFJFViB0byBhYm9ydCIKKyAgICBnaWdhYmVhdHM6ICJCQUNLIHRvIGFib3J0IgorICAgIGdpZ2FiZWF0Zng6ICJQT1dFUiB0byBhYm9ydCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJPRkYgbGFpIHDEgXJ0cmF1a3R1IgorICAgIGFyY2hvc3BsYXllcixpcml2ZXJoMTAwLGlyaXZlcmgxMjAsaXJpdmVyaDMwMDogIlNUT1AgbGFpIHDEgXJ0cmF1a3R1IgorICAgIGlwb2QqOiAiUExBWS9QQVVTRSBsYWkgcMSBcnRyYXVrdHUiCisgICAgaWF1ZGlveDUsaWF1ZGlvbTU6ICJMb25nIFBMQVkgbGFpIHDEgXJ0cmF1a3R1IgorICAgIGlyaXZlcmgxMCxpcml2ZXJoMTBfNWdiLHNhbnNhZTIwMCosc2Fuc2FjMjAwKix2aWJlNTAwOiAiUFJFViBsYWkgcMSBcnRyYXVrdHUiCisgICAgZ2lnYWJlYXRzOiAiQkFDSyBsYWkgcMSBcnRyYXVrdHUiCisgICAgZ2lnYWJlYXRmeDogIlBPV0VSIGxhaSBwxIFydHJhdWt0dSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTk9fRklMRVMKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk5vIGZpbGVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5hdiBGYWlsdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5hdiBmYWlsdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfS0VZQk9BUkRfTE9BREVECisgIGRlc2M6IHNob3duIHdoZW4gYSBrZXlib2FyZCBoYXMgYmVlbiBsb2FkZWQgZnJvbSB0aGUgZGlyIGJyb3dzZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJOZXcgS2V5Ym9hcmQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSmF1bmEgS2xhdmlhdMWrcmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJqYXVuYSBrbGF2aWF0dXVyYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExVR0lOX0NBTlRfT1BFTgorICBkZXNjOiBQbHVnaW4gb3BlbiBlcnJvciBtZXNzYWdlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ2FuJ3Qgb3BlbiAlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOZXZhciBhdHbEk3J0ICVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUFEX0ZBSUxFRAorICBkZXNjOiBUaGVyZSB3YXMgYW4gZXJyb3IgcmVhZGluZyBhIGZpbGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGYWlsZWQgcmVhZGluZyAlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOZWl6ZGV2xIFzIG5vbGFzxKt0ICVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTFVHSU5fV1JPTkdfTU9ERUwKKyAgZGVzYzogVGhlIHBsdWdpbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBhcmNob3MgbW9kZWwgdHJ5aW5nIHRvIHJ1biBpdAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkluY29tcGF0aWJsZSBtb2RlbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJOZXNhZGVyxKtncyBtb2RlbGlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTFVHSU5fV1JPTkdfVkVSU0lPTgorICBkZXNjOiBUaGUgcGx1Z2luIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHJvY2tib3ggdmVyc2lvbiB0cnlpbmcgdG8gcnVuIGl0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSW5jb21wYXRpYmxlIHZlcnNpb24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTmVzYWRlcsSrZ2EgdmVyc2lqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUExVR0lOX0VSUk9SCisgIGRlc2M6IFRoZSBwbHVnaW4gcmV0dXJuIGFuIGVycm9yIGNvZGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQbHVnaW4gcmV0dXJuZWQgZXJyb3IiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiU3ByYXVkbmlzIGl6bWV0YSBrxLzFq2R1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GSUxFVFlQRVNfRlVMTAorICBkZXNjOiBGaWxldHlwZSBhcnJheSBmdWxsCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRmlsZXR5cGUgYXJyYXkgZnVsbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJGYWlsdSBWZWlkdSBTYXJha3N0cyBQaWxucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImZhaWx1IHZlaWR1IHNhcmFrc3RzIHBpbG5zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSE9XRElSX0JVRkZFUl9GVUxMCisgIGRlc2M6IGluIHNob3dkaXIoKSwgZGlzcGxheWVkIG9uIHNjcmVlbiB3aGVuIHlvdSByZWFjaCBidWZmZXIgbGltaXQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJEaXIgQnVmZmVyIGlzIEZ1bGwhIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1hcGVzIEJ1ZmVyaXMgSXIgUGlsbnMhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWFwZXMgYnVmZXJpcyBpciBwaWxucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSU5WQUxJRF9GSUxFTkFNRQorICBkZXNjOiAiaW52YWxpZCBmaWxlbmFtZSBlbnRlcmVkIiBlcnJvciBtZXNzYWdlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiSW52YWxpZCBGaWxlbmFtZSEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTmVkZXLEq2dzIEZhaWxhIE5vc2F1a3VtcyEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuZWRlcmlpZ3MgZmFpbGEgbm9zYXVrdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEVBU0VfUkVCT09UCisgIGRlc2M6IHdoZW4gYWN0aXZhdGluZyBhbiBvcHRpb24gdGhhdCByZXF1aXJlcyBhIHJlYm9vdAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlBsZWFzZSByZWJvb3QgdG8gZW5hYmxlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlDEgXJzdGFydMSTamlldCBMYWkgSWVzbMSTZ3R1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFhcnN0YXJ0ZWVqaWV0IGxhaSBpZXNsZWVndHUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBVFRFUllfQ0hBUkdFCisgIGRlc2M6IHRlbGxzIHRoYXQgdGhlIGJhdHRlcnkgaXMgY2hhcmdpbmcsIGluc3RlYWQgb2YgYmF0dGVyeSBsZXZlbAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiQmF0dGVyeTogQ2hhcmdpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY2hhcmdpbmc6ICJCYXRlcmlqYTogTMSBZMSTamFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgY2hhcmdpbmc6ICJiYXRlcmlqYSBsYWFkZWVqYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBVFRFUllfVE9QT0ZGX0NIQVJHRQorICBkZXNjOiBpbiBpbmZvIGRpc3BsYXksIHNob3dzIHRoYXQgdG9wIG9mZiBjaGFyZ2UgaXMgcnVubmluZyBPbmx5IGZvciBWMSBhcmNob3NyZWNvcmRlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFyY2hvc3JlY29yZGVyOiAiQmF0dGVyeTogVG9wLU9mZiBDaGciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYXJjaG9zcmVjb3JkZXI6ICJCYXRlcmlqYTogQmVpZHogTMSBZMSTdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFyY2hvc3JlY29yZGVyOiAicGFiZWlnc2hhbmFzIGxhYWRpbmpzaCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQkFUVEVSWV9UUklDS0xFX0NIQVJHRQorICBkZXNjOiBpbiBpbmZvIGRpc3BsYXksIHNob3dzIHRoYXQgdHJpY2tsZSBjaGFyZ2UgaXMgcnVubmluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAiQmF0dGVyeTogVHJpY2tsZSBDaGciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY2hhcmdpbmc6ICJCYXRlcmlqYTogVXpsxIFkxJN0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGNoYXJnaW5nOiAibGFhZGVlc2hhbmEgcGFiZWlndGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dBUk5JTkdfQkFUVEVSWV9MT1cKKyAgZGVzYzogZ2VuZXJhbCB3YXJuaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiV0FSTklORyEgTG93IEJhdHRlcnkhIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkJhdGVyaWphIEdhbmRyxKt6IFR1a8WhYSEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJiYXRlcmlqYSBnYW5kcmlpeiB0dWtzaGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1dBUk5JTkdfQkFUVEVSWV9FTVBUWQorICBkZXNjOiBnZW5lcmFsIHdhcm5pbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJCYXR0ZXJ5IGVtcHR5ISBSRUNIQVJHRSEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQmF0ZXJpamEgVHVrxaFhISBKxIBMxIBExJIhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYmF0ZXJpamEgdHVrc2hhIGphYWxhYWRlZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQllURQorICBkZXNjOiBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfS0lMT0JZVEUKKyAgZGVzYzogYSB1bml0IHBvc3RmaXgsIGFsc28gdm9pY2VkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiS0IiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiS0IiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJraWxvYmFpdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01FR0FCWVRFCisgIGRlc2M6IGEgdW5pdCBwb3N0Zml4LCBhbHNvIHZvaWNlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk1CIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk1CIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWVnYWJhaXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19HSUdBQllURQorICBkZXNjOiBhIHVuaXQgcG9zdGZpeCwgYWxzbyB2b2ljZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJHQiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJHQiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdpZ2FiYWl0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE9JTlQKKyAgZGVzYzogZGVjaW1hbCBzZXBhcmF0b3IgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiLiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIuIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicHVua3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfWkVSTworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm51bGxlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfT05FCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmllbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9UV08KKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJkaXZpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfVEhSRUUKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0cmlpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0ZPVVIKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJjaGV0cmkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9GSVZFCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGllY2kiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9TSVgKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzZXNoaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1NFVkVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2VwdGluamkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FSUdIVAorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFzdG9uamkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9OSU5FCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGV2aW5qaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1RFTgorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImRlc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VMRVZFTgorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInZpZW5wYWRzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfVFdFTFZFCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGl2cGFkc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1RISVJURUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidHJpaXNwYWRzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRk9VUlRFRU4KKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJjaGV0cnBhZHNtaXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9GSUZURUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGllY3BhZHNtaXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9TSVhURUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2VzaHBhZHNtaXQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9TRVZFTlRFRU4KKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzZXB0aW5qcGFkc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VJR0hURUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXN0b25qcGFkc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX05JTkVURUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGV2aW5qcGFkc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1RXRU5UWQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImRpdmRlc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1RISVJUWQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInRyaWlzZGVzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRk9SVFkKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJjaGV0cmRlc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0ZJRlRZCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGllY2Rlc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1NJWFRZCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2VzaGRlc21pdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1NFVkVOVFkKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzZXB0aW5qZGVzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRUlHSFRZCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXN0b25qZGVzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfTklORVRZCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGV2aW5qZGVzbWl0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfSFVORFJFRAorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNpbXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfVEhPVVNBTkQKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0dXVrc3RvdGlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfTUlMTElPTgorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1pbGpvbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9CSUxMSU9OCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgY29tcG9zaW5nIG51bWJlcnMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWlsamFyZHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9NSU5VUworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGNvbXBvc2luZyBudW1iZXJzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1paW51cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1BMVVMKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBjb21wb3NpbmcgbnVtYmVycworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwbHVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfTUlMTElTRUNPTkRTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJtaWxpc2VrdW5kZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9TRUNPTkQKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNla3VuZGUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9TRUNPTkRTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzZWt1bmRlcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX01JTlVURQorICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWludXV0ZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX01JTlVURVMKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1pbnV1dGVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfSE9VUgorICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic3R1bmRhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfSE9VUlMKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInN0dW5kYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9LSFoKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtpbG9oZXJjcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0RCCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJkZWNpYmVscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1BFUkNFTlQKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInByb2NlbnRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfTUlMTElBTVBIT1VSUworICBkZXNjOiBzcG9rZW4gb25seSwgYSB1bml0IHBvc3RmaXgKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibWlsaS1hbXBlZXIgc3R1bmRhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1BJWEVMCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwaWtzZWxpcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1BFUl9TRUMKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNla3VuZGVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfSEVSVFoKKyAgZGVzYzogc3Bva2VuIG9ubHksIGEgdW5pdCBwb3N0Zml4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImhlcmNzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfS0JJVF9QRVJfU0VDCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhIHVuaXQgcG9zdGZpeAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJraWxvYml0aSBzZWt1bmRlZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfQQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9CCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYmVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9DCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiY2VlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9ECisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9FCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZWUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX0YKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJlZiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfRworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdhYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfSAorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImhhYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfSQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImlpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9KCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiamVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9LCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia2FhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9MCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZWwiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX00KKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJlbSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfTgorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImVuIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9PCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfUAorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBlZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfUQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImtqdXUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX1IKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJlciIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NIQVJfUworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9UCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidGVlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9VCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidXUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX1YKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ2ZWUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX1cKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJkYWJsanV1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9YCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWtzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQ0hBUl9ZCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWdyZWsiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX1oKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ6ZWQiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9ET1QKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBzcGVsbGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwdW5rdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9QQVVTRQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHNwZWxsaW5nLCBhIHNwbGl0IHNlY29uZCBvZiBzaWxlbmNlIChkaWZmaWN1bHQgdG8gYXV0aG9yKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIgIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRklMRQorICBkZXNjOiBzcG9rZW4gb25seSwgcHJlZml4IGZvciBmaWxlIG51bWJlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJmYWlscyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0RJUgorICBkZXNjOiBzcG9rZW4gb25seSwgcHJlZml4IGZvciBkaXJlY3RvcnkgbnVtYmVyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1hcGUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FWFRfTVBBCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXVkaW8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FWFRfQ0ZHCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia29uZmlndXJhYWNpamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FWFRfV1BTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRza2Fuam9zaGFuYXMgZWtyYWFucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9ST0NLCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic3ByYXVkbmlzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRVhUX0ZPTlQKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJmb250cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9CTUFSSworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uIGFuZCB0aGUgd29yZCBpbiBnZW5lcmFsCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImdyYWFtYXR6aWltZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9BSloKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwcm9ncmFtbWF0dXVyYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9SV1BTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgYXRza2Fuam9zaGFuYXMgZWtyYWFucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9LQkQKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJrbGF2aWF0dXVyYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9DVUVTSEVFVAorICBkZXNjOgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiY3VlIGZhaWxzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQk9PS01BUktfU0VMRUNUX0lOREVYX1RFWFQKKyAgZGVzYzogdm9pY2Ugb25seSwgdXNlZCBpbiB0aGUgYm9va21hcmsgbGlzdCB0byBsYWJlbCBpbmRleCBudW1iZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaW5kZWtzcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0NVUlJFTlRfVElNRQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiUGF0cmVpemVlamFpcyBsYWlrczoiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfRVFVQUxJWkVSX0VESVRfTU9ERQorICBkZXNjOiBpbiB0aGUgZXF1YWxpemVyIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiRWRpdCBtb2RlOiAlcyAlcyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiSXptYWluaXQ6ICVzICVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9FUVVBTElaRVJfQkFORF9DVVRPRkYKKyAgZGVzYzogaW4gdGhlIGVxdWFsaXplciBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkN1dG9mZiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiUm9iZXphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInJvYmV6aGZyZWt2ZW5jZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9HQUlOCisgIGRlc2M6IGluIHRoZSBlcXVhbGl6ZXIgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJQYXN0aXByaW5hanVtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJwYXN0aXByaW5hYWp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfTU9ERQorICBkZXNjOiBpbiB3cHMgRjIgcHJlc3NlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJNb2RlOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiUmXFvsSrbXM6IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9ESVJCUk9XU0VfRjEKKyAgZGVzYzogaW4gZGlyIGJyb3dzZXIsIEYxIGJ1dHRvbiBiYXIgdGV4dAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGVyX3BhZDogIk1lbnUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkZXJfcGFkOiAiSXp2xJNsbmUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRlcl9wYWQ6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfRElSQlJPV1NFX0YyCisgIGRlc2M6IGluIGRpciBicm93c2VyLCBGMiBidXR0b24gYmFyIHRleHQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRlcl9wYWQ6ICJPcHRpb24iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkZXJfcGFkOiAiT3BjaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkZXJfcGFkOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TWVNGT05UX0RJUkJST1dTRV9GMworICBkZXNjOiBpbiBkaXIgYnJvd3NlciwgRjMgYnV0dG9uIGJhciB0ZXh0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkZXJfcGFkOiAiTENEIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGVyX3BhZDogIkVrcsSBbnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRlcl9wYWQ6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfQ0hBTk5FTF9TVEVSRU8KKyAgZGVzYzogaW4gc291bmRfc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTdGVyZW8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3RlcmVvIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAic3RlcmVvIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TWVNGT05UX0NIQU5ORUxfTU9OTworICBkZXNjOiBpbiBzb3VuZF9zZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIk1vbm8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTW9ubyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIm1vbm8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfUkVDT1JESU5HX1FVQUxJVFkKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZ19od2NvZGVjOiAiUXVhbGl0eSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogIkt2YWxpdMSBdGUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmdfaHdjb2RlYzogImt2YWxpdGFhdGUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfUkVDT1JESU5HX0ZSRVFVRU5DWQorICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiRnJlcXVlbmN5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkZyZWt2ZW5jZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImZyZWt2ZW5jZSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9SRUNPUkRJTkdfU09VUkNFCisgIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTb3VyY2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiQXZvdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJhdm90cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9SRUNPUkRJTkdfU1JDX01JQworICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiSW50LiBNaWMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiSWViLiBNaWtyIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiaWVidXV2ZWV0YWlzIG1pa3JvZm9ucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9MSU5FX0lOCisgIGRlc2M6IGluIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJMaW5lIEluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkxpbmXEgXLEgSBJZWVqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImxpbmVhYXJhYSBpZWVqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1lTRk9OVF9SRUNPUkRJTkdfU1JDX0RJR0lUQUwKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkRpZ2l0YWwiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiRGlnaXTEgWzEgSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImRpZ2l0YWFsYWEgaWVlamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NZU0ZPTlRfQ0hBTk5FTFMKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkNoYW5uZWxzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkthbsSBbGkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJrYW5hYWxpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TWVNGT05UX1JFQ09SRF9UUklHR0VSCisgIGRlc2M6IGluIHJlY29yZGluZyBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiVHJpZ2dlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJQYWxhaWTEk2pzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAicGFsYWlkZWVqcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX09GCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBhcyBpbiAzLzggPT4gMyBvZiA4CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5vIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTFVHSU5fR0FNRVMKKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkdhbWVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNwxJNsZXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJzcGVlbGVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTFVHSU5fQVBQUworICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXBwbGljYXRpb25zIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlByb2dyYW1tYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwcm9ncmFtbWFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTFVHSU5fREVNT1MKKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkRlbW9zIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkRlbW9uc3RyxIFjaWphcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImRlbW9uc3RyYWFjaWphcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSUQzX0dST1VQSU5HCisgIGRlc2M6IGluIHRhZyB2aWV3ZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJXb3JrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkRhcmJzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TSE9XX0ZJTEVOQU1FX0VYVAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2hvdyBGaWxlbmFtZSBFeHRlbnNpb25zIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlLEgWTEq3QgUGFwbGHFoWluxIFqdW11cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInJhYWRpaXQgcGFwbGFzaGluYWFqdW11cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVU5LTk9XTl9UWVBFUworICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiT25seSBVbmtub3duIFR5cGVzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlRpa2FpIE5lemluxIFtaWVtIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidGlrYWkgbmV6aW5hYW1pZW0iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0VYVF9PTkxZX1ZJRVdfQUxMCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJPbmx5IFdoZW4gVmlld2luZyBBbGwgVHlwZXMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVGlrYWkgU2thdG90aWVzIFZpc3VzIFZlaWR1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInRpa2FpIHNrYXRvdGllcyB2aXN1cyB2ZWlkdXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9QTV9VTklUU19QRVJfVElDSworICBkZXNjOiBzcG9rZW4gb25seSwgcGVhayBtZXRlciByZWxlYXNlIHVuaXQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmllbmlpYmFzIHV6IGtsaWtzaGtqaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX09DTE9DSworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAicHVsa3N0ZW5pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1BNCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igd2FsbCBjbG9jayBhbm5vdW5jZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJ0YzogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICJwZWUgZW0iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9BTQorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiYWEgZW0iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9PSAorICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIHdhbGwgY2xvY2sgYW5ub3VuY2UKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBydGM6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcnRjOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcnRjOiAiICIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUE1fQ0xJUENPVU5URVIKKyAgZGVzYzogaW4gc2V0dGluZ3MsIGZvciByZWNvcmRpbmcgcGVhayBtZXRlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkNsaXAgQ291bnRlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJQxIFybMSrbWXFhmEgU2thaXTEq3TEgWpzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAicGFhcmxpaW1lbmphIHNrYWl0aWl0YWFqcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VMRUNUT1JfU1RBUlRfQ09MT1IKKyAgZGVzYzogbGluZSBzZWxlY3RvciBjb2xvciBvcHRpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJQcmltYXJ5IENvbG91ciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJQcmltxIFyxIEgS3LEgXNhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAicHJpbWFhcmFhIGtyYWFzYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VMRUNUT1JfRU5EX0NPTE9SCisgIGRlc2M6IGxpbmUgc2VsZWN0b3IgY29sb3Igb3B0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiU2Vjb25kYXJ5IENvbG91ciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJTZWt1bmTEgXLEgSBLcsSBc2EiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJzZWt1bmRhYXJhYSBrcmFhc2EiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFTEVDVE9SX1RFWFRfQ09MT1IKKyAgZGVzYzogbGluZSBzZWxlY3RvciB0ZXh0IGNvbG9yIG9wdGlvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIlRleHQgQ29sb3VyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIlRla3N0YSBLcsSBc2EiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJ0ZWtzdGEga3JhYXNhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JTlZFUlRfQ1VSU09SX0NPTE9SCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJCYXIgKFNvbGlkIENvbG91cikiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiSm9zbGEgKFZpZW5rcsSBc2FpbmEpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAidmllbmtyYWFzYWluYSBqb3NsYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSU5WRVJUX0NVUlNPUl9HUkFESUVOVAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiQmFyIChHcmFkaWVudCBDb2xvdXIpIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIkpvc2xhIChNYWluxKtnYXMgS3Jhc2FzKSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9jb2xvcjogIm1haW5paWd1IGtyYWFzdSBqb3NsYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09ERVBBR0VfQ0VOVFJBTF9FVVJPUEVBTgorICBkZXNjOiBpbiBjb2RlcGFnZSBzZXR0aW5nIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJDZW50cmFsIEV1cm9wZWFuIChDUDEyNTApIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkNlbnRyxIFsxIFzIEVpcm9wYXMgKENQMTI1MCkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJjZW50cmFhbGFhcyBlaXJvcGFzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19USEVNRV9NRU5VCisgIGRlc2M6IGluIHRoZSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiVGhlbWUgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVMSTbWFzIFV6c3TEgWTEq2p1bWkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0ZWVtYXMgdXpzdGFhZGlpanVtaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09MT1JTX01FTlUKKyAgZGVzYzogY29sb3VycyBtZW51IHVuZGVyIHRoZW1lIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiQ29sb3VycyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJLcsSBc2FzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAia3JhYXNhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VMRUNUT1JfQ09MT1JfTUVOVQorICBkZXNjOiBsaW5lIHNlbGVjdG9yIGNvbG9yIG1lbnUgdGl0bGUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJMaW5lIFNlbGVjdG9yIENvbG91cnMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGNkX2NvbG9yOiAiSXp2xJNsZXMgSm9zbGFzIEtyxIFzYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfY29sb3I6ICJpenZlZWxlcyBqb3NsYXMga3JhYXNhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VESVQKKyAgZGVzYzoga2V5Ym9hcmQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicmVkaWdqZWV0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfQkxBTksKKyAgZGVzYzoga2V5Ym9hcmQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidHVrc2hzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogVk9JQ0VfRU1QVFlfTElTVAorICBkZXNjOiBzcG9rZW4gb25seSwgd2hlbiBhIGxpc3QgZGlhbG9nIGNvbnRhaW5zIG5vIGVsZW1lbnRzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInR1a3NocyBzYXJha3N0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTk9UX1BSRVNFTlQKKyAgZGVzYzogd2hlbiBleHRlcm5hbCBtZW1vcnkgaXMgbm90IHByZXNlbnQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtdWx0aXZvbHVtZTogIk5vdCBwcmVzZW50IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIG11bHRpdm9sdW1lOiAiTmF2IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbXVsdGl2b2x1bWU6ICJuYXYiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+ICAKKyAgaWQ6IExBTkdfVEFMS19CQVRURVJZX0xFVkVMCisgIGRlc2M6IFNldHRpbmcgZm9yIHNwb250YW5lb3VzIGJhdHRlcnkgbGV2ZWwgYW5ub3VuY2VtZW50CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQW5ub3VuY2UgQmF0dGVyeSBMZXZlbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCBCYXRlcmlqYXMgTMSrbWVuaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6cnVuYWF0IGJhdGVyaWphcyBsaWltZW5pIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WT0lDRV9GSUxFVFlQRQorICBkZXNjOiB2b2ljZSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2F5IEZpbGUgVHlwZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJenJ1bsSBdCBGYWlsYSBWZWlkdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6cnVuYWF0IGZhaWxhIHZlaWR1IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CQVNTX0NVVE9GRgorICBkZXNjOiBCYXNzIHNldHRpbmcgY3V0LW9mZiBmcmVxdWVuY3kKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBpcG9kdmlkZW8saXBvZDZnLG1waW9oZDIwMCxtcGlvaGQzMDAsZ2lnYWJlYXRmeCxtcm9iZTEwMDogIkJhc3MgQ3V0b2ZmIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGlwb2R2aWRlbyxpcG9kNmcsbXBpb2hkMjAwLG1waW9oZDMwMCxnaWdhYmVhdGZ4LG1yb2JlMTAwOiAiQmFzdSBSb2Jlxb5mcmVrdmVuY2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBpcG9kdmlkZW8saXBvZDZnLG1waW9oZDIwMCxtcGlvaGQzMDAsZ2lnYWJlYXRmeCxtcm9iZTEwMDogImJhc3Ugcm9iZXpoZnJla3ZlbmNlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UUkVCTEVfQ1VUT0ZGCisgIGRlc2M6IFRyZWJsZSBzZXR0aW5nIGN1dC1vZmYgZnJlcXVlbmN5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgaXBvZHZpZGVvLGlwb2Q2ZyxtcGlvaGQyMDAsbXBpb2hkMzAwLGdpZ2FiZWF0ZngsbXJvYmUxMDA6ICJUcmVibGUgQ3V0b2ZmIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGlwb2R2aWRlbyxpcG9kNmcsbXBpb2hkMjAwLG1waW9oZDMwMCxnaWdhYmVhdGZ4LG1yb2JlMTAwOiAiQUYgUm9iZcW+ZnJla3ZlbmNlIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgaXBvZHZpZGVvLGlwb2Q2ZyxtcGlvaGQyMDAsbXBpb2hkMzAwLGdpZ2FiZWF0ZngsbXJvYmUxMDA6ICJhdWdzdG8gZnJla3ZlbmNodSByb2JlemhmcmVrdmVuY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RBR05BVklfUkFORE9NCisgIGRlc2M6ICI8UmFuZG9tPiIgZW50cnkgaW4gdGFnIGJyb3dzZXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICI8UmFuZG9tPiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICI8RGHFvsSBZGk+IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiZGF6aGFhZGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NBVkVfU09VTkQKKyAgZGVzYzogc2F2ZSBhIHNvdW5kIGNvbmZpZyBmaWxlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2F2ZSBTb3VuZCBTZXR0aW5ncyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJTYWdsYWLEgXQgU2thxYZhcyBVenN0xIFkxKtqdW11cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInNhZ2xhYmFhdCBza2FuamFzIHV6c3RhYWRpaWp1bXVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19LRVlDTElDSworICBkZXNjOiBpbiBrZXljbGljayBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIktleWNsaWNrIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJLbGlrxaHEt2lzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImtsaWtzaGtqaXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0tFWUNMSUNLX1JFUEVBVFMKKyAgZGVzYzogaW4ga2V5Y2xpY2sgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJLZXljbGljayBSZXBlYXRzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJLbGlrxaHEt3UgQXRrxIFydG/FoWFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJrbGlrc2hranUgYXRrYWFydG9zaGFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQUNDRVNTT1JZX1NVUFBMWQorICBkZXNjOiBpbiBzeXN0ZW0gc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFjY2Vzc29yeV9zdXBwbHk6ICJBY2Nlc3NvcnkgUG93ZXIgU3VwcGx5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFjY2Vzc29yeV9zdXBwbHk6ICJBa3Nlc3XEgXJ1IEJhcm/FoWFuYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGFjY2Vzc29yeV9zdXBwbHk6ICJha3Nlc3VhYXJ1IGJhcm9zaGFuYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVU5LTk9XTgorICBkZXNjOiBnZW5lcmljIHN0cmluZyBmb3IgdW5rbm93biBzdGF0ZXMsIHN1Y2ggYXMgYW4gdW5zZXQgY2xvY2sKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJVbmtub3duIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5lemluxIFtcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5lemluYWFtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX1FVSUNLU0NSRUVOCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBBbm5vdW5jZXMgZW50ZXJpbmcgdGhlICJxdWljayBzY3JlZW4iCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImFhdHJhaXMgZWtyYWFucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX09LCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBPbiBleGl0aW5nIGEgY29udGV4dCwgc3BlY2lmaWNhbGx5IHRoZSBxdWljayBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibGFiaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RPUF9SRUNPUkRJTkdfQU5EX1NIVVRET1dOCisgIGRlc2M6IGluIHJlY29yZCB0aW1lc3BsaXQgb3B0aW9ucworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlN0b3AgUmVjb3JkaW5nIEFuZCBTaHV0ZG93biIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJCZWlndCBJZXJha3N0dSBVbiBJenNsxJNndGllcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImJlaWd0IGllcmFrc3R1IHVuIGl6c2xlZWd0aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UT1VDSFBBRF9TRU5TSVRJVklUWQorICBkZXNjOiB0b3VjaHBhZCBzZW5zaXRpdml0eSBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRmeDogIlRvdWNocGFkIFNlbnNpdGl2aXR5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0Zng6ICJTa8SBcmllbnZpcnNtYXMgSsWrdMSrYmEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdGZ4OiAic2thYXJpZW52aXJzbWFzIGp1dXRpaWJhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ISUdICisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdGZ4OiAiSGlnaCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdGZ4OiAiQXVnc3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRmeDogImF1Z3N0cyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VSSUFMX0JJVFJBVEUKKyAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIlNlcmlhbCBCaXRyYXRlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+IAorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIlNlcmnEgWxhaXMgQml0cmVpdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPiAKKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICJzZXJpYWFsYWlzIGJpdHJlaXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TRVJJQUxfQklUUkFURV9BVVRPCisgIGRlc2M6IGluIHN5c3RlbSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICJBdXRvIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+IAorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIkF1dG9txIF0aXNraSIKKyAgPC9kZXN0PgorICA8dm9pY2U+IAorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogImF1dG9tYWF0aXNraSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VSSUFMX0JJVFJBVEVfOTYwMAorICBkZXNjOiBpbiBzeXN0ZW0gc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHNlcmlhbF9wb3J0OiAiOTYwMCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PiAKKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICI5NjAwIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4gCisgICAgKjogbm9uZQorICAgIHNlcmlhbF9wb3J0OiAiOTYwMCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VSSUFMX0JJVFJBVEVfMTkyMDAKKyAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIjE5MjAwIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+IAorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIjE5MjAwIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4gCisgICAgKjogbm9uZQorICAgIHNlcmlhbF9wb3J0OiAiMTkyMDAiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NFUklBTF9CSVRSQVRFXzM4NDAwCisgIGRlc2M6IGluIHN5c3RlbSBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICIzODQwMCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PiAKKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICIzODQwMCIKKyAgPC9kZXN0PgorICA8dm9pY2U+IAorICAgICo6IG5vbmUKKyAgICBzZXJpYWxfcG9ydDogIjM4NDAwIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TRVJJQUxfQklUUkFURV81NzYwMAorICBkZXNjOiBpbiBzeXN0ZW0gc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHNlcmlhbF9wb3J0OiAiNTc2MDAiCisgIDwvc291cmNlPgorICA8ZGVzdD4gCisgICAgKjogbm9uZQorICAgIHNlcmlhbF9wb3J0OiAiNTc2MDAiCisgIDwvZGVzdD4KKyAgPHZvaWNlPiAKKyAgICAqOiBub25lCisgICAgc2VyaWFsX3BvcnQ6ICI1NzYwMCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVkVSWV9TTE9XCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJWZXJ5IHNsb3ciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAixLtvdGkgTMSTbnMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJsam90aSBsZWVucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0xPVworICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2xvdyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJMxJNucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImxlZW5zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19WRVJZX0ZBU1QKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlZlcnkgZmFzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICLEu290aSDEgHRycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImxqb3RpIGFhdHJzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19GQVNUCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGYXN0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIsSAdHJzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYWF0cnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NLSVBfTEVOR1RICisgIGRlc2M6IHBsYXliYWNrIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTa2lwIExlbmd0aCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJemxhacWhYW5hcyBHYXJ1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpemxhaXNoYW5hcyBnYXJ1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NLSVBfVFJBQ0sKKyAgZGVzYzogc2tpcCBsZW5ndGggc2V0dGluZyBlbnRyeSAwCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2tpcCBUcmFjayIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJemxhaXN0IER6aWVzbXUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpemxhaXN0IGR6aWVzbXUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9DSEFSX1NMQVNICisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3Igc3BlbGxpbmcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic2xpaXBzdmlpdHJhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19HQUlOX0xFRlQKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJHYWluIEwiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiS3JlaXNhaXMgS2FuxIFscyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogImtyZWlzYWEga2FuYWFsYSBwYXN0aXByaW5hYWp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0dBSU5fUklHSFQKKyAgZGVzYzogaW4gdGhlIHJlY29yZGluZyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJHYWluIFIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiTGFiYWlzIEthbsSBbHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJsYWJhYSBrYW5hYWxhIHBhc3RpcHJpbmFhanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX0FHQ19QUkVTRVQKKyAgZGVzYzogYXV0b21hdGljIGdhaW4gY29udHJvbCBpbiByZWNvcmQgc2V0dGluZ3MgYW5kIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogIkFHQyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJBUFIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJhdXRvbWFhdGlza2EgcGFzdGlwcmluYWFqdW1hIHJlZ3VsYWFjaWphIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRUNPUkRJTkdfQUdDX0NMSVBUSU1FCisgIGRlc2M6IGluIHJlY29yZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGFnYzogIkFHQyBjbGlwIHRpbWUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgYWdjOiAiQVBSIMSBdHJ1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJhdXRvbWFhdGlza2FhcyBwYXN0aXByaW5hYWp1bWEgcmVndWxhYWNpamFzIGFhdHJ1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19BR0NfTUFYR0FJTgorICBkZXNjOiBBR0MgbWF4aW11bSBnYWluIGluIHJlY29yZGluZyBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBhZ2M6ICJBR0MgbWF4LiBnYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGFnYzogIkFQUiBtYWtzLnNrYcS8dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgYWdjOiAiYXV0b21hYXRpc2thYXMgcGFzdGlwcmluYWFqdW1hIHJlZ3VsYWFjaWphcyBtYWtzaW1hYWxhaXMgc2thbGp1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19GSUxFTkFNRQorICBkZXNjOiBGaWxlbmFtZSBoZWFkZXIgaW4gcmVjb3JkaW5nIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkZpbGVuYW1lOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJGYWlsYSBub3NhdWt1bXM6IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTV9DTElQQ09VTlQKKyAgZGVzYzogaW4gcmVjb3JkaW5nIEdVSSwgZm9yIHJlY29yZGluZyBwZWFrIG1ldGVyLiBNQVggNSBjaGFyYWN0ZXJzIQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIkNMSVA6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIlDEgFJTTjoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFQ09SRElOR19USU1FU1BMSVRfUkVDCisgIGRlc2M6IERpc3BsYXkgb2YgcmVjb3JkIHRpbWVyIGludGVydmFsIHNldHRpbmcsIG9uIHRoZSByZWNvcmQgc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiU3BsaXQgVGltZToiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nOiAiUMSBcnRyYXVrdW1hIExhaWtzOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX1NJWkUKKyAgZGVzYzogRGlzcGxheSBvZiByZWNvcmRlZCBmaWxlIHNpemUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJTaXplOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByZWNvcmRpbmc6ICJJem3Ek3JzOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlY29yZGluZzogIiIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVDT1JESU5HX01PTk9fTU9ERQorICBkZXNjOiBpbiB0aGUgcmVjb3JkaW5nIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJNb25vIG1vZGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJNb25vIHJlxb7Eq21zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVjb3JkaW5nX3N3Y29kZWM6ICJtb25vIHJlemhpaW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TRUFSQ0hfUkVTVUxUUworICBkZXNjOiB0aXRsZSBmb3IgdGhlIGxpc3Qgb2YgcmVzdWx0cyBkaXNwbGF5ZWQgYWZ0ZXIgc2VhcmNoaW5nIGluIGEgcGxheWxpc3QKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTZWFyY2ggUmVzdWx0cyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJNZWtsxJPFoWFuYXMgUmV6dWx0xIF0aSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm1la2xlZXNoYW5hcyByZXp1bHRhYXRpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19MRUZUCisgIGRlc2M6IEdlbmVyaWMgdXNlIG9mICdsZWZ0JworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkxlZnQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGEgS3JlaXNpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGEga3JlaXNpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SSUdIVAorICBkZXNjOiBHZW5lcmljIHVzZSBvZiAncmlnaHQnCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmlnaHQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGEgTGFiaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhIGxhYmkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFU0VUX1NFVFRJTkcKKyAgZGVzYzogdXNlZCBpbiB0aGUgc2V0dGluZ3MgY29udGV4dCBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVzZXQgU2V0dGluZyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdGphdW5vdCBVenN0xIFkxKtqdW11IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRqYXVub3QgdXpzdGFhZGlpanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfTEVGVF9RU19JVEVNCisgIGRlc2M6IHVzZWQgZm9yIHRoZSBzdWJtZW51IG5hbWUgZm9yIHRoZSBxdWlja3NjcmVlbiBpdGVtcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAiU2V0IGFzIExlZnQgUXVpY2tzY3JlZW4gSXRlbSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBxdWlja3NjcmVlbjogIlV6bGlrdCBLxIEgS3IuxIB0cm8gVXpzdMSBZMSranVtdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAidXpsaWt0IGthYSBrcmVpc28gYWF0cm8gdXpzdGFhZGlpanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUklHSFRfUVNfSVRFTQorICBkZXNjOiB1c2VkIGZvciB0aGUgc3VibWVudSBuYW1lIGZvciB0aGUgcXVpY2tzY3JlZW4gaXRlbXMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBxdWlja3NjcmVlbjogIlNldCBhcyBSaWdodCBRdWlja3NjcmVlbiBJdGVtIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAiVXpsaWt0IEvEgSBMLsSAdHJvIFV6c3TEgWTEq2p1bXUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBxdWlja3NjcmVlbjogInV6bGlrbHQga2FhIGxhYm8gYWF0cm8gdXpzdGFhZGlpanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQk9UVE9NX1FTX0lURU0KKyAgZGVzYzogdXNlZCBmb3IgdGhlIHN1Ym1lbnUgbmFtZSBmb3IgdGhlIHF1aWNrc2NyZWVuIGl0ZW1zCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcXVpY2tzY3JlZW46ICJTZXQgYXMgQm90dG9tIFF1aWNrc2NyZWVuIEl0ZW0iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcXVpY2tzY3JlZW46ICJVemxpa3QgS8SBIEFwLsSAdHJvIFV6c3TEgWTEq2p1bXUiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBxdWlja3NjcmVlbjogInV6bGlrdCBrYWEgYXBha3NoZWVqbyBhYXRybyB1enN0YWFkaWlqdW11IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DUkVESVRTCisgIGRlc2M6IGluIHRoZSBNYWluIE1lbnUgLT4gU3lzdGVtIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNyZWRpdHMiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGF0ZWljxKtiYXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwYXRlaWNpaWJhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU09SVF9JTlRFUlBSRVRfTlVNQkVSUworICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBGaWxlIHZpZXcKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJJbnRlcnByZXQgbnVtYmVycyB3aGVuIHNvcnRpbmciCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTnVtdXJ1IEludGVycHJldMSBY2lqYSBLxIFydG9qb3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJudW11cnUgaW50ZXJwcmV0YWFjaWphIGthYXJ0b2pvdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU09SVF9JTlRFUlBSRVRfQVNfRElHSVQKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gRmlsZSB2aWV3CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXMgZGlnaXRzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkvEgSBjaXBhcnVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAia2FhIGNpcGFydXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NPUlRfSU5URVJQUkVUX0FTX05VTUJFUlMKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gRmlsZSB2aWV3CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQXMgd2hvbGUgbnVtYmVycyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJLxIEgbnVtdXJ1cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogImthYSBudW11cnVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19FTkFCTEVfU1BFQUtFUgorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBTb3VuZCBTZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHNwZWFrZXI6ICJFbmFibGUgU3BlYWtlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzcGVha2VyOiAiSWVzbMSTZ3QgU2thxLxydW5pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3BlYWtlcjogImllc2xlZWd0IHNrYWxqcnVuaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fTU9ERQorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gVG91Y2hzY3JlZW4gU2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIlRvdWNoc2NyZWVuIE1vZGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJTa8SBcmllbmrFq3TEq2dhaXMgRWtyxIFucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHRvdWNoc2NyZWVuOiAic2thYXJpZW5qdXV0aWlnYWlzIGVrcmFhbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RPVUNIU0NSRUVOX0dSSUQKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IFRvdWNoc2NyZWVuIFNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICIzeDMgR3JpZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIjN4MyBUxKtrbHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogInRyaWlzIHJlaXogdHJpaXMgdGlpa2xzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UT1VDSFNDUkVFTl9QT0lOVAorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gVG91Y2hzY3JlZW4gU2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkFic29sdXRlIFBvaW50IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHRvdWNoc2NyZWVuOiAiQWJzb2zFq3RhaXMgUHVua3RzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJhYnNvbHV1dGFpcyBwdW5rdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BSRVZFTlRfU0tJUFBJTkcKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gUGxheWJhY2sgU2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQcmV2ZW50IFRyYWNrIFNraXBwaW5nIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5vdsSTcnN0IER6aWVzbXUgSXpsYWnFoWFudSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5vdmVlcnN0IGR6aWVzbXUgaXpsYWlzaGFudSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVElNRVNUUkVUQ0gKKyAgZGVzYzogdGltZXN0cmV0Y2ggZW5hYmxlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlRpbWVzdHJldGNoIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICLEgHRydW1hIE1hacWGYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhYXRydW1hIG1haW5qYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1BFRUQKKyAgZGVzYzogdGltZXN0cmV0Y2ggc3BlZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiU3BlZWQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIsSAdHJ1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiYWF0cnVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVE9VQ0hTQ1JFRU5fU0VUVElOR1MKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIlRvdWNoc2NyZWVuIFNldHRpbmdzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHRvdWNoc2NyZWVuOiAiU2suRWtyxIFuYSBVenN0xIFkxKtqdW1pIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJza2Fhcmllbmp1dXRpaWdhYSBla3JhYW5hIHV6c3RhYWRpaWp1bWkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RPVUNIU0NSRUVOX0NBTElCUkFURQorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gVG91Y2hzY3JlZW4gU2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkNhbGlicmF0ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkthbGlicsSTdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHRvdWNoc2NyZWVuOiAia2FsaWJyZWV0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UT1VDSFNDUkVFTl9SRVNFVF9DQUxJQlJBVElPTgorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gVG91Y2hzY3JlZW4gU2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIlJlc2V0IENhbGlicmF0aW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHRvdWNoc2NyZWVuOiAiSXpkesSTc3QgS2FsaWJyxIFjaWp1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJpemR6ZWVzdCBrYWxpYnJhYWNpanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NUQVRVU0JBUl9UT1AKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IHN0YXR1c2JhcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlRvcCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdWfFocSBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXVnc2hhYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RBVFVTQkFSX0JPVFRPTQorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gc3RhdHVzYmFyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQm90dG9tIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkFwYWvFocSBIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXBha3NoYWEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9TVEFUVVNCQVIKKyAgZGVzYzogaW4gU2V0dGluZ3MgLT4gR2VuZXJhbCAtPiBEaXNwbGF5IC0+IHN0YXR1c2JhcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZSBTdGF0dXNiYXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiUHVsdHMgU3RhdHVzYWpvc2xhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgc3RhdHVzYSBqb3NsYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VNSVRPTkUKKyAgZGVzYzogCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJTZW1pdG9uZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlB1c3RvbmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJwdXN0b25pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RSRVRDSF9MSU1JVAorICBkZXNjOiAibGltaXQiIGluIHBpdGNoIHNjcmVlbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHBpdGNoc2NyZWVuOiAiTGltaXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJJZXJvYmXFvm9qdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJpZXJvYmV6aG9qdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QTEFZQkFDS19SQVRFCisgIGRlc2M6ICJyYXRlIiBpbiBwaXRjaCBzY3JlZW4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBwaXRjaHNjcmVlbjogIlJhdGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICLEgHRydW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcGl0Y2hzY3JlZW46ICJhYXRydW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19VU0JfS0VZUEFEX01PREUKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJVU0IgS2V5cGFkIE1vZGUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIlVTQiBLbGF2aWF0xatyYXMgUmXFvsSrbXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICB1c2JfaGlkOiAidXVlc2JlZSBrbGF2aWF0dXVyYXMgcmV6aGlpbXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01VTFRJTUVESUFfTU9ERQorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIk11bHRpbWVkaWEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIk11bHRpbcSTZGlqdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJtdWx0aW1lZWRpanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1BSRVNFTlRBVElPTl9NT0RFCisgIGRlc2M6IGluIHNldHRpbmdzX21lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB1c2JfaGlkOiAiUHJlc2VudGF0aW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJQcmV6ZW50xIFjaWp1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogInByZXplbnRhYWNpanUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JST1dTRVJfTU9ERQorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIkJyb3dzZXIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIlDEgXJsxatrcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJwYWFybHV1a2EiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX01PVVNFX01PREUKKyAgZGVzYzogaW4gc2V0dGluZ3NfbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJNb3VzZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICB1c2JfaGlkOiAiUGVsZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHVzYl9oaWQ6ICJwZWxlIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TS0lOX1JBTV9VU0FHRQorICBkZXNjOiBob3cgbXVjaCBSQU0gdGhlIHNraW5zIGFyZSB1c2luZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlNraW4gUkFNIHVzYWdlOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICLEgGRhcyBSQU0gaXpsLjoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhYWRhcyByYW0gaXpsaWV0b2p1bXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1NDUk9MTEJBUl9XSURUSAorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBHZW5lcmFsIC0+IERpc3BsYXkgLT4gU3RhdHVzLS9TY3JvbGxiYXIKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiU2Nyb2xsIEJhciBXaWR0aCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiUnVsbGpvc2xhcyBQbGF0dW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbGNkX2JpdG1hcDogInJ1bGxqb3NsYXMgcGxhdHVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0NST0xMQkFSX1BPU0lUSU9OCisgIGRlc2M6IGluIFNldHRpbmdzIC0+IEdlbmVyYWwgLT4gRGlzcGxheSAtPiBTdGF0dXMtL1Njcm9sbGJhcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJTY3JvbGwgQmFyIFBvc2l0aW9uIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJSdWxsam9zbGFzIFBvesSrY2lqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJydWxsam9zbGFzIHBvemlpY2lqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09NUFJFU1NPUgorICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJDb21wcmVzc29yIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJLb21wcmVzb3JzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogImtvbXByZXNvcnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1RPUF9RU19JVEVNCisgIGRlc2M6IHVzZWQgZm9yIHRoZSBzdWJtZW51IG5hbWUgZm9yIHRoZSBxdWlja3NjcmVlbiBpdGVtcworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAiU2V0IGFzIFRvcCBRdWlja3NjcmVlbiBJdGVtIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAiVXpsaWt0IEvEgSBBdWcuxIB0cm8gVXpzdMSBZMSranVtdSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHF1aWNrc2NyZWVuOiAidXpsaWt0IGthYSBhdWdzaGVlam8gYWF0cm8gdXpzdGFhZGlpanVtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fSVRBTFkKKyAgZGVzYzogZm0gcmVnaW9uIEl0YWx5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJJdGFseSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkl0xIFsaWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJpdGFhbGlqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fT1RIRVIKKyAgZGVzYzogQ2F0Y2gtYWxsIEZNIHJlZ2lvbi4gU2VsZWN0IGlmIG5vbmUgb2YgdGhlIG90aGVycyB3b3JrCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJPdGhlciIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIkNpdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICByYWRpbzogImNpdHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfVEhSRVNIT0xECisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlRocmVzaG9sZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiU2xpZWtzbmlzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInNsaWVrc25pcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SQVRJTworICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJSYXRpbyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiQXR0aWVjxKtiYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdHRpZWNpaWJhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT01QUkVTU09SX1JBVElPXzIKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiMjoxIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICIyOjEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiZGl2aSBwcmV0IHZpZW51IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT01QUkVTU09SX1JBVElPXzQKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiNDoxIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICI0OjEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiY2hldHJpIHByZXQgdmllbnUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfUkFUSU9fNgorICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICI2OjEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIjY6MSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJzZXNoaSBwcmV0IHZpZW51IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DT01QUkVTU09SX1JBVElPXzEwCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIjEwOjEiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIjEwOjEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiZGVzbWl0IHByZXQgdmllbnUiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfUkFUSU9fTElNSVQKKyAgZGVzYzogaW4gc291bmQgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiTGltaXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkllcm9iZcW+b2p1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiaWVyb2JlemhvanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09NUFJFU1NPUl9HQUlOCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIk1ha2V1cCBHYWluIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJCZWlndSBQYXN0aXByaW7EgWp1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiYmVpZ3UgcGFzdGlwcmluYWFqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BVVRPCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkF1dG8iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkF1dG9txIF0aXNrcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdXRvbWFhdGlza3MiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfS05FRQorICBkZXNjOiBpbiBzb3VuZCBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJLbmVlIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJQxIFyZWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInBhYXJlamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfSEFSRF9LTkVFCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIkhhcmQgS25lZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiQXNhIFDEgXJlamEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiYXNhIHBhYXJlamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0NPTVBSRVNTT1JfU09GVF9LTkVFCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlNvZnQgS25lZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiSXpsxKtkemluxIF0YSBQxIFyZWphIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIml6bGlpZHppbmFhdGEgcGFhcmVqYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQ09NUFJFU1NPUl9SRUxFQVNFCisgIGRlc2M6IGluIHNvdW5kIHNldHRpbmdzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlJlbGVhc2UgVGltZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBzd2NvZGVjOiAiU2FtYXppbsSBxaFhbmFzIExhaWtzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogInNhbWF6aW5hYXNoYW5hcyBsYWlrcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0tJUF9PVVRSTworICBkZXNjOiBza2lwcGluZyB0byB0aGUgNSBzZWNvbmRzIGJlZm9yZSB0aGUgZW5kIG9mIGEgdHJhY2sKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTa2lwIHRvIE91dHJvIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlDEgXJzbMSTZ3QgVXogQmVpZ8SBbSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhYXJzbGVlZ3QgdXogYmVpZ2FhbSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU1RBVFVTQkFSX0NVU1RPTQorICBkZXNjOiBpZiB0aGlzIHRyYW5zbGF0aW9uIGlzIGNvbXBhdGlibGUgd2l0aCBMQU5HX0NIQU5ORUxfQ1VTVE9NLCB0aGVuIHBsZWFzZSB1c2UgdGhlIHNhbWUgdHJhbnNsYXRpb24uIGl0IGNhbiBiZSBjb21iaW5lZCBsYXRlciB0aGVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ3VzdG9tIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk5lc3RhbmRhcnRhIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibmVzdGFuZGFydGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FWFRfU0JTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAic3RhdHVzYSBqb3NsYXMgYWFkYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9SU0JTCisgIGRlc2M6IHNwb2tlbiBvbmx5LCBmb3IgZmlsZSBleHRlbnNpb24KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICByZW1vdGU6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAicHVsdHMgc3RhdHVzYSBqb3NsYXMgYWFkYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfVVNCX0hJRAorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIlVTQiBISUQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdXNiX2hpZDogIlVTQiBJZXZhZGVzIEllcsSrY2UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICB1c2JfaGlkOiAidXVlc2JlZSBpZXZhZGVzIGllcmlpY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0lOU0VSVF9MQVNUX1NIVUZGTEVECisgIGRlc2M6IGluIG9ucGxheSBtZW51LiAgaW5zZXJ0IGEgcGxheWxpc3QgcmFuZG9tbHkgYXQgZW5kIG9mIGR5bmFtaWMgcGxheWxpc3QKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJJbnNlcnQgTGFzdCBTaHVmZmxlZCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJJZXZpZXRvdCBTYWphdWt0aSBCZWlnxIFzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiaWV2aWV0b3Qgc2FqYXVrdGkgYmVpZ2FhcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUVVFVUVfTEFTVF9TSFVGRkxFRAorICBkZXNjOiBpbiBvbnBsYXkgbWVudS4gIHF1ZXVlIGEgcGxheWxpc3QgcmFuZG9tbHkgYXQgZW5kIG9mIGR5bmFtaWMgcGxheWxpc3QKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJRdWV1ZSBMYXN0IFNodWZmbGVkIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkllbGlrdCBTYWphdWt0aSBSaW5kxIEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJpZWxpa3Qgc2FqYXVrdGkgcmluZGFhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NT1JTRV9JTlBVVAorICBkZXNjOiBpbiBTZXR0aW5ncyAtPiBTeXN0ZW0KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBtb3JzZV9pbnB1dDogIlVzZSBNb3JzZSBDb2RlIElucHV0IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIG1vcnNlX2lucHV0OiAiSXptYW50b3QgTW9yemVzIElldmFkaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIG1vcnNlX2lucHV0OiAiaXptYW50b3QgbW9yemVzIGlldmFkaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfQVVUT1RSQUNLU0tJUAorICBkZXNjOiBpbiBjcm9zc2ZhZGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBjcm9zc2ZhZGU6ICJBdXRvbWF0aWMgVHJhY2sgQ2hhbmdlIE9ubHkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgY3Jvc3NmYWRlOiAiVGlrYWkgQXV0b23EgXRpc2tpIFDEgXJzbMSTZHpvdGllcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGNyb3NzZmFkZTogInRpa2FpIGF1dG9tYWF0aXNraSBwYWFyc2xlZWR6b3RpZXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX05FWFRfVFJBQ0sKKyAgZGVzYzogU2hvd24gaW4gV1BTCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiTmV4dCBUcmFjazoiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiTsSBa2FtxIEgRHppZXNtYToiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuYWFrYW1hYSBkemllc21hIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ORVhUCisgIGRlc2M6IFNob3duIGluIFdQUyAoc2hvcnQgZm9ybSBvZiBOZXh0IFRyYWNrKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIk5leHQ6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIk7EgWthbcSBOiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIm5hYWthbWFhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19PRgorICBkZXNjOiBTaG93biBpbiBXUFM6IFggb2YgWSAodHJhY2tzKQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIm9mIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIm5vIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAibm8iCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0JBU0VfU0tJTgorICBkZXNjOiBicm93c2UgZm9yIHRoZSBiYXNlIHNraW4gaW4gdGhlbWUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAiQmFzZSBTa2luIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJQYW1hdMSBZGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAicGFtYXRhYWRhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19SRU1PVEVfQkFTRV9TS0lOCisgIGRlc2M6IGJyb3dzZSBmb3IgdGhlIGJhc2Ugc2tpbiBpbiB0aGVtZSBzZXR0aW5ncworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJSZW1vdGUgQmFzZSBTa2luIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGxjZF9iaXRtYXA6ICJQdWx0cyBQYW1hdMSBZGEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBsY2RfYml0bWFwOiAicHVsdHMgcGFtYXRhYWRhIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19NQUlOX1NDUkVFTgorICBkZXNjOiBpbiB0aGUgbWFpbiBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiTWFpbiBTY3JlZW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiSWVyxKtjZXMgRWtyxIFucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogImllcmlpY2VzIGVrcmFhbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFTU9URV9TQ1JFRU4KKyAgZGVzYzogaW4gdGhlIG1haW4gbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogIlJlbW90ZSBTY3JlZW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmVtb3RlOiAiUHVsdHMgRWtyxIFucyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJlbW90ZTogInB1bHRzIGVrcmFhbnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0xJTkVPVVRfT05PRkYKKyAgZGVzYzogaW4gc3lzdGVtIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBsaW5lb3V0X3Bvd2Vyb2ZmOiAiTGluZSBPdXQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgbGluZW91dF9wb3dlcm9mZjogIkxpbmXEgXLEgSBJemVqYSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGxpbmVvdXRfcG93ZXJvZmY6ICJsaW5lYWFyYWEgaXplamEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hPVEtFWQorICBkZXNjOiBob3RrZXkgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGhvdGtleTogIkhvdGtleSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBob3RrZXk6ICJLYXJzdGllIFRhdXN0acWGaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGhvdGtleTogImthcnN0aWUgdGF1c3RpbmppIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19IT1RLRVlfV1BTCisgIGRlc2M6IGhvdGtleSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgaG90a2V5OiAiV1BTIEhvdGtleSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBob3RrZXk6ICJBdHNrYcWGLiBMb2dhIFRhdXN0acWGxaEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBob3RrZXk6ICJhdHNrYW5qb3NoYW5hcyBsb2dhIHRhdXN0aW5qc2giCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hPVEtFWV9GSUxFX0JST1dTRVIKKyAgZGVzYzogaG90a2V5IG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBob3RrZXk6ICJGaWxlIEJyb3dzZXIgSG90a2V5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGhvdGtleTogIkZhbHUgUMSBcmzFq2thIFRhdXN0acWGxaEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBob3RrZXk6ICJmYWlsdSBwYWFybHV1a2EgdGF1c3RpbmpzaCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVTVU1FX1JFV0lORAorICBkZXNjOiBpbiBwbGF5YmFjayBzZXR0aW5ncyBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgc3djb2RlYzogIlJld2luZCBCZWZvcmUgUmVzdW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJBdHTEq3QgUGlybXMgQXRzxIFrdCIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHN3Y29kZWM6ICJhdHRpaXQgcGlybXMgYXRzYWFrdCIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVNT1RFX1JBRElPU0NSRUVOCisgIGRlc2M6IGluIHRoZSB0aGVtZSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fcmVtb3RlOiAiUmVtb3RlIFJhZGlvIFNjcmVlbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpb19yZW1vdGU6ICJQdWx0cyBSYWRpbyBFa3LEgW5zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fcmVtb3RlOiAicHVsdHMgcmFkaW8gZWtyYWFucyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IFZPSUNFX0VYVF9GTVMKKyAgZGVzYzogc3Bva2VuIG9ubHksIGZvciBmaWxlIGV4dGVuc2lvbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJyYWRpbyBla3JhYW5hIGFhZGEiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBWT0lDRV9FWFRfUkZNUworICBkZXNjOiBzcG9rZW4gb25seSwgZm9yIGZpbGUgZXh0ZW5zaW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW9fcmVtb3RlOiAiIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvX3JlbW90ZTogIiIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIHJhZGlvX3JlbW90ZTogInB1bHRzIHJhZGlvIGVrcmFhbmEgYWFkYSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fU1RBVElPTl9IRUFERVIKKyAgZGVzYzogaW4gcmFkaW8gc2NyZWVuCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTdGF0aW9uOiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICByYWRpbzogIlN0YWNpamE6IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hXX0VRX1RPTkVfQ09OVFJPTFMKKyAgZGVzYzogaW4gc291bmRfbWVudSwgaGFyZHdhcmUgZXF1YWxpemVyIHRvbmUgY29udHJvbHMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJUb25lIENvbnRyb2xzIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogIlRvxYZhIEtvbnRyb2xlcyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogInRvbmphIGtvbnRyb2xlcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSFdfRVFfVE9ORV9DT05UUk9MU19BRFZBTkNFRAorICBkZXNjOiBpbiBzb3VuZF9tZW51LCBhZHZhbmNlZCBzZXR0aW5ncyBmb3IgaGFyZHdhcmUgZXF1YWxpemVyIHRvbmUgY29udHJvbHMKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJBZHZhbmNlZCBUb25lIENvbnRyb2wgU2V0dGluZ3MiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiUGFwaWxkdXMgVG/FhmEgS29udHJvbGVzIFV6c3TEgWTEq2p1bWkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJwYXBpbGR1cyB0b25qYSBrb250cm9sZXMgdXpzdGFhZGlpanVtaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSFdfRVFfR0FJTgorICBkZXNjOiBpbiBzb3VuZF9tZW51LCBoYXJkd2FyZSBlcXVhbGl6ZXIgdG9uZSBjb250cm9scyBmaWx0ZXIgZ2FpbgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogIkJhbmQgJWQgR2FpbiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJKb3NsYXMgJWQgUGFzdGlwcmluxIFqdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiam9zbGFzICVkIHBhc3RpcHJpbmFhanVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSFdfRVFfRlJFUVVFTkNZCisgIGRlc2M6IGluIHNvdW5kX21lbnUsIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzIHNoZWxmIGZpbHRlciBjdXRvZmYgZnJlcXVlbmN5CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiQmFuZCAlZCBGcmVxdWVuY3kiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiSm9zbGFzICVkIEZyZWt2ZW5jZSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogImpvc2xhcyAlZCBmcmVrdmVuY2UiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hXX0VRX1dJRFRICisgIGRlc2M6IGluIHNvdW5kX21lbnUsIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzIHBlYWsgYmFuZHdpdGggc2V0dGluZworICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogIkJhbmQgJWQgV2lkdGgiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiSm9zbGFzICVkIFBsYXR1bXMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJqb3NsYXMgJWQgcGxhdHVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSFdfRVFfV0lEVEhfTkFSUk9XCisgIGRlc2M6IGluIHNvdW5kX21lbnUsIGhhcmR3YXJlIGVxdWFsaXplciB0b25lIGNvbnRyb2xzIG5hcnJvdyBiYW5kd2l0aCBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiTmFycm93IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogIsWgYXVycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogInNoYXVycyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfSFdfRVFfV0lEVEhfV0lERQorICBkZXNjOiBpbiBzb3VuZF9tZW51LCBoYXJkd2FyZSBlcXVhbGl6ZXIgdG9uZSBjb250cm9scyB3aWRlIGJhbmR3aWR0aCBzZXR0aW5nCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzOiAiV2lkZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBnaWdhYmVhdHM6ICJQbGF0cyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGdpZ2FiZWF0czogInBsYXRzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19ERVBUSF8zRAorICBkZXNjOiBpbiBzb3VuZF9tZW51LCBhbW91bnQgb2YgM0QgZW5oYW5jZW1lbnQgZWZmZWN0CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzLG1waW9oZDIwMCxtcGlvaGQzMDA6ICIzLUQgRW5oYW5jZW1lbnQiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzLG1waW9oZDIwMCxtcGlvaGQzMDA6ICIzLUQgUGFwbGHFoWluxIFqdW1zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgZ2lnYWJlYXRzLG1waW9oZDIwMCxtcGlvaGQzMDA6ICJ0cmlpcyBkaW1lbnNpanUgcGFwbGFzaGluYWFqdW1zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19UQUdOQVZJX1VOVEFHR0VECisgIGRlc2M6ICI8dW50YWdnZWQ+IiBlbnRyeSBpbiB0YWcgYnJvd3NlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIjxVbnRhZ2dlZD4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiPE5lYXR6xKttxJN0cz4iCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJuZWF0emlpbWVldHMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JBRElPU0NSRUVOCisgIGRlc2M6IGluIHRoZSB0aGVtZSBtZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJSYWRpbyBTY3JlZW4iCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJSYWRpbyBFa3LEgW5zIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJlYWRpbyBla3JhYW5zIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19JRDNfQ09NUE9TRVIKKyAgZGVzYzogaW4gdGFnIHZpZXdlcgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkNvbXBvc2VyIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIktvbXBvbmlzdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0ZPUkNFCisgIGRlc2M6IGFsdGVybmF0aXZlIHRvIHllcy9ubyBmb3IgdHJpc3RhdGUgc2V0dGluZ3MKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJGb3JjZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJQaWVzcGllc3QiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwaWVzcGllc3QiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX09OUExBWV9QSUNUVVJFRkxPVworICBkZXNjOiBPbnBsYXkgcGljdHVyZWZsb3cKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJQaWN0dXJlRmxvdyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICJBdHTEk2x1IFBsxatzbWEiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJhdHZlZXJ0IGF0dGVlbHUgcGx1dXNtdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfS0JEX09LCisgIGRlc2M6IGluIGtleWJvYXJkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJPSyIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkxhYmkiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogImxhYmkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0tCRF9ERUxFVEUKKyAgZGVzYzogaW4ga2V5Ym9hcmQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkRlbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIkl6ZHoiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6IG5vbmUKKyAgICB0b3VjaHNjcmVlbjogIml6ZHplZXN0IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19LQkRfQ0FOQ0VMCisgIGRlc2M6IGluIGtleWJvYXJkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJDYW5jZWwiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJBdHRlaWt0aWVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgdG91Y2hzY3JlZW46ICJhdHRlaWt0aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19CT09LTUFSS19TRVRUSU5HU19BVVRPVVBEQVRFCisgIGRlc2M6IHByb21wdCBmb3IgdXNlciB0byBkZWNpZGUgd2hldGhlciB0byB1cGRhdGUgYm9va21hcmtzCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiVXBkYXRlIG9uIFN0b3AiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRqYXVub3QgQXBzdMSBam90aWVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRqYXVub3QgYXBzdGFham90aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TRVRfQVNfU1RBUlRfRElSCisgIGRlc2M6IHVzZWQgaW4gdGhlIG9ucGxheSBtZW51IHRvIHNldCBhIHN0YXJ0aW5nIGJyb3dzZXIgZGlyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU3RhcnQgRmlsZSBCcm93c2VyIEhlcmUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUGFsYWlzdCDFoGVpdCBGYWlsdSBQxIFybMWra3UiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwYWxhaXN0IHNoZWl0IGZhaWx1IHBhYXJsdXVrdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfUkVTRVRfU1RBUlRfRElSCisgIGRlc2M6IHJlc2V0IHRoZSBicm93c2VyIHN0YXJ0IGRpcmVjdG9yeQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlN0YXJ0IEZpbGUgQnJvd3NlciBhdCAvIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlDEgXJzdGF0xKt0IEZhaWx1IFDEgXJsxatrdSB1eiAvIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAicGFhcnN0YXRpaXQgZmFpbHUgcGFhcmx1dWt1IHV6IHBhbWF0bWFwaSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRk1fUlNTSQorICBkZXNjOiBTaWduYWwgc3RyZW5ndGggb2YgYSByZWNlaXZlZCBGTSBzdGF0aW9uCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJTaWduYWwgc3RyZW5ndGg6IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogbm9uZQorICAgIHJhZGlvOiAiU2lnbsSBbGEgU3RpcHJ1bXM6IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgcmFkaW86ICJzaWduYWFsYSBzdGlwcnVtcyIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfRklMRVNJWkUKKyAgZGVzYzogaW4gcmVjb3JkIHRpbWVzcGxpdCBvcHRpb25zIGFuZCBpbiB0cmFjayBpbmZvcm1hdGlvbiB2aWV3ZXIgCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiRmlsZXNpemUiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiSXptxJNycyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogIml6bWVlcnMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FVVE9SRVNVTUVfRU5BQkxFCisgIGRlc2M6IGRlcHJlY2F0ZWQKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICIiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BVVRPUkVTVU1FX0VOQUJMRV9ZRVMKKyAgZGVzYzogZGVwcmVjYXRlZAorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIiIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICIiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICIiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FVVE9SRVNVTUUKKyAgZGVzYzogcmVzdW1lIHNldHRpbmdzIG1lbnUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJBdXRvbWF0aWMgcmVzdW1lIgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIkF0c8SBa3QgQXV0b23EgXRpc2tpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRzYWFrdCBhdXRvbWFhdGlza2kiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0FVVE9SRVNVTUVfQVVUT01BVElDCisgIGRlc2M6IHJlc3VtZSBvbiBhdXRvbWF0aWMgdHJhY2sgY2hhbmdlCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiUmVzdW1lIG9uIGF1dG9tYXRpYyB0cmFjayBjaGFuZ2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXRzxIFrdCBBdXRvbcSBdGlza2kgUMSBcnNsxJNkem90aWVzIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXRzYWFrdCBhdXRvbWFhdGlza2kgcGFhcnNsZWVkem90aWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19BVVRPUkVTVU1FX0NVU1RPTQorICBkZXNjOiBlbmFibGUgY3VzdG9taXphdGlvbiBvZiByZXN1bWUgb24gYXV0b21hdGljIHRyYWNrIGNoYW5nZQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIkluIGN1c3RvbSBkaXJlY3RvcmllcyBvbmx5IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlRpa2FpIE5vcsSBZMSrdMSBcyBNYXDEk3MiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJ0aWthaSBub3JhYWRpaXRhYXMgbWFwZWVzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19QQVVTRV9SRVdJTkQKKyAgZGVzYzogU2Vjb25kcyB0byByZXdpbmQgd2hlbiByZXdpbmQgb24gcGF1c2UgaXMgZW5hYmxlZC4KKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJSZXdpbmQgb24gUGF1c2UiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiQXR0xKt0IE5vcGF1esSTam90IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAiYXR0aWl0IG5vcGF1emVlam90IgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19DVVJSRU5UX1BMQVlMSVNUCisgIGRlc2M6IFVzZWQgd2hlbiB5b3UgbmVlZCB0byBzYXkgcGxheWxpc3QsIGFsc28gdm9pY2VkCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiQ3VycmVudCBQbGF5bGlzdCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6ICLCsFBhdHJlaXrEk2phaXMgU2FyYWtzdHMiCisgIDwvZGVzdD4KKyAgPHZvaWNlPgorICAgICo6ICJwYXRyZWl6ZWVqYWlzIHNhcmFrc3RzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19VU0JfU0tJUF9GSVJTVF9EUklWRQorICBkZXNjOiBpbiBzZXR0aW5nc19tZW51CisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiBub25lCisgICAgbXVsdGlkcml2ZV91c2I6ICJVU0IgSGlkZSBJbnRlcm5hbCBEcml2ZSIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBtdWx0aWRyaXZlX3VzYjogIlNhdmllbm9qb3RpZXMgUGFzbMSTcHQgSWVrxaHEk2pvIERpc2t1IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiBub25lCisgICAgbXVsdGlkcml2ZV91c2I6ICJzYXZpZW5vam90aWVzIHBhc2xlZXB0IGlla3NoZWVqbyBkaXNrdSIKKyAgPC92b2ljZT4KKzwvcGhyYXNlPgorPHBocmFzZT4KKyAgaWQ6IExBTkdfU0VUX0FTX1BMQVlMSVNUQ0FUX0RJUgorICBkZXNjOiB1c2VkIGluIHRoZSBvbnBsYXkgbWVudSB0byBzZXQgYSBwbGF5bGlzdCBjYXRhbG9ndWUgZGlyCisgIHVzZXI6IGNvcmUKKyAgPHNvdXJjZT4KKyAgICAqOiAiU2V0IEFzIFBsYXlsaXN0IENhdGFsb2d1ZSBEaXJlY3RvcnkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiVXpsaWt0IEvEgSBTYXJha3N0dSBLYXRhbG9nYSBNYXBpIgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidXpsaWt0IGthYSBzYXJha3N0dSBrYXRhbG9nYSBtYXBpIgorICA8L3ZvaWNlPgorPC9waHJhc2U+Cis8cGhyYXNlPgorICBpZDogTEFOR19TQVZFX0NIQU5HRVMKKyAgZGVzYzogV2hlbiB5b3UgdHJ5IHRvIGV4aXQgc2NyZWVucyB0byBjb25maXJtIHNhdmUKKyAgdXNlcjogY29yZQorICA8c291cmNlPgorICAgICo6ICJTYXZlIENoYW5nZXM/IgorICA8L3NvdXJjZT4KKyAgPGRlc3Q+CisgICAgKjogIlNhZ2xhYsSBdCBJem1hacWGYXM/IgorICA8L2Rlc3Q+CisgIDx2b2ljZT4KKyAgICAqOiAidmFpIHNhZ2xhYmFhdCBpem1haW5qYXMiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX1JFU0VUX1BMQVlMSVNUQ0FUX0RJUgorICBkZXNjOgorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogIlJlc2V0IFBsYXlsaXN0IENhdGFsb2d1ZSBEaXJlY3RvcnkiCisgIDwvc291cmNlPgorICA8ZGVzdD4KKyAgICAqOiAiUMSBcnN0YXTEq3QgU2FyYWtzdHUgS2F0YWxvZ2EgTWFwaSIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogInBhYXJzdGF0aWl0IHNhcmFrc3R1IGthdGFsb2dhIG1hcGkiCisgIDwvdm9pY2U+Cis8L3BocmFzZT4KKzxwaHJhc2U+CisgIGlkOiBMQU5HX0hJU1RPR1JBTV9JTlRFUlZBTAorICBkZXNjOiBpbiByZWNvcmQgc2V0dGluZ3MgbWVudQorICB1c2VyOiBjb3JlCisgIDxzb3VyY2U+CisgICAgKjogbm9uZQorICAgIGhpc3RvZ3JhbTogIkhpc3RvZ3JhbSBpbnRlcnZhbCIKKyAgPC9zb3VyY2U+CisgIDxkZXN0PgorICAgICo6IG5vbmUKKyAgICBoaXN0b2dyYW06ICJWaXp1YWxpesSBY2lqYXMgSW50ZXJ2xIFscyIKKyAgPC9kZXN0PgorICA8dm9pY2U+CisgICAgKjogbm9uZQorICAgIGhpc3RvZ3JhbTogInZpenVhbGl6YWFjaWphcyBpbnRlcnZhYWxzIgorICA8L3ZvaWNlPgorPC9waHJhc2U+CmRpZmYgLS1naXQgYS9maXJtd2FyZS9kcml2ZXJzL2F1ZGlvL2NzNDJsNTUuYyBiL2Zpcm13YXJlL2RyaXZlcnMvYXVkaW8vY3M0Mmw1NS5jCmluZGV4IGM4MWEzZmMuLjM4MzgwZDUgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL2RyaXZlcnMvYXVkaW8vY3M0Mmw1NS5jCisrKyBiL2Zpcm13YXJlL2RyaXZlcnMvYXVkaW8vY3M0Mmw1NS5jCkBAIC0xLDI0NSArMSwyNDUgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgICAgICAgICAgICBfX19fX19fX19fICAgICAgICAgICAgICAgX18gICBfX18uDQotICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fDQotICogICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvDQotICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwNCi0gKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwNCi0gKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8NCi0gKiAkSWQ6IHdtODk3NS5jIDI4NTcyIDIwMTAtMTEtMTMgMTE6Mzg6MzhaIHRoZXNldmVuICQNCi0gKg0KLSAqIERyaXZlciBmb3IgQ2lycnVzIExvZ2ljIENTNDJMNTUgYXVkaW8gY29kZWMNCi0gKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWNoYWVsIFNwYXJtYW5uDQotICoNCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCi0gKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMg0KLSAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KLSAqDQotICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQ0KLSAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotICoNCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi0jaW5jbHVkZSAibG9nZi5oIg0KLSNpbmNsdWRlICJzeXN0ZW0uaCINCi0jaW5jbHVkZSAic3RyaW5nLmgiDQotI2luY2x1ZGUgImF1ZGlvLmgiDQotI2luY2x1ZGUgInNvdW5kLmgiDQotI2luY2x1ZGUgImF1ZGlvaHcuaCINCi0jaW5jbHVkZSAiY3Njb2RlYy5oIg0KLSNpbmNsdWRlICJjczQybDU1LmgiDQotDQotY29uc3Qgc3RydWN0IHNvdW5kX3NldHRpbmdzX2luZm8gYXVkaW9od19zZXR0aW5nc1tdID0gew0KLSAgICBbU09VTkRfVk9MVU1FXSAgICAgICAgPSB7ImRCIiwgMCwgIDEsIC02MCwgIDEyLCAtMjV9LA0KLSAgICBbU09VTkRfQkFTU10gICAgICAgICAgPSB7ImRCIiwgMSwgMTUsLTEwNSwgMTIwLCAgIDB9LA0KLSAgICBbU09VTkRfVFJFQkxFXSAgICAgICAgPSB7ImRCIiwgMSwgMTUsLTEwNSwgMTIwLCAgIDB9LA0KLSAgICBbU09VTkRfQkFMQU5DRV0gICAgICAgPSB7IiUiLCAgMCwgIDEsLTEwMCwgMTAwLCAgIDB9LA0KLSAgICBbU09VTkRfQ0hBTk5FTFNdICAgICAgPSB7IiIsICAgMCwgIDEsICAgMCwgICA1LCAgIDB9LA0KLSAgICBbU09VTkRfU1RFUkVPX1dJRFRIXSAgPSB7IiUiLCAgMCwgIDUsICAgMCwgMjUwLCAxMDB9LA0KLSAgICBbU09VTkRfQkFTU19DVVRPRkZdICAgPSB7IiIsICAgMCwgIDEsICAgMSwgICA0LCAgIDJ9LA0KLSAgICBbU09VTkRfVFJFQkxFX0NVVE9GRl0gPSB7IiIsICAgMCwgIDEsICAgMSwgICA0LCAgIDF9LA0KLX07DQotDQotc3RhdGljIGludCBiYXNzLCB0cmVibGU7DQotDQotLyogY29udmVydCB0ZW50aCBvZiBkQiB2b2x1bWUgKC02MDAuLjEyMCkgdG8gbWFzdGVyIHZvbHVtZSByZWdpc3RlciB2YWx1ZSAqLw0KLWludCB0ZW50aGRiMm1hc3RlcihpbnQgZGIpDQotew0KLSAgICAvKiAtNjBkQiB0byArMTJkQiBpbiAxZEIgc3RlcHMgKi8NCi0gICAgLyogMDAwMTEwMCA9PSArMTJkQiAoMHhjKSAqLw0KLSAgICAvKiAwMDAwMDAwID09IDBkQiAgICgweDApICovDQotICAgIC8qIDEwMDAxMDAgPT0gLTYwZEIgKDB4NDQsIHRoaXMgaXMgYWN0dWFsbHkgLTU4ZEIpICovDQotDQotICAgIGlmIChkYiA8IFZPTFVNRV9NSU4pIHJldHVybiBIUEFDVExfSFBBTVVURTsNCi0gICAgcmV0dXJuIChkYiAvIDEwKSAmIEhQQUNUTF9IUEFWT0xfTUFTSzsNCi19DQotDQotc3RhdGljIHZvaWQgY3Njb2RlY19zZXRiaXRzKGludCByZWcsIHVuc2lnbmVkIGNoYXIgb2ZmLCB1bnNpZ25lZCBjaGFyIG9uKQ0KLXsNCi0gICAgdW5zaWduZWQgY2hhciBkYXRhID0gKGNzY29kZWNfcmVhZChyZWcpICYgfm9mZikgfCBvbjsNCi0gICAgY3Njb2RlY193cml0ZShyZWcsIGRhdGEpOw0KLX0NCi0NCi1zdGF0aWMgdm9pZCBhdWRpb2h3X211dGUoYm9vbCBtdXRlKQ0KLXsNCi0gICAgaWYgKG11dGUpIGNzY29kZWNfc2V0Yml0cyhQTEFZQ1RMLCAwLCBQTEFZQ1RMX01TVEFNVVRFIHwgUExBWUNUTF9NU1RCTVVURSk7DQotICAgIGVsc2UgY3Njb2RlY19zZXRiaXRzKFBMQVlDVEwsIFBMQVlDVExfTVNUQU1VVEUgfCBQTEFZQ1RMX01TVEJNVVRFLCAwKTsNCi19DQotDQotdm9pZCBhdWRpb2h3X3ByZWluaXQodm9pZCkNCi17DQotICAgIGNzY29kZWNfcG93ZXIodHJ1ZSk7DQotICAgIGNzY29kZWNfY2xvY2sodHJ1ZSk7DQotICAgIGNzY29kZWNfcmVzZXQodHJ1ZSk7DQotICAgIHNsZWVwKEhaIC8gMTAwKTsNCi0gICAgY3Njb2RlY19yZXNldChmYWxzZSk7DQotDQotICAgIGJhc3MgPSAwOw0KLSAgICB0cmVibGUgPSAwOw0KLQ0KLSAgICAvKiBBc2sgQ2lycnVzIG9yIG1heWJlIEFwcGxlIHdoYXQgdGhlIGhlbGwgdGhpcyBtZWFucyAqLw0KLSAgICBjc2NvZGVjX3dyaXRlKEhJRERFTkNUTCwgSElEREVOQ1RMX1VOTE9DSyk7DQotICAgIGNzY29kZWNfd3JpdGUoSElEREVOMkUsIEhJRERFTjJFX0RFRkFVTFQpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhJRERFTjMyLCBISURERU4zMl9ERUZBVUxUKTsNCi0gICAgY3Njb2RlY193cml0ZShISURERU4zMywgSElEREVOMzNfREVGQVVMVCk7DQotICAgIGNzY29kZWNfd3JpdGUoSElEREVOMzQsIEhJRERFTjM0X0RFRkFVTFQpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhJRERFTjM1LCBISURERU4zNV9ERUZBVUxUKTsNCi0gICAgY3Njb2RlY193cml0ZShISURERU4zNiwgSElEREVOMzZfREVGQVVMVCk7DQotICAgIGNzY29kZWNfd3JpdGUoSElEREVOMzcsIEhJRERFTjM3X0RFRkFVTFQpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhJRERFTjNBLCBISURERU4zQV9ERUZBVUxUKTsNCi0gICAgY3Njb2RlY193cml0ZShISURERU4zQywgSElEREVOM0NfREVGQVVMVCk7DQotICAgIGNzY29kZWNfd3JpdGUoSElEREVOM0QsIEhJRERFTjNEX0RFRkFVTFQpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhJRERFTjNFLCBISURERU4zRV9ERUZBVUxUKTsNCi0gICAgY3Njb2RlY193cml0ZShISURERU4zRiwgSElEREVOM0ZfREVGQVVMVCk7DQotICAgIGNzY29kZWNfd3JpdGUoSElEREVOQ1RMLCBISURERU5DVExfTE9DSyk7DQotDQotICAgIGNzY29kZWNfd3JpdGUoUFdSQ1RMMiwgUFdSQ1RMMl9QRE5fTElOQV9BTFdBWVMgfCBQV1JDVEwyX1BETl9MSU5CX0FMV0FZUw0KLSAgICAgICAgICAgICAgICAgICAgICAgICB8IFBXUkNUTDJfUEROX0hQQV9ORVZFUiB8IFBXUkNUTDJfUEROX0hQQl9ORVZFUik7DQotICAgIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMSwgQ0xLQ1RMMV9NQVNURVIgfCBDTEtDVEwxX1NDTEtNQ0xLX0JFRk9SRQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICB8IENMS0NUTDFfTUNMS0RJVjIpOw0KLSAgICBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfNDQxMDBIWik7DQotICAgIGNzY29kZWNfd3JpdGUoTUlTQ0NUTCwgTUlTQ0NUTF9VTkRPQzQgfCBNSVNDQ1RMX0FOTEdaQyB8IE1JU0NDVExfRElHU0ZUKTsNCi0gICAgY3Njb2RlY193cml0ZShQV1JDVEwxLCBQV1JDVEwxX1BETl9DSFJHIHwgUFdSQ1RMMV9QRE5fQURDQQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICB8IFBXUkNUTDFfUEROX0FEQ0IgfCBQV1JDVEwxX1BETl9DT0RFQyk7DQotICAgIGNzY29kZWNfd3JpdGUoUExBWUNUTCwgUExBWUNUTF9QRE5fRFNQDQotICAgICAgICAgICAgICAgICAgICAgICAgIHwgUExBWUNUTF9NU1RBTVVURSB8IFBMQVlDVExfTVNUQk1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKFBHQUFDVEwsIDApOw0KLSAgICBjc2NvZGVjX3dyaXRlKFBHQUJDVEwsIDApOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhQQUNUTCwgSFBBQ1RMX0hQQU1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhQQkNUTCwgSFBCQ1RMX0hQQk1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKExJTkVBQ1RMLCBMSU5FQUNUTF9MSU5FQU1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKExJTkVCQ1RMLCBMSU5FQkNUTF9MSU5FQk1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKFBXUkNUTDEsIFBXUkNUTDFfUEROX0NIUkcgfCBQV1JDVEwxX1BETl9BRENBDQotICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFdSQ1RMMV9QRE5fQURDQik7DQotfQ0KLQ0KLXZvaWQgYXVkaW9od19wb3N0aW5pdCh2b2lkKQ0KLXsNCi0gICAgY3Njb2RlY193cml0ZShIUEFDVEwsIDApOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhQQkNUTCwgMCk7DQotICAgIGNzY29kZWNfd3JpdGUoTElORUFDVEwsIDApOw0KLSAgICBjc2NvZGVjX3dyaXRlKExJTkVCQ1RMLCAwKTsNCi0gICAgY3Njb2RlY193cml0ZShDTFNIQ1RMLCBDTFNIQ1RMX0FEUFRQV1JfU0lHTkFMKTsNCi0gICAgYXVkaW9od19tdXRlKGZhbHNlKTsNCi19DQotDQotdm9pZCBhdWRpb2h3X3NldF9tYXN0ZXJfdm9sKGludCB2b2xfbCwgaW50IHZvbF9yKQ0KLXsNCi0gICAgLyogLTYwZEIgdG8gKzEyZEIgaW4gMWRCIHN0ZXBzICovDQotICAgIC8qIDAwMDExMDAgPT0gKzEyZEIgKDB4YykgKi8NCi0gICAgLyogMDAwMDAwMCA9PSAwZEIgICAoMHgwKSAqLw0KLSAgICAvKiAxMDAwMTAwID09IC02MGRCICgweDQ0LCB0aGlzIGlzIGFjdHVhbGx5IC01OGRCKSAqLw0KLQ0KLSAgICBjc2NvZGVjX3NldGJpdHMoSFBBQ1RMLCBIUEFDVExfSFBBVk9MX01BU0sgfCBIUEFDVExfSFBBTVVURSwNCi0gICAgICAgICAgICAgICAgICAgIHZvbF9sIDw8IEhQQUNUTF9IUEFWT0xfU0hJRlQpOw0KLSAgICBjc2NvZGVjX3NldGJpdHMoSFBCQ1RMLCBIUEJDVExfSFBCVk9MX01BU0sgfCBIUEJDVExfSFBCTVVURSwNCi0gICAgICAgICAgICAgICAgICAgIHZvbF9yIDw8IEhQQkNUTF9IUEJWT0xfU0hJRlQpOw0KLX0NCi0NCi12b2lkIGF1ZGlvaHdfc2V0X2xpbmVvdXRfdm9sKGludCB2b2xfbCwgaW50IHZvbF9yKQ0KLXsNCi0gICAgLyogLTYwZEIgdG8gKzEyZEIgaW4gMWRCIHN0ZXBzICovDQotICAgIC8qIDAwMDExMDAgPT0gKzEyZEIgKDB4YykgKi8NCi0gICAgLyogMDAwMDAwMCA9PSAwZEIgICAoMHgwKSAqLw0KLSAgICAvKiAxMDAwMTAwID09IC02MGRCICgweDQ0LCB0aGlzIGlzIGFjdHVhbGx5IC01OGRCKSAqLw0KLQ0KLSAgICBjc2NvZGVjX3NldGJpdHMoTElORUFDVEwsIExJTkVBQ1RMX0xJTkVBVk9MX01BU0sgfCBMSU5FQUNUTF9MSU5FQU1VVEUsDQotICAgICAgICAgICAgICAgICAgICB2b2xfbCA8PCBMSU5FQUNUTF9MSU5FQVZPTF9TSElGVCk7DQotICAgIGNzY29kZWNfc2V0Yml0cyhMSU5FQkNUTCwgTElORUJDVExfTElORUJWT0xfTUFTSyB8IExJTkVCQ1RMX0xJTkVCTVVURSwNCi0gICAgICAgICAgICAgICAgICAgIHZvbF9yIDw8IExJTkVCQ1RMX0xJTkVCVk9MX1NISUZUKTsNCi19DQotDQotdm9pZCBhdWRpb2h3X2VuYWJsZV9saW5lb3V0KGJvb2wgZW5hYmxlKQ0KLXsNCi0gICAgaWYgKGVuYWJsZSkNCi0gICAgICAgIGNzY29kZWNfc2V0Yml0cyhQV1JDVEwyLCBQV1JDVEwyX1BETl9MSU5BX01BU0sgfCBQV1JDVEwyX1BETl9MSU5CX01BU0ssDQotICAgICAgICAgICAgICAgICAgICAgICAgUFdSQ1RMMl9QRE5fTElOQV9ORVZFUiB8IFBXUkNUTDJfUEROX0xJTkJfTkVWRVIpOw0KLSAgICBlbHNlDQotICAgICAgICBjc2NvZGVjX3NldGJpdHMoUFdSQ1RMMiwgUFdSQ1RMMl9QRE5fTElOQV9NQVNLIHwgUFdSQ1RMMl9QRE5fTElOQl9NQVNLLA0KLSAgICAgICAgICAgICAgICAgICAgICAgIFBXUkNUTDJfUEROX0xJTkFfQUxXQVlTIHwgUFdSQ1RMMl9QRE5fTElOQl9BTFdBWVMpOw0KLX0NCi0NCi1zdGF0aWMgdm9pZCBoYW5kbGVfZHNwX3Bvd2VyKHZvaWQpDQotew0KLSAgICBpZiAoYmFzcyB8fCB0cmVibGUpDQotICAgIHsNCi0gICAgICAgIGNzY29kZWNfc2V0Yml0cyhQTEFZQ1RMLCBQTEFZQ1RMX1BETl9EU1AsIDApOw0KLSAgICAgICAgY3Njb2RlY19zZXRiaXRzKEJUQ1RMLCAwLCBCVENUTF9UQ0VOKTsNCi0gICAgfQ0KLSAgICBlbHNlDQotICAgIHsNCi0gICAgICAgIGNzY29kZWNfc2V0Yml0cyhCVENUTCwgQlRDVExfVENFTiwgMCk7DQotICAgICAgICBjc2NvZGVjX3NldGJpdHMoUExBWUNUTCwgMCwgUExBWUNUTF9QRE5fRFNQKTsNCi0gICAgfQ0KLX0NCi0NCi12b2lkIGF1ZGlvaHdfc2V0X2Jhc3MoaW50IHZhbHVlKQ0KLXsNCi0gICAgYmFzcyA9IHZhbHVlOw0KLSAgICBoYW5kbGVfZHNwX3Bvd2VyKCk7DQotICAgIGlmICh2YWx1ZSA+PSAtMTA1ICYmIHZhbHVlIDw9IDEyMCkNCi0gICAgICAgIGNzY29kZWNfc2V0Yml0cyhUT05FQ1RMLCBUT05FQ1RMX0JBU1NfTUFTSywNCi0gICAgICAgICAgICAgICAgICAgICAgICAoOCAtIHZhbHVlIC8gMTUpIDw8IFRPTkVDVExfQkFTU19TSElGVCk7DQotfQ0KLQ0KLXZvaWQgYXVkaW9od19zZXRfdHJlYmxlKGludCB2YWx1ZSkNCi17DQotICAgIHRyZWJsZSA9IHZhbHVlOw0KLSAgICBoYW5kbGVfZHNwX3Bvd2VyKCk7DQotICAgIGlmICh2YWx1ZSA+PSAtMTA1ICYmIHZhbHVlIDw9IDEyMCkNCi0gICAgICAgIGNzY29kZWNfc2V0Yml0cyhUT05FQ1RMLCBUT05FQ1RMX1RSRUJfTUFTSywNCi0gICAgICAgICAgICAgICAgICAgICAgICAoOCAtIHZhbHVlIC8gMTUpIDw8IFRPTkVDVExfVFJFQl9TSElGVCk7DQotfQ0KLQ0KLXZvaWQgYXVkaW9od19zZXRfYmFzc19jdXRvZmYoaW50IHZhbHVlKQ0KLXsNCi0gICAgY3Njb2RlY19zZXRiaXRzKEJUQ1RMLCBCVENUTF9CQVNTQ0ZfTUFTSywNCi0gICAgICAgICAgICAgICAgICAgICh2YWx1ZSAtIDEpIDw8IEJUQ1RMX0JBU1NDRl9TSElGVCk7DQotfQ0KLQ0KLXZvaWQgYXVkaW9od19zZXRfdHJlYmxlX2N1dG9mZihpbnQgdmFsdWUpDQotew0KLSAgICBjc2NvZGVjX3NldGJpdHMoQlRDVEwsIEJUQ1RMX1RSRUJDRl9NQVNLLA0KLSAgICAgICAgICAgICAgICAgICAgKHZhbHVlIC0gMSkgPDwgQlRDVExfVFJFQkNGX1NISUZUKTsNCi19DQotDQotdm9pZCBhdWRpb2h3X3NldF9wcmVzY2FsZXIoaW50IHZhbHVlKQ0KLXsNCi0gICAgY3Njb2RlY19zZXRiaXRzKE1TVEFWT0wsIE1TVEFWT0xfVk9MVU1FX01BU0ssDQotICAgICAgICAgICAgICAgICAgICAoLXZhbHVlIC8gNSkgPDwgTVNUQVZPTF9WT0xVTUVfU0hJRlQpOw0KLSAgICBjc2NvZGVjX3NldGJpdHMoTVNUQlZPTCwgTVNUQlZPTF9WT0xVTUVfTUFTSywNCi0gICAgICAgICAgICAgICAgICAgICgtdmFsdWUgLyA1KSA8PCBNU1RCVk9MX1ZPTFVNRV9TSElGVCk7DQotfQ0KLQ0KLS8qIE5pY2Ugc2h1dGRvd24gb2YgQ1M0Mkw1NSBjb2RlYyAqLw0KLXZvaWQgYXVkaW9od19jbG9zZSh2b2lkKQ0KLXsNCi0gICAgYXVkaW9od19tdXRlKHRydWUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhQQUNUTCwgSFBBQ1RMX0hQQU1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKEhQQkNUTCwgSFBCQ1RMX0hQQk1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKExJTkVBQ1RMLCBMSU5FQUNUTF9MSU5FQU1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKExJTkVCQ1RMLCBMSU5FQkNUTF9MSU5FQk1VVEUpOw0KLSAgICBjc2NvZGVjX3dyaXRlKFBXUkNUTDEsIFBXUkNUTDFfUEROX0NIUkcgfCBQV1JDVEwxX1BETl9BRENBDQotICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFdSQ1RMMV9QRE5fQURDQiB8IFBXUkNUTDFfUEROX0NPREVDKTsNCi0gICAgY3Njb2RlY19yZXNldCh0cnVlKTsNCi0gICAgY3Njb2RlY19jbG9jayhmYWxzZSk7DQotICAgIGNzY29kZWNfcG93ZXIoZmFsc2UpOw0KLX0NCi0NCi0vKiBOb3RlOiBEaXNhYmxlIG91dHB1dCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uICovDQotdm9pZCBhdWRpb2h3X3NldF9mcmVxdWVuY3koaW50IGZzZWwpDQotew0KLSAgICBpZiAoZnNlbCA9PSBIV19GUkVRXzgpIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMiwgQ0xLQ1RMMl84MDAwSFopOw0KLSAgICBlbHNlIGlmIChmc2VsID09IEhXX0ZSRVFfMTEpIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMiwgQ0xLQ1RMMl8xMTAyNUhaKTsNCi0gICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzEyKSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMTIwMDBIWik7DQotICAgIGVsc2UgaWYgKGZzZWwgPT0gSFdfRlJFUV8xNikgY3Njb2RlY193cml0ZShDTEtDVEwyLCBDTEtDVEwyXzE2MDAwSFopOw0KLSAgICBlbHNlIGlmIChmc2VsID09IEhXX0ZSRVFfMjIpIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMiwgQ0xLQ1RMMl8yMjA1MEhaKTsNCi0gICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzI0KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMjQwMDBIWik7DQotICAgIGVsc2UgaWYgKGZzZWwgPT0gSFdfRlJFUV8zMikgY3Njb2RlY193cml0ZShDTEtDVEwyLCBDTEtDVEwyXzMyMDAwSFopOw0KLSAgICBlbHNlIGlmIChmc2VsID09IEhXX0ZSRVFfNDQpIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMiwgQ0xLQ1RMMl80NDEwMEhaKTsNCi0gICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzQ4KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfNDgwMDBIWik7DQotfQ0KLQ0KLSNpZmRlZiBIQVZFX1JFQ09SRElORw0KLS8vVE9ETzogSW1wbGVtZW50DQotI2VuZGlmIC8qIEhBVkVfUkVDT1JESU5HICovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLgorICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisgKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8KKyAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8CisgKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLworICogJElkOiB3bTg5NzUuYyAyODU3MiAyMDEwLTExLTEzIDExOjM4OjM4WiB0aGVzZXZlbiAkCisgKgorICogRHJpdmVyIGZvciBDaXJydXMgTG9naWMgQ1M0Mkw1NSBhdWRpbyBjb2RlYworICoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBNaWNoYWVsIFNwYXJtYW5uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgImxvZ2YuaCIKKyNpbmNsdWRlICJzeXN0ZW0uaCIKKyNpbmNsdWRlICJzdHJpbmcuaCIKKyNpbmNsdWRlICJhdWRpby5oIgorI2luY2x1ZGUgInNvdW5kLmgiCisjaW5jbHVkZSAiYXVkaW9ody5oIgorI2luY2x1ZGUgImNzY29kZWMuaCIKKyNpbmNsdWRlICJjczQybDU1LmgiCisKK2NvbnN0IHN0cnVjdCBzb3VuZF9zZXR0aW5nc19pbmZvIGF1ZGlvaHdfc2V0dGluZ3NbXSA9IHsKKyAgICBbU09VTkRfVk9MVU1FXSAgICAgICAgPSB7ImRCIiwgMCwgIDEsIC02MCwgIDEyLCAtMjV9LAorICAgIFtTT1VORF9CQVNTXSAgICAgICAgICA9IHsiZEIiLCAxLCAxNSwtMTA1LCAxMjAsICAgMH0sCisgICAgW1NPVU5EX1RSRUJMRV0gICAgICAgID0geyJkQiIsIDEsIDE1LC0xMDUsIDEyMCwgICAwfSwKKyAgICBbU09VTkRfQkFMQU5DRV0gICAgICAgPSB7IiUiLCAgMCwgIDEsLTEwMCwgMTAwLCAgIDB9LAorICAgIFtTT1VORF9DSEFOTkVMU10gICAgICA9IHsiIiwgICAwLCAgMSwgICAwLCAgIDUsICAgMH0sCisgICAgW1NPVU5EX1NURVJFT19XSURUSF0gID0geyIlIiwgIDAsICA1LCAgIDAsIDI1MCwgMTAwfSwKKyAgICBbU09VTkRfQkFTU19DVVRPRkZdICAgPSB7IiIsICAgMCwgIDEsICAgMSwgICA0LCAgIDJ9LAorICAgIFtTT1VORF9UUkVCTEVfQ1VUT0ZGXSA9IHsiIiwgICAwLCAgMSwgICAxLCAgIDQsICAgMX0sCit9OworCitzdGF0aWMgaW50IGJhc3MsIHRyZWJsZTsKKworLyogY29udmVydCB0ZW50aCBvZiBkQiB2b2x1bWUgKC02MDAuLjEyMCkgdG8gbWFzdGVyIHZvbHVtZSByZWdpc3RlciB2YWx1ZSAqLworaW50IHRlbnRoZGIybWFzdGVyKGludCBkYikKK3sKKyAgICAvKiAtNjBkQiB0byArMTJkQiBpbiAxZEIgc3RlcHMgKi8KKyAgICAvKiAwMDAxMTAwID09ICsxMmRCICgweGMpICovCisgICAgLyogMDAwMDAwMCA9PSAwZEIgICAoMHgwKSAqLworICAgIC8qIDEwMDAxMDAgPT0gLTYwZEIgKDB4NDQsIHRoaXMgaXMgYWN0dWFsbHkgLTU4ZEIpICovCisKKyAgICBpZiAoZGIgPCBWT0xVTUVfTUlOKSByZXR1cm4gSFBBQ1RMX0hQQU1VVEU7CisgICAgcmV0dXJuIChkYiAvIDEwKSAmIEhQQUNUTF9IUEFWT0xfTUFTSzsKK30KKworc3RhdGljIHZvaWQgY3Njb2RlY19zZXRiaXRzKGludCByZWcsIHVuc2lnbmVkIGNoYXIgb2ZmLCB1bnNpZ25lZCBjaGFyIG9uKQoreworICAgIHVuc2lnbmVkIGNoYXIgZGF0YSA9IChjc2NvZGVjX3JlYWQocmVnKSAmIH5vZmYpIHwgb247CisgICAgY3Njb2RlY193cml0ZShyZWcsIGRhdGEpOworfQorCitzdGF0aWMgdm9pZCBhdWRpb2h3X211dGUoYm9vbCBtdXRlKQoreworICAgIGlmIChtdXRlKSBjc2NvZGVjX3NldGJpdHMoUExBWUNUTCwgMCwgUExBWUNUTF9NU1RBTVVURSB8IFBMQVlDVExfTVNUQk1VVEUpOworICAgIGVsc2UgY3Njb2RlY19zZXRiaXRzKFBMQVlDVEwsIFBMQVlDVExfTVNUQU1VVEUgfCBQTEFZQ1RMX01TVEJNVVRFLCAwKTsKK30KKwordm9pZCBhdWRpb2h3X3ByZWluaXQodm9pZCkKK3sKKyAgICBjc2NvZGVjX3Bvd2VyKHRydWUpOworICAgIGNzY29kZWNfY2xvY2sodHJ1ZSk7CisgICAgY3Njb2RlY19yZXNldCh0cnVlKTsKKyAgICBzbGVlcChIWiAvIDEwMCk7CisgICAgY3Njb2RlY19yZXNldChmYWxzZSk7CisKKyAgICBiYXNzID0gMDsKKyAgICB0cmVibGUgPSAwOworCisgICAgLyogQXNrIENpcnJ1cyBvciBtYXliZSBBcHBsZSB3aGF0IHRoZSBoZWxsIHRoaXMgbWVhbnMgKi8KKyAgICBjc2NvZGVjX3dyaXRlKEhJRERFTkNUTCwgSElEREVOQ1RMX1VOTE9DSyk7CisgICAgY3Njb2RlY193cml0ZShISURERU4yRSwgSElEREVOMkVfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zMiwgSElEREVOMzJfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zMywgSElEREVOMzNfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zNCwgSElEREVOMzRfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zNSwgSElEREVOMzVfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zNiwgSElEREVOMzZfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zNywgSElEREVOMzdfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zQSwgSElEREVOM0FfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zQywgSElEREVOM0NfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zRCwgSElEREVOM0RfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zRSwgSElEREVOM0VfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU4zRiwgSElEREVOM0ZfREVGQVVMVCk7CisgICAgY3Njb2RlY193cml0ZShISURERU5DVEwsIEhJRERFTkNUTF9MT0NLKTsKKworICAgIGNzY29kZWNfd3JpdGUoUFdSQ1RMMiwgUFdSQ1RMMl9QRE5fTElOQV9BTFdBWVMgfCBQV1JDVEwyX1BETl9MSU5CX0FMV0FZUworICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFdSQ1RMMl9QRE5fSFBBX05FVkVSIHwgUFdSQ1RMMl9QRE5fSFBCX05FVkVSKTsKKyAgICBjc2NvZGVjX3dyaXRlKENMS0NUTDEsIENMS0NUTDFfTUFTVEVSIHwgQ0xLQ1RMMV9TQ0xLTUNMS19CRUZPUkUKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IENMS0NUTDFfTUNMS0RJVjIpOworICAgIGNzY29kZWNfd3JpdGUoQ0xLQ1RMMiwgQ0xLQ1RMMl80NDEwMEhaKTsKKyAgICBjc2NvZGVjX3dyaXRlKE1JU0NDVEwsIE1JU0NDVExfVU5ET0M0IHwgTUlTQ0NUTF9BTkxHWkMgfCBNSVNDQ1RMX0RJR1NGVCk7CisgICAgY3Njb2RlY193cml0ZShQV1JDVEwxLCBQV1JDVEwxX1BETl9DSFJHIHwgUFdSQ1RMMV9QRE5fQURDQQorICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFdSQ1RMMV9QRE5fQURDQiB8IFBXUkNUTDFfUEROX0NPREVDKTsKKyAgICBjc2NvZGVjX3dyaXRlKFBMQVlDVEwsIFBMQVlDVExfUEROX0RTUAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgUExBWUNUTF9NU1RBTVVURSB8IFBMQVlDVExfTVNUQk1VVEUpOworICAgIGNzY29kZWNfd3JpdGUoUEdBQUNUTCwgMCk7CisgICAgY3Njb2RlY193cml0ZShQR0FCQ1RMLCAwKTsKKyAgICBjc2NvZGVjX3dyaXRlKEhQQUNUTCwgSFBBQ1RMX0hQQU1VVEUpOworICAgIGNzY29kZWNfd3JpdGUoSFBCQ1RMLCBIUEJDVExfSFBCTVVURSk7CisgICAgY3Njb2RlY193cml0ZShMSU5FQUNUTCwgTElORUFDVExfTElORUFNVVRFKTsKKyAgICBjc2NvZGVjX3dyaXRlKExJTkVCQ1RMLCBMSU5FQkNUTF9MSU5FQk1VVEUpOworICAgIGNzY29kZWNfd3JpdGUoUFdSQ1RMMSwgUFdSQ1RMMV9QRE5fQ0hSRyB8IFBXUkNUTDFfUEROX0FEQ0EKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IFBXUkNUTDFfUEROX0FEQ0IpOworfQorCit2b2lkIGF1ZGlvaHdfcG9zdGluaXQodm9pZCkKK3sKKyAgICBjc2NvZGVjX3dyaXRlKEhQQUNUTCwgMCk7CisgICAgY3Njb2RlY193cml0ZShIUEJDVEwsIDApOworICAgIGNzY29kZWNfd3JpdGUoTElORUFDVEwsIDApOworICAgIGNzY29kZWNfd3JpdGUoTElORUJDVEwsIDApOworICAgIGNzY29kZWNfd3JpdGUoQ0xTSENUTCwgQ0xTSENUTF9BRFBUUFdSX1NJR05BTCk7CisgICAgYXVkaW9od19tdXRlKGZhbHNlKTsKK30KKwordm9pZCBhdWRpb2h3X3NldF9tYXN0ZXJfdm9sKGludCB2b2xfbCwgaW50IHZvbF9yKQoreworICAgIC8qIC02MGRCIHRvICsxMmRCIGluIDFkQiBzdGVwcyAqLworICAgIC8qIDAwMDExMDAgPT0gKzEyZEIgKDB4YykgKi8KKyAgICAvKiAwMDAwMDAwID09IDBkQiAgICgweDApICovCisgICAgLyogMTAwMDEwMCA9PSAtNjBkQiAoMHg0NCwgdGhpcyBpcyBhY3R1YWxseSAtNThkQikgKi8KKworICAgIGNzY29kZWNfc2V0Yml0cyhIUEFDVEwsIEhQQUNUTF9IUEFWT0xfTUFTSyB8IEhQQUNUTF9IUEFNVVRFLAorICAgICAgICAgICAgICAgICAgICB2b2xfbCA8PCBIUEFDVExfSFBBVk9MX1NISUZUKTsKKyAgICBjc2NvZGVjX3NldGJpdHMoSFBCQ1RMLCBIUEJDVExfSFBCVk9MX01BU0sgfCBIUEJDVExfSFBCTVVURSwKKyAgICAgICAgICAgICAgICAgICAgdm9sX3IgPDwgSFBCQ1RMX0hQQlZPTF9TSElGVCk7Cit9CisKK3ZvaWQgYXVkaW9od19zZXRfbGluZW91dF92b2woaW50IHZvbF9sLCBpbnQgdm9sX3IpCit7CisgICAgLyogLTYwZEIgdG8gKzEyZEIgaW4gMWRCIHN0ZXBzICovCisgICAgLyogMDAwMTEwMCA9PSArMTJkQiAoMHhjKSAqLworICAgIC8qIDAwMDAwMDAgPT0gMGRCICAgKDB4MCkgKi8KKyAgICAvKiAxMDAwMTAwID09IC02MGRCICgweDQ0LCB0aGlzIGlzIGFjdHVhbGx5IC01OGRCKSAqLworCisgICAgY3Njb2RlY19zZXRiaXRzKExJTkVBQ1RMLCBMSU5FQUNUTF9MSU5FQVZPTF9NQVNLIHwgTElORUFDVExfTElORUFNVVRFLAorICAgICAgICAgICAgICAgICAgICB2b2xfbCA8PCBMSU5FQUNUTF9MSU5FQVZPTF9TSElGVCk7CisgICAgY3Njb2RlY19zZXRiaXRzKExJTkVCQ1RMLCBMSU5FQkNUTF9MSU5FQlZPTF9NQVNLIHwgTElORUJDVExfTElORUJNVVRFLAorICAgICAgICAgICAgICAgICAgICB2b2xfciA8PCBMSU5FQkNUTF9MSU5FQlZPTF9TSElGVCk7Cit9CisKK3ZvaWQgYXVkaW9od19lbmFibGVfbGluZW91dChib29sIGVuYWJsZSkKK3sKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBjc2NvZGVjX3NldGJpdHMoUFdSQ1RMMiwgUFdSQ1RMMl9QRE5fTElOQV9NQVNLIHwgUFdSQ1RMMl9QRE5fTElOQl9NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAgUFdSQ1RMMl9QRE5fTElOQV9ORVZFUiB8IFBXUkNUTDJfUEROX0xJTkJfTkVWRVIpOworICAgIGVsc2UKKyAgICAgICAgY3Njb2RlY19zZXRiaXRzKFBXUkNUTDIsIFBXUkNUTDJfUEROX0xJTkFfTUFTSyB8IFBXUkNUTDJfUEROX0xJTkJfTUFTSywKKyAgICAgICAgICAgICAgICAgICAgICAgIFBXUkNUTDJfUEROX0xJTkFfQUxXQVlTIHwgUFdSQ1RMMl9QRE5fTElOQl9BTFdBWVMpOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfZHNwX3Bvd2VyKHZvaWQpCit7CisgICAgaWYgKGJhc3MgfHwgdHJlYmxlKQorICAgIHsKKyAgICAgICAgY3Njb2RlY19zZXRiaXRzKFBMQVlDVEwsIFBMQVlDVExfUEROX0RTUCwgMCk7CisgICAgICAgIGNzY29kZWNfc2V0Yml0cyhCVENUTCwgMCwgQlRDVExfVENFTik7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGNzY29kZWNfc2V0Yml0cyhCVENUTCwgQlRDVExfVENFTiwgMCk7CisgICAgICAgIGNzY29kZWNfc2V0Yml0cyhQTEFZQ1RMLCAwLCBQTEFZQ1RMX1BETl9EU1ApOworICAgIH0KK30KKwordm9pZCBhdWRpb2h3X3NldF9iYXNzKGludCB2YWx1ZSkKK3sKKyAgICBiYXNzID0gdmFsdWU7CisgICAgaGFuZGxlX2RzcF9wb3dlcigpOworICAgIGlmICh2YWx1ZSA+PSAtMTA1ICYmIHZhbHVlIDw9IDEyMCkKKyAgICAgICAgY3Njb2RlY19zZXRiaXRzKFRPTkVDVEwsIFRPTkVDVExfQkFTU19NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAgKDggLSB2YWx1ZSAvIDE1KSA8PCBUT05FQ1RMX0JBU1NfU0hJRlQpOworfQorCit2b2lkIGF1ZGlvaHdfc2V0X3RyZWJsZShpbnQgdmFsdWUpCit7CisgICAgdHJlYmxlID0gdmFsdWU7CisgICAgaGFuZGxlX2RzcF9wb3dlcigpOworICAgIGlmICh2YWx1ZSA+PSAtMTA1ICYmIHZhbHVlIDw9IDEyMCkKKyAgICAgICAgY3Njb2RlY19zZXRiaXRzKFRPTkVDVEwsIFRPTkVDVExfVFJFQl9NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAgKDggLSB2YWx1ZSAvIDE1KSA8PCBUT05FQ1RMX1RSRUJfU0hJRlQpOworfQorCit2b2lkIGF1ZGlvaHdfc2V0X2Jhc3NfY3V0b2ZmKGludCB2YWx1ZSkKK3sKKyAgICBjc2NvZGVjX3NldGJpdHMoQlRDVEwsIEJUQ1RMX0JBU1NDRl9NQVNLLAorICAgICAgICAgICAgICAgICAgICAodmFsdWUgLSAxKSA8PCBCVENUTF9CQVNTQ0ZfU0hJRlQpOworfQorCit2b2lkIGF1ZGlvaHdfc2V0X3RyZWJsZV9jdXRvZmYoaW50IHZhbHVlKQoreworICAgIGNzY29kZWNfc2V0Yml0cyhCVENUTCwgQlRDVExfVFJFQkNGX01BU0ssCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZSAtIDEpIDw8IEJUQ1RMX1RSRUJDRl9TSElGVCk7Cit9CisKK3ZvaWQgYXVkaW9od19zZXRfcHJlc2NhbGVyKGludCB2YWx1ZSkKK3sKKyAgICBjc2NvZGVjX3NldGJpdHMoTVNUQVZPTCwgTVNUQVZPTF9WT0xVTUVfTUFTSywKKyAgICAgICAgICAgICAgICAgICAgKC12YWx1ZSAvIDUpIDw8IE1TVEFWT0xfVk9MVU1FX1NISUZUKTsKKyAgICBjc2NvZGVjX3NldGJpdHMoTVNUQlZPTCwgTVNUQlZPTF9WT0xVTUVfTUFTSywKKyAgICAgICAgICAgICAgICAgICAgKC12YWx1ZSAvIDUpIDw8IE1TVEJWT0xfVk9MVU1FX1NISUZUKTsKK30KKworLyogTmljZSBzaHV0ZG93biBvZiBDUzQyTDU1IGNvZGVjICovCit2b2lkIGF1ZGlvaHdfY2xvc2Uodm9pZCkKK3sKKyAgICBhdWRpb2h3X211dGUodHJ1ZSk7CisgICAgY3Njb2RlY193cml0ZShIUEFDVEwsIEhQQUNUTF9IUEFNVVRFKTsKKyAgICBjc2NvZGVjX3dyaXRlKEhQQkNUTCwgSFBCQ1RMX0hQQk1VVEUpOworICAgIGNzY29kZWNfd3JpdGUoTElORUFDVEwsIExJTkVBQ1RMX0xJTkVBTVVURSk7CisgICAgY3Njb2RlY193cml0ZShMSU5FQkNUTCwgTElORUJDVExfTElORUJNVVRFKTsKKyAgICBjc2NvZGVjX3dyaXRlKFBXUkNUTDEsIFBXUkNUTDFfUEROX0NIUkcgfCBQV1JDVEwxX1BETl9BRENBCisgICAgICAgICAgICAgICAgICAgICAgICAgfCBQV1JDVEwxX1BETl9BRENCIHwgUFdSQ1RMMV9QRE5fQ09ERUMpOworICAgIGNzY29kZWNfcmVzZXQodHJ1ZSk7CisgICAgY3Njb2RlY19jbG9jayhmYWxzZSk7CisgICAgY3Njb2RlY19wb3dlcihmYWxzZSk7Cit9CisKKy8qIE5vdGU6IERpc2FibGUgb3V0cHV0IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KK3ZvaWQgYXVkaW9od19zZXRfZnJlcXVlbmN5KGludCBmc2VsKQoreworICAgIGlmIChmc2VsID09IEhXX0ZSRVFfOCkgY3Njb2RlY193cml0ZShDTEtDVEwyLCBDTEtDVEwyXzgwMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzExKSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMTEwMjVIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzEyKSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMTIwMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzE2KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMTYwMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzIyKSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMjIwNTBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzI0KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMjQwMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzMyKSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfMzIwMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzQ0KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfNDQxMDBIWik7CisgICAgZWxzZSBpZiAoZnNlbCA9PSBIV19GUkVRXzQ4KSBjc2NvZGVjX3dyaXRlKENMS0NUTDIsIENMS0NUTDJfNDgwMDBIWik7Cit9CisKKyNpZmRlZiBIQVZFX1JFQ09SRElORworLy9UT0RPOiBJbXBsZW1lbnQKKyNlbmRpZiAvKiBIQVZFX1JFQ09SRElORyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZHJpdmVycy9hdWRpby9kYWMzNTUwYS5jIGIvZmlybXdhcmUvZHJpdmVycy9hdWRpby9kYWMzNTUwYS5jCmluZGV4IGUxMzYwMmUuLjljNmRmYmIgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL2RyaXZlcnMvYXVkaW8vZGFjMzU1MGEuYworKysgYi9maXJtd2FyZS9kcml2ZXJzL2F1ZGlvL2RhYzM1NTBhLmMKQEAgLTUsNyArNSw3IEBACiAgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAogICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCiAgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KLSAqICRJZDogZGFjLmMgMTc4NDcgMjAwOC0wNi0yOCAxODoxMDowNFogYmFnZGVyICQKKyAqICRJZCQKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgYnkgTGludXMgTmllbHNlbiBGZWx0emluZwogICoKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2V4cG9ydC9hdGEtZGVmaW5lcy5oIGIvZmlybXdhcmUvZXhwb3J0L2F0YS1kZWZpbmVzLmgKaW5kZXggMTY1MGM5Zi4uNzAyNDllZCAxMDA2NDQKLS0tIGEvZmlybXdhcmUvZXhwb3J0L2F0YS1kZWZpbmVzLmgKKysrIGIvZmlybXdhcmUvZXhwb3J0L2F0YS1kZWZpbmVzLmgKQEAgLTEsNTggKzEsNTggQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiAgICAgICAgICAgICBfX19fX19fX19fICAgICAgICAgICAgICAgX18gICBfX18uDQotICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fDQotICogICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvDQotICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwNCi0gKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwNCi0gKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8NCi0gKiAkSWQ6IGF0YS5oIDI4OTUxIDIwMTEtMDEtMDIgMjM6MDI6NTVaIHRoZXNldmVuICQNCi0gKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMSBieSBNaWNoYWVsIFNwYXJtYW5uDQotICoNCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCi0gKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMg0KLSAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KLSAqDQotICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQ0KLSAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotICoNCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi0jaWZuZGVmIF9fQVRBX0RFRklORVNfSF9fDQotI2RlZmluZSBfX0FUQV9ERUZJTkVTX0hfXw0KLQ0KLSNpZm5kZWYgQVRBX09VVDgNCi0jZGVmaW5lIEFUQV9PVVQ4KHJlZywgZGF0YSkgKHJlZykgPSAoZGF0YSkNCi0jZW5kaWYNCi0jaWZuZGVmIEFUQV9PVVQxNg0KLSNkZWZpbmUgQVRBX09VVDE2KHJlZywgZGF0YSkgKHJlZykgPSAoZGF0YSkNCi0jZW5kaWYNCi0jaWZuZGVmIEFUQV9JTjgNCi0jZGVmaW5lIEFUQV9JTjgocmVnKSAocmVnKQ0KLSNlbmRpZg0KLSNpZm5kZWYgQVRBX0lOMTYNCi0jZGVmaW5lIEFUQV9JTjE2KHJlZykgKHJlZykNCi0jZW5kaWYNCi0jaWZuZGVmIEFUQV9TV0FQX0lERU5USUZZDQotI2RlZmluZSBBVEFfU1dBUF9JREVOVElGWSh3b3JkKSAod29yZCkNCi0jZW5kaWYNCi0NCi0jZGVmaW5lIFNUQVRVU19CU1kgICAgICAweDgwDQotI2RlZmluZSBTVEFUVVNfUkRZICAgICAgMHg0MA0KLSNkZWZpbmUgU1RBVFVTX0RSUSAgICAgIDB4MDgNCi0jZGVmaW5lIFNUQVRVU19FUlIgICAgICAweDAxDQotI2RlZmluZSBTVEFUVVNfREYgICAgICAgMHgyMA0KLSNkZWZpbmUgRVJST1JfSURORiAgICAgIDB4MTANCi0jZGVmaW5lIEVSUk9SX0FCUlQgICAgICAweDA0DQotDQotI2RlZmluZSBURVNUX1BBVFRFUk4xICAgMHhhNQ0KLSNkZWZpbmUgVEVTVF9QQVRURVJOMiAgIDB4NWENCi0jZGVmaW5lIFRFU1RfUEFUVEVSTjMgICAweGFhDQotI2RlZmluZSBURVNUX1BBVFRFUk40ICAgMHg1NQ0KLQ0KLSNkZWZpbmUgQVRBX0ZFQVRVUkUgICAgIEFUQV9FUlJPUg0KLQ0KLSNkZWZpbmUgQVRBX1NUQVRVUyAgICAgIEFUQV9DT01NQU5EDQotI2RlZmluZSBBVEFfQUxUX1NUQVRVUyAgQVRBX0NPTlRST0wNCi0NCi0jZW5kaWYNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICBfX19fX19fX19fICAgICAgICAgICAgICAgX18gICBfX18uCisgKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18KKyAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLworICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwKKyAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXAorICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCisgKiAkSWQ6IGF0YS5oIDI4OTUxIDIwMTEtMDEtMDIgMjM6MDI6NTVaIHRoZXNldmVuICQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgYnkgTWljaGFlbCBTcGFybWFubgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX19BVEFfREVGSU5FU19IX18KKyNkZWZpbmUgX19BVEFfREVGSU5FU19IX18KKworI2lmbmRlZiBBVEFfT1VUOAorI2RlZmluZSBBVEFfT1VUOChyZWcsIGRhdGEpIChyZWcpID0gKGRhdGEpCisjZW5kaWYKKyNpZm5kZWYgQVRBX09VVDE2CisjZGVmaW5lIEFUQV9PVVQxNihyZWcsIGRhdGEpIChyZWcpID0gKGRhdGEpCisjZW5kaWYKKyNpZm5kZWYgQVRBX0lOOAorI2RlZmluZSBBVEFfSU44KHJlZykgKHJlZykKKyNlbmRpZgorI2lmbmRlZiBBVEFfSU4xNgorI2RlZmluZSBBVEFfSU4xNihyZWcpIChyZWcpCisjZW5kaWYKKyNpZm5kZWYgQVRBX1NXQVBfSURFTlRJRlkKKyNkZWZpbmUgQVRBX1NXQVBfSURFTlRJRlkod29yZCkgKHdvcmQpCisjZW5kaWYKKworI2RlZmluZSBTVEFUVVNfQlNZICAgICAgMHg4MAorI2RlZmluZSBTVEFUVVNfUkRZICAgICAgMHg0MAorI2RlZmluZSBTVEFUVVNfRFJRICAgICAgMHgwOAorI2RlZmluZSBTVEFUVVNfRVJSICAgICAgMHgwMQorI2RlZmluZSBTVEFUVVNfREYgICAgICAgMHgyMAorI2RlZmluZSBFUlJPUl9JRE5GICAgICAgMHgxMAorI2RlZmluZSBFUlJPUl9BQlJUICAgICAgMHgwNAorCisjZGVmaW5lIFRFU1RfUEFUVEVSTjEgICAweGE1CisjZGVmaW5lIFRFU1RfUEFUVEVSTjIgICAweDVhCisjZGVmaW5lIFRFU1RfUEFUVEVSTjMgICAweGFhCisjZGVmaW5lIFRFU1RfUEFUVEVSTjQgICAweDU1CisKKyNkZWZpbmUgQVRBX0ZFQVRVUkUgICAgIEFUQV9FUlJPUgorCisjZGVmaW5lIEFUQV9TVEFUVVMgICAgICBBVEFfQ09NTUFORAorI2RlZmluZSBBVEFfQUxUX1NUQVRVUyAgQVRBX0NPTlRST0wKKworI2VuZGlmCmRpZmYgLS1naXQgYS9maXJtd2FyZS9leHBvcnQvY29uZmlnL3JrMjdnZW5lcmljLmggYi9maXJtd2FyZS9leHBvcnQvY29uZmlnL3JrMjdnZW5lcmljLmgKaW5kZXggYjJjNzRiZC4uZDdiNjNmMCAxMDA2NDQKLS0tIGEvZmlybXdhcmUvZXhwb3J0L2NvbmZpZy9yazI3Z2VuZXJpYy5oCisrKyBiL2Zpcm13YXJlL2V4cG9ydC9jb25maWcvcmsyN2dlbmVyaWMuaApAQCAtMSwxODkgKzEsMTg5IEBACi0vKg0KLSAqIFRoaXMgY29uZmlnIGZpbGUgaXMgZm9yIFJvY2tjaGlwIHJrMjd4eCByZWZlcmVuY2UgZGVzaWduDQotICovDQotI2RlZmluZSBUQVJHRVRfVFJFRSAvKiB0aGlzIHRhcmdldCBpcyB1c2luZyB0aGUgdGFyZ2V0IHRyZWUgc3lzdGVtICovDQotDQotLyogRm9yIFJvbG8gYW5kIGJvb3QgbG9hZGVyICovDQotI2RlZmluZSBNT0RFTF9OVU1CRVIgNzgNCi0NCi0jZGVmaW5lIE1PREVMX05BTUUgICAiUm9ja2NoaXAgMjd4eCBnZW5lcmljIg0KLQ0KLS8qIGRlZmluZSB0aGlzIGlmIHlvdSBoYXZlIHJlY29yZGluZyBwb3NzaWJpbGl0eSAqLw0KLS8qICNkZWZpbmUgSEFWRV9SRUNPUkRJTkcgKi8NCi0NCi0vKiBEZWZpbmUgYml0bWFzayBvZiBpbnB1dCBzb3VyY2VzIC0gcmVjb3JkYWJsZSBiaXRtYXNrIGNhbiBiZSBkZWZpbmVkDQotICAgZXhwbGljaXRseSBpZiBkaWZmZXJlbnQgKi8NCi0vKiAjZGVmaW5lIElOUFVUX1NSQ19DQVBTIChTUkNfQ0FQX01JQyB8IFNSQ19DQVBfRk0pICovDQotDQotLyogZGVmaW5lIHRoZSBiaXRtYXNrIG9mIGhhcmR3YXJlIHNhbXBsZSByYXRlcyAqLw0KLSNkZWZpbmUgSFdfU0FNUFJfQ0FQUyAgIChTQU1QUl9DQVBfNDQgfCBTQU1QUl9DQVBfMjIgfCBTQU1QUl9DQVBfMTEgXA0KLSAgICAgICAgICAgICAgICAgICAgICAgfCBTQU1QUl9DQVBfNDggfCBTQU1QUl9DQVBfMjQgfCBTQU1QUl9DQVBfMTIgXA0KLSAgICAgICAgICAgICAgICAgICAgICAgfCBTQU1QUl9DQVBfMzIgfCBTQU1QUl9DQVBfMTYgfCBTQU1QUl9DQVBfOCkNCi0NCi0vKiBkZWZpbmUgdGhlIGJpdG1hc2sgb2YgcmVjb3JkaW5nIHNhbXBsZSByYXRlcyAqLw0KLSNkZWZpbmUgUkVDX1NBTVBSX0NBUFMgIChTQU1QUl9DQVBfNDQgfCBTQU1QUl9DQVBfMjIgfCBTQU1QUl9DQVBfMTEgXA0KLSAgICAgICAgICAgICAgICAgICAgICAgfCBTQU1QUl9DQVBfNDggfCBTQU1QUl9DQVBfMjQgfCBTQU1QUl9DQVBfMTIgXA0KLSAgICAgICAgICAgICAgICAgICAgICAgfCBTQU1QUl9DQVBfMzIgfCBTQU1QUl9DQVBfMTYgfCBTQU1QUl9DQVBfOCkNCi0NCi0vKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhIGJpdG1hcCBMQ0QgZGlzcGxheSAqLw0KLSNkZWZpbmUgSEFWRV9MQ0RfQklUTUFQDQotDQotLyogZGVmaW5lIHRoaXMgaWYgeW91IGNhbiBmbGlwIHlvdXIgTENEICovDQotLyogI2RlZmluZSBIQVZFX0xDRF9GTElQICovDQotDQotLyogZGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgYSBjb2xvdXIgTENEICovDQotI2RlZmluZSBIQVZFX0xDRF9DT0xPUg0KLQ0KLS8qIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IGFsYnVtIGFydCBmb3IgdGhpcyB0YXJnZXQgKi8NCi0jZGVmaW5lIEhBVkVfQUxCVU1BUlQNCi0NCi0vKiBkZWZpbmUgdGhpcyB0byBlbmFibGUgYml0bWFwIHNjYWxpbmcgKi8NCi0jZGVmaW5lIEhBVkVfQk1QX1NDQUxJTkcNCi0NCi0vKiBkZWZpbmUgdGhpcyB0byBlbmFibGUgSlBFRyBkZWNvZGluZyAqLw0KLSNkZWZpbmUgSEFWRV9KUEVHDQotDQotLyogZGVmaW5lIHRoaXMgaWYgeW91IGNhbiBpbnZlcnQgdGhlIGNvbG91cnMgb24geW91ciBMQ0QgKi8NCi0vKiAjZGVmaW5lIEhBVkVfTENEX0lOVkVSVCAqLw0KLQ0KLS8qIGRlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGFjY2VzcyB0byB0aGUgcXVpY2tzY3JlZW4gKi8NCi0jZGVmaW5lIEhBVkVfUVVJQ0tTQ1JFRU4NCi0NCi0vKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHBpdGNoc2NyZWVuICovDQotI2RlZmluZSBIQVZFX1BJVENIU0NSRUVODQotDQotLyogZGVmaW5lIHRoaXMgaWYgeW91IHdvdWxkIGxpa2UgdGFnY2FjaGUgdG8gYnVpbGQgb24gdGhpcyB0YXJnZXQgKi8NCi0jZGVmaW5lIEhBVkVfVEFHQ0FDSEUNCi0NCi0vKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhIGZsYXNoIG1lbW9yeSBzdG9yYWdlICovDQotI2RlZmluZSBIQVZFX0ZMQVNIX1NUT1JBR0UNCi0NCi0jZGVmaW5lIENPTkZJR19TVE9SQUdFIChTVE9SQUdFX1NEIHwgU1RPUkFHRV9OQU5EKQ0KLQ0KLSNkZWZpbmUgQ09ORklHX05BTkQgTkFORF9SSzI3WFgNCi0jZGVmaW5lIEhBVkVfU1dfVE9ORV9DT05UUk9MUw0KLQ0KLS8qIGNvbW1lbnRlZCBmb3Igbm93ICovDQotLyogI2RlZmluZSBIQVZFX0hPVFNXQVAgKi8NCi0NCi0jZGVmaW5lIE5VTV9EUklWRVMgMg0KLSNkZWZpbmUgU0VDVE9SX1NJWkUgNTEyDQotDQotLyogZm9yIHNtYWxsKGlzaCkgU0QgY2FyZHMgKi8NCi0jZGVmaW5lIEhBVkVfRkFUMTZTVVBQT1JUDQotDQotLyogTENEIGRpbWVuc2lvbnMgKi8NCi0jZGVmaW5lIExDRF9XSURUSCAgNDAwDQotI2RlZmluZSBMQ0RfSEVJR0hUIDI0MA0KLSNkZWZpbmUgTENEX0RFUFRIICAxNiAgIC8qIHBzZXVkbyAyNjIuMTQ0IGNvbG9ycyAqLw0KLSNkZWZpbmUgTENEX1BJWEVMRk9STUFUIFJHQjU2NSAvKiByZ2I1NjUgKi8NCi0NCi0vKiBEZWZpbmUgdGhpcyBpZiB0aGUgTENEIGNhbiBzaHV0IGRvd24gKi8NCi0vKiAjZGVmaW5lIEhBVkVfTENEX1NIVVRET1dOICovDQotDQotLyogRGVmaW5lIHRoaXMgaWYgeW91ciBMQ0QgY2FuIGJlIGVuYWJsZWQvZGlzYWJsZWQgKi8NCi0vKiAjZGVmaW5lIEhBVkVfTENEX0VOQUJMRSAqLw0KLQ0KLS8qIERlZmluZSB0aGlzIGlmIHlvdXIgTENEIGNhbiBiZSBwdXQgdG8gc2xlZXAuIEhBVkVfTENEX0VOQUJMRQ0KLSAgIHNob3VsZCBiZSBkZWZpbmVkIGFzIHdlbGwuICovDQotI2lmbmRlZiBCT09UTE9BREVSDQotLyogVE9ETzogI2RlZmluZSBIQVZFX0xDRF9TTEVFUCAqLw0KLS8qIFRPRE86ICNkZWZpbmUgSEFWRV9MQ0RfU0xFRVBfU0VUVElORyAqLw0KLSNlbmRpZg0KLQ0KLSNkZWZpbmUgQ09ORklHX0tFWVBBRCBSSzI3WFhfR0VORVJJQ19QQUQNCi0NCi0vKiBEZWZpbmUgdGhpcyB0byBlbmFibGUgbW9yc2UgY29kZSBpbnB1dCAqLw0KLSNkZWZpbmUgSEFWRV9NT1JTRV9JTlBVVA0KLQ0KLS8qIERlZmluZSB0aGlzIGlmIHlvdSBkbyBzb2Z0d2FyZSBjb2RlYyAqLw0KLSNkZWZpbmUgQ09ORklHX0NPREVDIFNXQ09ERUMNCi0NCi0vKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhIHJlYWwtdGltZSBjbG9jayAqLw0KLS8qICNkZWZpbmUgQ09ORklHX1JUQyBSVENfTkFOTzJHICovDQotDQotLyogRGVmaW5lIGlmIHRoZSBkZXZpY2UgY2FuIHdha2UgZnJvbSBhbiBSVEMgYWxhcm0gKi8NCi0vKiAjZGVmaW5lIEhBVkVfUlRDX0FMQVJNICovDQotDQotI2RlZmluZSBDT05GSUdfTENEIExDRF9TUEZENTQyMEENCi0NCi0vKiBEZWZpbmUgdGhlIHR5cGUgb2YgYXVkaW8gY29kZWMgKi8NCi0jZGVmaW5lIEhBVkVfUksyN1hYX0NPREVDDQotDQotLyogI2RlZmluZSBIQVZFX1BDTV9ETUFfQUREUkVTUyAqLw0KLQ0KLS8qIERlZmluZSB0aGlzIGZvciBMQ0QgYmFja2xpZ2h0IGF2YWlsYWJsZSAqLw0KLSNkZWZpbmUgSEFWRV9CQUNLTElHSFQNCi0jZGVmaW5lIEhBVkVfQkFDS0xJR0hUX0JSSUdIVE5FU1MNCi0jZGVmaW5lIE1JTl9CUklHSFRORVNTX1NFVFRJTkcgICAgICAwDQotI2RlZmluZSBNQVhfQlJJR0hUTkVTU19TRVRUSU5HICAgICAgMzENCi0jZGVmaW5lIERFRkFVTFRfQlJJR0hUTkVTU19TRVRUSU5HICAgMjANCi0jZGVmaW5lIENPTkZJR19CQUNLTElHSFRfRkFESU5HIEJBQ0tMSUdIVF9GQURJTkdfU1dfSFdfUkVHDQotDQotLyogRGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgYSBzb2Z0d2FyZSBjb250cm9sbGVkIHBvd2Vyb2ZmICovDQotI2RlZmluZSBIQVZFX1NXX1BPV0VST0ZGDQotDQotLyogVGhlIG51bWJlciBvZiBieXRlcyByZXNlcnZlZCBmb3IgbG9hZGFibGUgY29kZWNzICovDQotI2RlZmluZSBDT0RFQ19TSVpFIDB4MTAwMDAwDQotDQotLyogVGhlIG51bWJlciBvZiBieXRlcyByZXNlcnZlZCBmb3IgbG9hZGFibGUgcGx1Z2lucyAqLw0KLSNkZWZpbmUgUExVR0lOX0JVRkZFUl9TSVpFIDB4ODAwMDANCi0NCi0vKiBUT0RPOiBGaWd1cmUgb3V0IHJlYWwgdmFsdWVzICovDQotI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX0RFRkFVTFQgNDAwIC8qIGRlZmF1bHQgYmF0dGVyeSBjYXBhY2l0eSAqLw0KLSNkZWZpbmUgQkFUVEVSWV9DQVBBQ0lUWV9NSU4gICAgIDMwMCAvKiBtaW4uIGNhcGFjaXR5IHNlbGVjdGFibGUgKi8NCi0jZGVmaW5lIEJBVFRFUllfQ0FQQUNJVFlfTUFYICAgICA1MDAgLyogbWF4LiBjYXBhY2l0eSBzZWxlY3RhYmxlICovDQotI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX0lOQyAgICAgIDEwIC8qIGNhcGFjaXR5IGluY3JlbWVudCAqLw0KLSNkZWZpbmUgQkFUVEVSWV9UWVBFU19DT1VOVCAgICAgICAgMSAvKiBvbmx5IG9uZSB0eXBlICovDQotDQotLyogSGFyZHdhcmUgY29udHJvbGxlZCBjaGFyZ2luZyB3aXRoIG1vbml0b3JpbmcgKi8NCi0jZGVmaW5lIENPTkZJR19DSEFSR0lORyBDSEFSR0lOR19NT05JVE9SDQotDQotLyogZGVmaW5lIGN1cnJlbnQgdXNhZ2UgbGV2ZWxzICovDQotLyogVE9ETzogI2RlZmluZSBDVVJSRU5UX05PUk1BTA0KLSAqIFRPRE86ICNkZWZpbmUgQ1VSUkVOVF9CQUNLTElHSFQgIDIzDQotICovDQotDQotLyogZGVmaW5lIHRoaXMgaWYgdGhlIHVuaXQgY2FuIGJlIHBvd2VyZWQgb3IgY2hhcmdlZCB2aWEgVVNCICovDQotI2RlZmluZSBIQVZFX1VTQl9QT1dFUg0KLQ0KLS8qIFVTQiBPbi10aGUtZ28gKi8NCi0jZGVmaW5lIENPTkZJR19VU0JPVEcgVVNCT1RHX1JLMjdYWA0KLQ0KLS8qIGVuYWJsZSB0aGVzZSBmb3IgdGhlIGV4cGVyaW1lbnRhbCB1c2Igc3RhY2sgKi8NCi0jZGVmaW5lIEhBVkVfVVNCU1RBQ0sNCi0NCi0jZGVmaW5lIFVTRV9ST0NLQk9YX1VTQg0KLSNkZWZpbmUgVVNCX1ZFTkRPUl9JRCAweDA3MWINCi0jZGVmaW5lIFVTQl9QUk9EVUNUX0lEIDB4MzIwMg0KLSNkZWZpbmUgSEFWRV9CT09UTE9BREVSX1VTQl9NT0RFDQotDQotLyogRGVmaW5lIHRoaXMgaWYgeW91ciBMQ0QgY2FuIHNldCBjb250cmFzdCAqLw0KLS8qICNkZWZpbmUgSEFWRV9MQ0RfQ09OVFJBU1QgKi8NCi0NCi0vKiBUaGUgZXhhY3QgdHlwZSBvZiBDUFUgKi8NCi0jZGVmaW5lIENPTkZJR19DUFUgUksyN1hYDQotDQotLyogSTJDIGludGVyZmFjZSAqLw0KLSNkZWZpbmUgQ09ORklHX0kyQyBJMkNfUksyN1hYDQotDQotLyogRGVmaW5lIHRoaXMgdG8gdGhlIENQVSBmcmVxdWVuY3kgKi8NCi0jZGVmaW5lIENQVV9GUkVRICAgICAgICAyMDAwMDAwMDANCi0NCi0vKiBkZWZpbmUgdGhpcyBpZiB0aGUgaGFyZHdhcmUgY2FuIGJlIHBvd2VyZWQgb2ZmIHdoaWxlIGNoYXJnaW5nICovDQotLyogI2RlZmluZSBIQVZFX1BPV0VST0ZGX1dISUxFX0NIQVJHSU5HICovDQotDQotLyogT2Zmc2V0ICggaW4gdGhlIGZpcm13YXJlIGZpbGUncyBoZWFkZXIgKSB0byB0aGUgZmlsZSBDUkMgKi8NCi0jZGVmaW5lIEZJUk1XQVJFX09GRlNFVF9GSUxFX0NSQyAwDQotDQotLyogT2Zmc2V0ICggaW4gdGhlIGZpcm13YXJlIGZpbGUncyBoZWFkZXIgKSB0byB0aGUgcmVhbCBkYXRhICovDQotI2RlZmluZSBGSVJNV0FSRV9PRkZTRVRfRklMRV9EQVRBIDgNCi0NCi0jZGVmaW5lIFNUT1JBR0VfTkVFRFNfQUxJR04NCi0NCi0vKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhZGp1c3RhYmxlIENQVSBmcmVxdWVuY3kgKi8NCi0vKiAjZGVmaW5lIEhBVkVfQURKVVNUQUJMRV9DUFVfRlJFUSAqLw0KLQ0KLSNkZWZpbmUgQk9PVEZJTEVfRVhUICJyazI3Ig0KLSNkZWZpbmUgQk9PVEZJTEUgInJvY2tib3guIiBCT09URklMRV9FWFQNCi0jZGVmaW5lIEJPT1RESVIgIi8ucm9ja2JveCINCisvKgorICogVGhpcyBjb25maWcgZmlsZSBpcyBmb3IgUm9ja2NoaXAgcmsyN3h4IHJlZmVyZW5jZSBkZXNpZ24KKyAqLworI2RlZmluZSBUQVJHRVRfVFJFRSAvKiB0aGlzIHRhcmdldCBpcyB1c2luZyB0aGUgdGFyZ2V0IHRyZWUgc3lzdGVtICovCisKKy8qIEZvciBSb2xvIGFuZCBib290IGxvYWRlciAqLworI2RlZmluZSBNT0RFTF9OVU1CRVIgNzgKKworI2RlZmluZSBNT0RFTF9OQU1FICAgIlJvY2tjaGlwIDI3eHggZ2VuZXJpYyIKKworLyogZGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgcmVjb3JkaW5nIHBvc3NpYmlsaXR5ICovCisvKiAjZGVmaW5lIEhBVkVfUkVDT1JESU5HICovCisKKy8qIERlZmluZSBiaXRtYXNrIG9mIGlucHV0IHNvdXJjZXMgLSByZWNvcmRhYmxlIGJpdG1hc2sgY2FuIGJlIGRlZmluZWQKKyAgIGV4cGxpY2l0bHkgaWYgZGlmZmVyZW50ICovCisvKiAjZGVmaW5lIElOUFVUX1NSQ19DQVBTIChTUkNfQ0FQX01JQyB8IFNSQ19DQVBfRk0pICovCisKKy8qIGRlZmluZSB0aGUgYml0bWFzayBvZiBoYXJkd2FyZSBzYW1wbGUgcmF0ZXMgKi8KKyNkZWZpbmUgSFdfU0FNUFJfQ0FQUyAgIChTQU1QUl9DQVBfNDQgfCBTQU1QUl9DQVBfMjIgfCBTQU1QUl9DQVBfMTEgXAorICAgICAgICAgICAgICAgICAgICAgICB8IFNBTVBSX0NBUF80OCB8IFNBTVBSX0NBUF8yNCB8IFNBTVBSX0NBUF8xMiBcCisgICAgICAgICAgICAgICAgICAgICAgIHwgU0FNUFJfQ0FQXzMyIHwgU0FNUFJfQ0FQXzE2IHwgU0FNUFJfQ0FQXzgpCisKKy8qIGRlZmluZSB0aGUgYml0bWFzayBvZiByZWNvcmRpbmcgc2FtcGxlIHJhdGVzICovCisjZGVmaW5lIFJFQ19TQU1QUl9DQVBTICAoU0FNUFJfQ0FQXzQ0IHwgU0FNUFJfQ0FQXzIyIHwgU0FNUFJfQ0FQXzExIFwKKyAgICAgICAgICAgICAgICAgICAgICAgfCBTQU1QUl9DQVBfNDggfCBTQU1QUl9DQVBfMjQgfCBTQU1QUl9DQVBfMTIgXAorICAgICAgICAgICAgICAgICAgICAgICB8IFNBTVBSX0NBUF8zMiB8IFNBTVBSX0NBUF8xNiB8IFNBTVBSX0NBUF84KQorCisvKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhIGJpdG1hcCBMQ0QgZGlzcGxheSAqLworI2RlZmluZSBIQVZFX0xDRF9CSVRNQVAKKworLyogZGVmaW5lIHRoaXMgaWYgeW91IGNhbiBmbGlwIHlvdXIgTENEICovCisvKiAjZGVmaW5lIEhBVkVfTENEX0ZMSVAgKi8KKworLyogZGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgYSBjb2xvdXIgTENEICovCisjZGVmaW5lIEhBVkVfTENEX0NPTE9SCisKKy8qIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IGFsYnVtIGFydCBmb3IgdGhpcyB0YXJnZXQgKi8KKyNkZWZpbmUgSEFWRV9BTEJVTUFSVAorCisvKiBkZWZpbmUgdGhpcyB0byBlbmFibGUgYml0bWFwIHNjYWxpbmcgKi8KKyNkZWZpbmUgSEFWRV9CTVBfU0NBTElORworCisvKiBkZWZpbmUgdGhpcyB0byBlbmFibGUgSlBFRyBkZWNvZGluZyAqLworI2RlZmluZSBIQVZFX0pQRUcKKworLyogZGVmaW5lIHRoaXMgaWYgeW91IGNhbiBpbnZlcnQgdGhlIGNvbG91cnMgb24geW91ciBMQ0QgKi8KKy8qICNkZWZpbmUgSEFWRV9MQ0RfSU5WRVJUICovCisKKy8qIGRlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGFjY2VzcyB0byB0aGUgcXVpY2tzY3JlZW4gKi8KKyNkZWZpbmUgSEFWRV9RVUlDS1NDUkVFTgorCisvKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHBpdGNoc2NyZWVuICovCisjZGVmaW5lIEhBVkVfUElUQ0hTQ1JFRU4KKworLyogZGVmaW5lIHRoaXMgaWYgeW91IHdvdWxkIGxpa2UgdGFnY2FjaGUgdG8gYnVpbGQgb24gdGhpcyB0YXJnZXQgKi8KKyNkZWZpbmUgSEFWRV9UQUdDQUNIRQorCisvKiBkZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhIGZsYXNoIG1lbW9yeSBzdG9yYWdlICovCisjZGVmaW5lIEhBVkVfRkxBU0hfU1RPUkFHRQorCisjZGVmaW5lIENPTkZJR19TVE9SQUdFIChTVE9SQUdFX1NEIHwgU1RPUkFHRV9OQU5EKQorCisjZGVmaW5lIENPTkZJR19OQU5EIE5BTkRfUksyN1hYCisjZGVmaW5lIEhBVkVfU1dfVE9ORV9DT05UUk9MUworCisvKiBjb21tZW50ZWQgZm9yIG5vdyAqLworLyogI2RlZmluZSBIQVZFX0hPVFNXQVAgKi8KKworI2RlZmluZSBOVU1fRFJJVkVTIDIKKyNkZWZpbmUgU0VDVE9SX1NJWkUgNTEyCisKKy8qIGZvciBzbWFsbChpc2gpIFNEIGNhcmRzICovCisjZGVmaW5lIEhBVkVfRkFUMTZTVVBQT1JUCisKKy8qIExDRCBkaW1lbnNpb25zICovCisjZGVmaW5lIExDRF9XSURUSCAgNDAwCisjZGVmaW5lIExDRF9IRUlHSFQgMjQwCisjZGVmaW5lIExDRF9ERVBUSCAgMTYgICAvKiBwc2V1ZG8gMjYyLjE0NCBjb2xvcnMgKi8KKyNkZWZpbmUgTENEX1BJWEVMRk9STUFUIFJHQjU2NSAvKiByZ2I1NjUgKi8KKworLyogRGVmaW5lIHRoaXMgaWYgdGhlIExDRCBjYW4gc2h1dCBkb3duICovCisvKiAjZGVmaW5lIEhBVkVfTENEX1NIVVRET1dOICovCisKKy8qIERlZmluZSB0aGlzIGlmIHlvdXIgTENEIGNhbiBiZSBlbmFibGVkL2Rpc2FibGVkICovCisvKiAjZGVmaW5lIEhBVkVfTENEX0VOQUJMRSAqLworCisvKiBEZWZpbmUgdGhpcyBpZiB5b3VyIExDRCBjYW4gYmUgcHV0IHRvIHNsZWVwLiBIQVZFX0xDRF9FTkFCTEUKKyAgIHNob3VsZCBiZSBkZWZpbmVkIGFzIHdlbGwuICovCisjaWZuZGVmIEJPT1RMT0FERVIKKy8qIFRPRE86ICNkZWZpbmUgSEFWRV9MQ0RfU0xFRVAgKi8KKy8qIFRPRE86ICNkZWZpbmUgSEFWRV9MQ0RfU0xFRVBfU0VUVElORyAqLworI2VuZGlmCisKKyNkZWZpbmUgQ09ORklHX0tFWVBBRCBSSzI3WFhfR0VORVJJQ19QQUQKKworLyogRGVmaW5lIHRoaXMgdG8gZW5hYmxlIG1vcnNlIGNvZGUgaW5wdXQgKi8KKyNkZWZpbmUgSEFWRV9NT1JTRV9JTlBVVAorCisvKiBEZWZpbmUgdGhpcyBpZiB5b3UgZG8gc29mdHdhcmUgY29kZWMgKi8KKyNkZWZpbmUgQ09ORklHX0NPREVDIFNXQ09ERUMKKworLyogZGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgYSByZWFsLXRpbWUgY2xvY2sgKi8KKy8qICNkZWZpbmUgQ09ORklHX1JUQyBSVENfTkFOTzJHICovCisKKy8qIERlZmluZSBpZiB0aGUgZGV2aWNlIGNhbiB3YWtlIGZyb20gYW4gUlRDIGFsYXJtICovCisvKiAjZGVmaW5lIEhBVkVfUlRDX0FMQVJNICovCisKKyNkZWZpbmUgQ09ORklHX0xDRCBMQ0RfU1BGRDU0MjBBCisKKy8qIERlZmluZSB0aGUgdHlwZSBvZiBhdWRpbyBjb2RlYyAqLworI2RlZmluZSBIQVZFX1JLMjdYWF9DT0RFQworCisvKiAjZGVmaW5lIEhBVkVfUENNX0RNQV9BRERSRVNTICovCisKKy8qIERlZmluZSB0aGlzIGZvciBMQ0QgYmFja2xpZ2h0IGF2YWlsYWJsZSAqLworI2RlZmluZSBIQVZFX0JBQ0tMSUdIVAorI2RlZmluZSBIQVZFX0JBQ0tMSUdIVF9CUklHSFRORVNTCisjZGVmaW5lIE1JTl9CUklHSFRORVNTX1NFVFRJTkcgICAgICAwCisjZGVmaW5lIE1BWF9CUklHSFRORVNTX1NFVFRJTkcgICAgICAzMQorI2RlZmluZSBERUZBVUxUX0JSSUdIVE5FU1NfU0VUVElORyAgIDIwCisjZGVmaW5lIENPTkZJR19CQUNLTElHSFRfRkFESU5HIEJBQ0tMSUdIVF9GQURJTkdfU1dfSFdfUkVHCisKKy8qIERlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGEgc29mdHdhcmUgY29udHJvbGxlZCBwb3dlcm9mZiAqLworI2RlZmluZSBIQVZFX1NXX1BPV0VST0ZGCisKKy8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmVzZXJ2ZWQgZm9yIGxvYWRhYmxlIGNvZGVjcyAqLworI2RlZmluZSBDT0RFQ19TSVpFIDB4MTAwMDAwCisKKy8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmVzZXJ2ZWQgZm9yIGxvYWRhYmxlIHBsdWdpbnMgKi8KKyNkZWZpbmUgUExVR0lOX0JVRkZFUl9TSVpFIDB4ODAwMDAKKworLyogVE9ETzogRmlndXJlIG91dCByZWFsIHZhbHVlcyAqLworI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX0RFRkFVTFQgNDAwIC8qIGRlZmF1bHQgYmF0dGVyeSBjYXBhY2l0eSAqLworI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX01JTiAgICAgMzAwIC8qIG1pbi4gY2FwYWNpdHkgc2VsZWN0YWJsZSAqLworI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX01BWCAgICAgNTAwIC8qIG1heC4gY2FwYWNpdHkgc2VsZWN0YWJsZSAqLworI2RlZmluZSBCQVRURVJZX0NBUEFDSVRZX0lOQyAgICAgIDEwIC8qIGNhcGFjaXR5IGluY3JlbWVudCAqLworI2RlZmluZSBCQVRURVJZX1RZUEVTX0NPVU5UICAgICAgICAxIC8qIG9ubHkgb25lIHR5cGUgKi8KKworLyogSGFyZHdhcmUgY29udHJvbGxlZCBjaGFyZ2luZyB3aXRoIG1vbml0b3JpbmcgKi8KKyNkZWZpbmUgQ09ORklHX0NIQVJHSU5HIENIQVJHSU5HX01PTklUT1IKKworLyogZGVmaW5lIGN1cnJlbnQgdXNhZ2UgbGV2ZWxzICovCisvKiBUT0RPOiAjZGVmaW5lIENVUlJFTlRfTk9STUFMCisgKiBUT0RPOiAjZGVmaW5lIENVUlJFTlRfQkFDS0xJR0hUICAyMworICovCisKKy8qIGRlZmluZSB0aGlzIGlmIHRoZSB1bml0IGNhbiBiZSBwb3dlcmVkIG9yIGNoYXJnZWQgdmlhIFVTQiAqLworI2RlZmluZSBIQVZFX1VTQl9QT1dFUgorCisvKiBVU0IgT24tdGhlLWdvICovCisjZGVmaW5lIENPTkZJR19VU0JPVEcgVVNCT1RHX1JLMjdYWAorCisvKiBlbmFibGUgdGhlc2UgZm9yIHRoZSBleHBlcmltZW50YWwgdXNiIHN0YWNrICovCisjZGVmaW5lIEhBVkVfVVNCU1RBQ0sKKworI2RlZmluZSBVU0VfUk9DS0JPWF9VU0IKKyNkZWZpbmUgVVNCX1ZFTkRPUl9JRCAweDA3MWIKKyNkZWZpbmUgVVNCX1BST0RVQ1RfSUQgMHgzMjAyCisjZGVmaW5lIEhBVkVfQk9PVExPQURFUl9VU0JfTU9ERQorCisvKiBEZWZpbmUgdGhpcyBpZiB5b3VyIExDRCBjYW4gc2V0IGNvbnRyYXN0ICovCisvKiAjZGVmaW5lIEhBVkVfTENEX0NPTlRSQVNUICovCisKKy8qIFRoZSBleGFjdCB0eXBlIG9mIENQVSAqLworI2RlZmluZSBDT05GSUdfQ1BVIFJLMjdYWAorCisvKiBJMkMgaW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19JMkMgSTJDX1JLMjdYWAorCisvKiBEZWZpbmUgdGhpcyB0byB0aGUgQ1BVIGZyZXF1ZW5jeSAqLworI2RlZmluZSBDUFVfRlJFUSAgICAgICAgMjAwMDAwMDAwCisKKy8qIGRlZmluZSB0aGlzIGlmIHRoZSBoYXJkd2FyZSBjYW4gYmUgcG93ZXJlZCBvZmYgd2hpbGUgY2hhcmdpbmcgKi8KKy8qICNkZWZpbmUgSEFWRV9QT1dFUk9GRl9XSElMRV9DSEFSR0lORyAqLworCisvKiBPZmZzZXQgKCBpbiB0aGUgZmlybXdhcmUgZmlsZSdzIGhlYWRlciApIHRvIHRoZSBmaWxlIENSQyAqLworI2RlZmluZSBGSVJNV0FSRV9PRkZTRVRfRklMRV9DUkMgMAorCisvKiBPZmZzZXQgKCBpbiB0aGUgZmlybXdhcmUgZmlsZSdzIGhlYWRlciApIHRvIHRoZSByZWFsIGRhdGEgKi8KKyNkZWZpbmUgRklSTVdBUkVfT0ZGU0VUX0ZJTEVfREFUQSA4CisKKyNkZWZpbmUgU1RPUkFHRV9ORUVEU19BTElHTgorCisvKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBhZGp1c3RhYmxlIENQVSBmcmVxdWVuY3kgKi8KKy8qICNkZWZpbmUgSEFWRV9BREpVU1RBQkxFX0NQVV9GUkVRICovCisKKyNkZWZpbmUgQk9PVEZJTEVfRVhUICJyazI3IgorI2RlZmluZSBCT09URklMRSAicm9ja2JveC4iIEJPT1RGSUxFX0VYVAorI2RlZmluZSBCT09URElSICIvLnJvY2tib3giCmRpZmYgLS1naXQgYS9maXJtd2FyZS9leHBvcnQvZGFjMzU1MGEuaCBiL2Zpcm13YXJlL2V4cG9ydC9kYWMzNTUwYS5oCmluZGV4IDM3NDRiMjIxLi4yM2M0ZGI5IDEwMDY0NAotLS0gYS9maXJtd2FyZS9leHBvcnQvZGFjMzU1MGEuaAorKysgYi9maXJtd2FyZS9leHBvcnQvZGFjMzU1MGEuaApAQCAtNSw3ICs1LDcgQEAKICAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8CiAgKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKICAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLwotICogJElkOiBkYWMuaCAyNDE1OCAyMDEwLTAxLTAzIDExOjMxOjE0WiBCdXNjaGVsICQKKyAqICRJZCQKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgYnkgTGludXMgTmllbHNlbiBGZWx0emluZwogICoKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2V4cG9ydC9tYXNjb2RlYy5oIGIvZmlybXdhcmUvZXhwb3J0L21hc2NvZGVjLmgKaW5kZXggODJhNzFlMy4uZjEwZGMzZiAxMDA2NDQKLS0tIGEvZmlybXdhcmUvZXhwb3J0L21hc2NvZGVjLmgKKysrIGIvZmlybXdhcmUvZXhwb3J0L21hc2NvZGVjLmgKQEAgLTUsNyArNSw3IEBACiAgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAogICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCiAgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KLSAqICRJZDogbWFzLmggMjQxNTQgMjAxMC0wMS0wMyAxMDoyNzo0M1ogQnVzY2hlbCAkCisgKiAkSWQkCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDAyIGJ5IExpbnVzIE5pZWxzZW4gRmVsdHppbmcKICAqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9leHBvcnQvczVsODcwMi5oIGIvZmlybXdhcmUvZXhwb3J0L3M1bDg3MDIuaAppbmRleCAzMzhkN2E1Li4zMWU2YTYzIDEwMDY0NAotLS0gYS9maXJtd2FyZS9leHBvcnQvczVsODcwMi5oCisrKyBiL2Zpcm13YXJlL2V4cG9ydC9zNWw4NzAyLmgKQEAgLTEsODMwICsxLDgzMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0gKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18NCi0gKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0gKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXA0KLSAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSAqICRJZDogczVsODcwMC5oIDI4NzkxIDIwMTAtMTItMTEgMDk6Mzk6MzNaIEJ1c2NoZWwgJA0KLSAqDQotICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IE1hcmNvZW4gSGlyc2NoYmVyZywgQmFydCB2YW4gQWRyaWNoZW0NCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyDQotICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICoNCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZDQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLQ0KLSNpZm5kZWYgX19TNUw4NzAyX0hfXw0KLSNkZWZpbmUgX19TNUw4NzAyX0hfXw0KLQ0KLSNpbmNsdWRlIDxpbnR0eXBlcy5oPg0KLQ0KLSNkZWZpbmUgUkVHOF9QVFJfVCAgdm9sYXRpbGUgdWludDhfdCAqDQotI2RlZmluZSBSRUcxNl9QVFJfVCB2b2xhdGlsZSB1aW50MTZfdCAqDQotI2RlZmluZSBSRUczMl9QVFJfVCB2b2xhdGlsZSB1aW50MzJfdCAqDQotDQotI2RlZmluZSBUSU1FUl9GUkVRICA1NDAwMDAwMA0KLQ0KLSNkZWZpbmUgQ0FDSEVBTElHTl9CSVRTICg0KSAvKiAyXjQgPSAxNiBieXRlcyAqLw0KLQ0KLSNkZWZpbmUgRFJBTV9PUklHIDB4MDgwMDAwMDANCi0jZGVmaW5lIElSQU1fT1JJRyAwDQotDQotI2RlZmluZSBEUkFNX1NJWkUgKE1FTU9SWVNJWkUgKiAweDEwMDAwMCkNCi0jZGVmaW5lIElSQU1fU0laRSAweDQwMDAwDQotDQotI2RlZmluZSBUVEJfU0laRSAgICAgICAgICAgICAgICAgIDB4NDAwMA0KLSNkZWZpbmUgVFRCX0JBU0VfQUREUiAgICAgICAgICAgICAoRFJBTV9PUklHICsgRFJBTV9TSVpFIC0gVFRCX1NJWkUpDQotDQotLy8vLy9TWVNURU0gQ09OVFJPTExFUi8vLy8vDQotI2RlZmluZSBDTEtDT04wICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQzUwMDAwMCkpKQ0KLSNkZWZpbmUgQ0xLQ09OMSAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0M1MDAwMDQpKSkNCi0jZGVmaW5lIENMS0NPTjIgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDA4KSkpDQotI2RlZmluZSBDTEtDT04zICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQzUwMDAwQykpKQ0KLSNkZWZpbmUgQ0xLQ09ONCAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0M1MDAwMTApKSkNCi0jZGVmaW5lIENMS0NPTjUgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDE0KSkpDQotI2RlZmluZSBQTEwwUE1TICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQzUwMDAyMCkpKQ0KLSNkZWZpbmUgUExMMVBNUyAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0M1MDAwMjQpKSkNCi0jZGVmaW5lIFBMTDJQTVMgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDI4KSkpDQotI2RlZmluZSBQTEwwTENOVCAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQzUwMDAzMCkpKQ0KLSNkZWZpbmUgUExMMUxDTlQgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0M1MDAwMzQpKSkNCi0jZGVmaW5lIFBMTDJMQ05UICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDM4KSkpDQotI2RlZmluZSBQTExMT0NLICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQzUwMDA0MCkpKQ0KLSNkZWZpbmUgUExMTU9ERSAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0M1MDAwNDQpKSkNCi0jZGVmaW5lIFBXUkNPTihpKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNTAwMDAwIFwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoKGkpID09IDQgPyAweDZDIDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaSkgPT0gMyA/IDB4NjggOiBcDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpKSA9PSAyID8gMHg1OCA6IFwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGkpID09IDEgPyAweDRDIDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDgpKSkpKSkpDQotDQotDQotLy8vLy9USU1FUi8vLy8vDQotI2RlZmluZSBUQUNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwMCkpKQ0KLSNkZWZpbmUgVEFDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwMDQpKSkNCi0jZGVmaW5lIFRBREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDA4KSkpDQotI2RlZmluZSBUQURBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwQykpKQ0KLSNkZWZpbmUgVEFQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwMTApKSkNCi0jZGVmaW5lIFRBQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDE0KSkpDQotI2RlZmluZSBUQkNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyMCkpKQ0KLSNkZWZpbmUgVEJDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwMjQpKSkNCi0jZGVmaW5lIFRCREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDI4KSkpDQotI2RlZmluZSBUQkRBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyQykpKQ0KLSNkZWZpbmUgVEJQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwMzApKSkNCi0jZGVmaW5lIFRCQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDM0KSkpDQotI2RlZmluZSBUQ0NPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0MCkpKQ0KLSNkZWZpbmUgVENDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwNDQpKSkNCi0jZGVmaW5lIFRDREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDQ4KSkpDQotI2RlZmluZSBUQ0RBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0QykpKQ0KLSNkZWZpbmUgVENQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwNTApKSkNCi0jZGVmaW5lIFRDQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDU0KSkpDQotI2RlZmluZSBURENPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2MCkpKQ0KLSNkZWZpbmUgVERDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwNjQpKSkNCi0jZGVmaW5lIFREREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDY4KSkpDQotI2RlZmluZSBURERBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2QykpKQ0KLSNkZWZpbmUgVERQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwNzApKSkNCi0jZGVmaW5lIFREQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMDc0KSkpDQotI2RlZmluZSBURUNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBMCkpKQ0KLSNkZWZpbmUgVEVDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwQTQpKSkNCi0jZGVmaW5lIFRFREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEE4KSkpDQotI2RlZmluZSBURURBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBQykpKQ0KLSNkZWZpbmUgVEVQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwQjApKSkNCi0jZGVmaW5lIFRFQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEI0KSkpDQotI2RlZmluZSBURkNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDMCkpKQ0KLSNkZWZpbmUgVEZDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwQzQpKSkNCi0jZGVmaW5lIFRGREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEM4KSkpDQotI2RlZmluZSBURkRBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDQykpKQ0KLSNkZWZpbmUgVEZQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwRDApKSkNCi0jZGVmaW5lIFRGQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEQ0KSkpDQotI2RlZmluZSBUR0NPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFMCkpKQ0KLSNkZWZpbmUgVEdDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwRTQpKSkNCi0jZGVmaW5lIFRHREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEU4KSkpDQotI2RlZmluZSBUR0RBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFQykpKQ0KLSNkZWZpbmUgVEdQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAwRjApKSkNCi0jZGVmaW5lIFRHQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMEY0KSkpDQotI2RlZmluZSBUSENPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwMCkpKQ0KLSNkZWZpbmUgVEhDTUQgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAxMDQpKSkNCi0jZGVmaW5lIFRIREFUQTAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMTA4KSkpDQotI2RlZmluZSBUSERBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwQykpKQ0KLSNkZWZpbmUgVEhQUkUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M3MDAxMTApKSkNCi0jZGVmaW5lIFRIQ05UICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNzAwMTE0KSkpDQotI2RlZmluZSBVU0VDX1RJTUVSICAgVEVDTlQNCi0NCi0NCi0vLy8vL1VTQi8vLy8vDQotI2RlZmluZSBPVEdCQVNFIDB4Mzg0MDAwMDANCi0jZGVmaW5lIFBIWUJBU0UgMHgzQzQwMDAwMA0KLSNkZWZpbmUgU1lOT1BTWVNPVEdfQ0xPQ0sgMA0KLSNkZWZpbmUgU1lOT1BTWVNPVEdfQUhCQ0ZHIDB4MkINCi0NCi0NCi0vLy8vL0kyQy8vLy8vDQotI2RlZmluZSBJSUNDT04oYnVzKSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzYwMDAwMCArIDB4MzAwMDAwICogKGJ1cykpKSkNCi0jZGVmaW5lIElJQ1NUQVQoYnVzKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNjAwMDA0ICsgMHgzMDAwMDAgKiAoYnVzKSkpKQ0KLSNkZWZpbmUgSUlDQUREKGJ1cykgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M2MDAwMDggKyAweDMwMDAwMCAqIChidXMpKSkpDQotI2RlZmluZSBJSUNEUyhidXMpICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzYwMDAwQyArIDB4MzAwMDAwICogKGJ1cykpKSkNCi0NCi0NCi0vLy8vL0lOVEVSUlVQVCBDT05UUk9MTEVSUy8vLy8vDQotI2RlZmluZSBWSUNJUlFTVEFUVVModikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwMCArIDB4MTAwMCAqICh2KSkpKQ0KLSNkZWZpbmUgVklDRklRU1RBVFVTKHYpICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMDQgKyAweDEwMDAgKiAodikpKSkNCi0jZGVmaW5lIFZJQ1JBV0lOVFIodikgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDA4ICsgMHgxMDAwICogKHYpKSkpDQotI2RlZmluZSBWSUNJTlRTRUxFQ1QodikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwQyArIDB4MTAwMCAqICh2KSkpKQ0KLSNkZWZpbmUgVklDSU5URU5BQkxFKHYpICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMTAgKyAweDEwMDAgKiAodikpKSkNCi0jZGVmaW5lIFZJQ0lOVEVOQ0xFQVIodikgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDE0ICsgMHgxMDAwICogKHYpKSkpDQotI2RlZmluZSBWSUNTT0ZUSU5UKHYpICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxOCArIDB4MTAwMCAqICh2KSkpKQ0KLSNkZWZpbmUgVklDU09GVElOVENMRUFSKHYpICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMUMgKyAweDEwMDAgKiAodikpKSkNCi0jZGVmaW5lIFZJQ1BST1RFQ1RJT04odikgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDIwICsgMHgxMDAwICogKHYpKSkpDQotI2RlZmluZSBWSUNTV1BSSU9SSVRZTUFTSyh2KSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAyNCArIDB4MTAwMCAqICh2KSkpKQ0KLSNkZWZpbmUgVklDUFJJT1JJVFlEQUlTWSh2KSAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMjggKyAweDEwMDAgKiAodikpKSkNCi0jZGVmaW5lIFZJQ1ZFQ1RBRERSKHYsIGkpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMTAwICsgMHgxMDAwICogKHYpICsgNCAqIChpKSkpKQ0KLSNkZWZpbmUgVklDVkVDVFBSSU9SSVRZKHYsIGkpICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDAgKyAweDEwMDAgKiAodikgKyA0ICogKGkpKSkpDQotI2RlZmluZSBWSUNBRERSRVNTKHYpICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMEYwMCArIDB4MTAwMCAqICh2KSkpKQ0KLSNkZWZpbmUgVklDMElSUVNUQVRVUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMDApKSkNCi0jZGVmaW5lIFZJQzBGSVFTVEFUVVMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDA0KSkpDQotI2RlZmluZSBWSUMwUkFXSU5UUiAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwOCkpKQ0KLSNkZWZpbmUgVklDMElOVFNFTEVDVCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMEMpKSkNCi0jZGVmaW5lIFZJQzBJTlRFTkFCTEUgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDEwKSkpDQotI2RlZmluZSBWSUMwSU5URU5DTEVBUiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxNCkpKQ0KLSNkZWZpbmUgVklDMFNPRlRJTlQgICAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMTgpKSkNCi0jZGVmaW5lIFZJQzBTT0ZUSU5UQ0xFQVIgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDFDKSkpDQotI2RlZmluZSBWSUMwUFJPVEVDVElPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAyMCkpKQ0KLSNkZWZpbmUgVklDMFNXUFJJT1JJVFlNQVNLICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAwMjQpKSkNCi0jZGVmaW5lIFZJQzBQUklPUklUWURBSVNZICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDI4KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIoaSkgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwMCArIDQgKiAoaSkpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjAgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTAwKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIxICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwNCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMiAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxMDgpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjMgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTBDKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFI0ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExMCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSNSAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxMTQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjYgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTE4KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFI3ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExQykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSOCAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxMjApKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjkgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTI0KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIxMCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEyOCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMTEgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxMkMpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjEyICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTMwKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIxMyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEzNCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMTQgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxMzgpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjE1ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTNDKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIxNiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0MCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMTcgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxNDQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjE4ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTQ4KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIxOSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0QykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMjAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxNTApKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjIxICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTU0KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIyMiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE1OCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMjMgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxNUMpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjI0ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTYwKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIyNSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE2NCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMjYgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxNjgpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjI3ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTZDKSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIyOCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3MCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RBRERSMjkgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDAxNzQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUQUREUjMwICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTc4KSkpDQotI2RlZmluZSBWSUMwVkVDVEFERFIzMSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3QykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWShpKSAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDAgKyA0ICogKGkpKSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIwMCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkyICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjA4KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIwQykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTQgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMTApKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFk1ICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjE0KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZNiAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIxOCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTcgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMUMpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFk4ICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjIwKSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZOSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIyNCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMjgpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkxMSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjJDKSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMTIgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIzMCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEzICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMzQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkxNCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjM4KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMTUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIzQykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE2ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNDApKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkxNyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjQ0KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMTggICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDI0OCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE5ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNEMpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkyMCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjUwKSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMjEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDI1NCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIyICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNTgpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkyMyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjVDKSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMjQgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDI2MCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI1ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNjQpKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkyNiAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjY4KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMjcgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDI2QykpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI4ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNzApKSkNCi0jZGVmaW5lIFZJQzBWRUNUUFJJT1JJVFkyOSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMjc0KSkpDQotI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZMzAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDI3OCkpKQ0KLSNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTMxICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyN0MpKSkNCi0jZGVmaW5lIFZJQzBBRERSRVNTICAgICAgICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4RTAwRjAwKSkpDQotI2RlZmluZSBWSUMxSVJRU1RBVFVTICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTAwMCkpKQ0KLSNkZWZpbmUgVklDMUZJUVNUQVRVUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMDQpKSkNCi0jZGVmaW5lIFZJQzFSQVdJTlRSICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMDA4KSkpDQotI2RlZmluZSBWSUMxSU5UU0VMRUNUICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTAwQykpKQ0KLSNkZWZpbmUgVklDMUlOVEVOQUJMRSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMTApKSkNCi0jZGVmaW5lIFZJQzFJTlRFTkNMRUFSICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMDE0KSkpDQotI2RlZmluZSBWSUMxU09GVElOVCAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTAxOCkpKQ0KLSNkZWZpbmUgVklDMVNPRlRJTlRDTEVBUiAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMUMpKSkNCi0jZGVmaW5lIFZJQzFQUk9URUNUSU9OICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMDIwKSkpDQotI2RlZmluZSBWSUMxU1dQUklPUklUWU1BU0sgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTAyNCkpKQ0KLSNkZWZpbmUgVklDMVBSSU9SSVRZREFJU1kgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMjgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUihpKSAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTAwICsgNCAqIChpKSkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMCAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMDApKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjEgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTA0KSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIyICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTEwOCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMyAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMEMpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjQgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTEwKSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFI1ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTExNCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSNiAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMTgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjcgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTFDKSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFI4ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTEyMCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSOSAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMjQpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjEwICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTI4KSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIxMSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTEyQykpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMTIgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMzApKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjEzICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTM0KSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIxNCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTEzOCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMTUgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExM0MpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjE2ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTQwKSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIxNyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTE0NCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMTggICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExNDgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjE5ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTRDKSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIyMCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTE1MCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMjEgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExNTQpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjIyICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTU4KSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIyMyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTE1QykpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMjQgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExNjApKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjI1ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTY0KSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIyNiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTE2OCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMjcgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExNkMpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjI4ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTcwKSkpDQotI2RlZmluZSBWSUMxVkVDVEFERFIyOSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMTE3NCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RBRERSMzAgICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExNzgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUQUREUjMxICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTdDKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZKGkpICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwMCArIDQgKiAoaSkpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkwICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjAwKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwNCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTIgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyMDgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkzICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjBDKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxMCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTUgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyMTQpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFk2ICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjE4KSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxQykpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTggICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyMjApKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFk5ICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjI0KSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIyOCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTExICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyMkMpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkxMiAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjMwKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTMgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIzNCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTE0ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyMzgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkxNSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjNDKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTYgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0MCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTE3ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyNDQpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkxOCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjQ4KSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0QykpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTIwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyNTApKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkyMSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjU0KSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjIgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI1OCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTIzICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyNUMpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkyNCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjYwKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI2NCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTI2ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyNjgpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkyNyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjZDKSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjggICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3MCkpKQ0KLSNkZWZpbmUgVklDMVZFQ1RQUklPUklUWTI5ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEyNzQpKSkNCi0jZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkzMCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjc4KSkpDQotI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMzEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3QykpKQ0KLSNkZWZpbmUgVklDMUFERFJFU1MgICAgICAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDFGMDApKSkNCi0NCi0NCi0vLy8vL0dQSU8vLy8vLw0KLSNkZWZpbmUgUENPTihpKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDAwICsgKChpKSA8PCA1KSkpKQ0KLSNkZWZpbmUgUERBVChpKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDA0ICsgKChpKSA8PCA1KSkpKQ0KLSNkZWZpbmUgUFVOQShpKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDA4ICsgKChpKSA8PCA1KSkpKQ0KLSNkZWZpbmUgUFVOQihpKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDBjICsgKChpKSA8PCA1KSkpKQ0KLSNkZWZpbmUgUENPTjAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDAwKSkpDQotI2RlZmluZSBQREFUMCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwMDQpKSkNCi0jZGVmaW5lIFBDT04xICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDAyMCkpKQ0KLSNkZWZpbmUgUERBVDEgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDI0KSkpDQotI2RlZmluZSBQQ09OMiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwNDApKSkNCi0jZGVmaW5lIFBEQVQyICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDA0NCkpKQ0KLSNkZWZpbmUgUENPTjMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDYwKSkpDQotI2RlZmluZSBQREFUMyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwNjQpKSkNCi0jZGVmaW5lIFBDT040ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDA4MCkpKQ0KLSNkZWZpbmUgUERBVDQgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDg0KSkpDQotI2RlZmluZSBQQ09ONSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwYTApKSkNCi0jZGVmaW5lIFBEQVQ1ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDBhNCkpKQ0KLSNkZWZpbmUgUENPTjYgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMGMwKSkpDQotI2RlZmluZSBQREFUNiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwYzQpKSkNCi0jZGVmaW5lIFBDT043ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDBlMCkpKQ0KLSNkZWZpbmUgUERBVDcgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMGU0KSkpDQotI2RlZmluZSBQQ09OOCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxMDApKSkNCi0jZGVmaW5lIFBEQVQ4ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDEwNCkpKQ0KLSNkZWZpbmUgUENPTjkgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTIwKSkpDQotI2RlZmluZSBQREFUOSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxMjQpKSkNCi0jZGVmaW5lIFBDT05BICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDE0MCkpKQ0KLSNkZWZpbmUgUERBVEEgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTQ0KSkpDQotI2RlZmluZSBQQ09OQiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxNjApKSkNCi0jZGVmaW5lIFBEQVRCICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDE2NCkpKQ0KLSNkZWZpbmUgUENPTkMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTgwKSkpDQotI2RlZmluZSBQREFUQyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxODQpKSkNCi0jZGVmaW5lIFBDT05EICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDFhMCkpKQ0KLSNkZWZpbmUgUERBVEQgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMWE0KSkpDQotI2RlZmluZSBQQ09ORSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxYzApKSkNCi0jZGVmaW5lIFBEQVRFICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDFjNCkpKQ0KLSNkZWZpbmUgUENPTkYgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMWUwKSkpDQotI2RlZmluZSBQREFURiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxZTQpKSkNCi0jZGVmaW5lIEdQSU9DTUQgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDIwMCkpKQ0KLQ0KLQ0KLS8vLy8vU1BJLy8vLy8NCi0jZGVmaW5lIFNQSUJBU0UoaSkgICAgICAoKGkpID09IDIgPyAweDNkMjAwMDAwIDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAoaSkgPT0gMSA/IDB4M2NlMDAwMDAgOiBcDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzYzMwMDAwMCkNCi0jZGVmaW5lIFNQSUNMS0dBVEUoaSkgICAoKGkpID09IDIgPyAweDJmIDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAoaSkgPT0gMSA/IDB4MmIgOiBcDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMikNCi0jZGVmaW5lIFNQSURNQShpKSAgICAgICAoKGkpID09IDIgPyAweGQgOiBcDQotICAgICAgICAgICAgICAgICAgICAgICAgIChpKSA9PSAxID8gMHhmIDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NSkNCi0jZGVmaW5lIFNQSUNUUkwoaSkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSkpKQ0KLSNkZWZpbmUgU1BJU0VUVVAoaSkgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHg0KSkpDQotI2RlZmluZSBTUElTVEFUVVMoaSkgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKFNQSUJBU0UoaSkgKyAweDgpKSkNCi0jZGVmaW5lIFNQSVVOS1JFRzEoaSkgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSArIDB4YykpKQ0KLSNkZWZpbmUgU1BJVFhEQVRBKGkpICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgxMCkpKQ0KLSNkZWZpbmUgU1BJUlhEQVRBKGkpICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgyMCkpKQ0KLSNkZWZpbmUgU1BJQ0xLRElWKGkpICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgzMCkpKQ0KLSNkZWZpbmUgU1BJUlhMSU1JVChpKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgzNCkpKQ0KLSNkZWZpbmUgU1BJVU5LUkVHMyhpKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgzOCkpKQ0KLQ0KLQ0KLS8vLy8vQUVTLy8vLy8NCi0jZGVmaW5lIEFFU0NPTlRST0wgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAwMCkpKQ0KLSNkZWZpbmUgQUVTR08gICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDA0KSkpDQotI2RlZmluZSBBRVNVTktSRUcwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMDgpKSkNCi0jZGVmaW5lIEFFU1NUQVRVUyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAwYykpKQ0KLSNkZWZpbmUgQUVTVU5LUkVHMSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDEwKSkpDQotI2RlZmluZSBBRVNLRVlMRU4gICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMTQpKSkNCi0jZGVmaW5lIEFFU09VVFNJWkUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAxOCkpKQ0KLSNkZWZpbmUgQUVTT1VUQUREUiAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4YzAwMDIwKSkpDQotI2RlZmluZSBBRVNJTlNJWkUgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMjQpKSkNCi0jZGVmaW5lIEFFU0lOQUREUiAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOGMwMDAyOCkpKQ0KLSNkZWZpbmUgQUVTQVVYU0laRSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDJjKSkpDQotI2RlZmluZSBBRVNBVVhBRERSICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzhjMDAwMzApKSkNCi0jZGVmaW5lIEFFU1NJWkUzICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAzNCkpKQ0KLSNkZWZpbmUgQUVTS0VZICAgICAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDRjKSkNCi0jZGVmaW5lIEFFU1RZUEUgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDA2YykpKQ0KLSNkZWZpbmUgQUVTSVYgICAgICAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDc0KSkNCi0jZGVmaW5lIEFFU1RZUEUyICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDA4OCkpKQ0KLSNkZWZpbmUgQUVTVU5LUkVHMiAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDhjKSkpDQotDQotDQotLy8vLy9TSEExLy8vLy8NCi0jZGVmaW5lIFNIQTFDT05GSUcgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODAwMDAwMCkpKQ0KLSNkZWZpbmUgU0hBMVJFU0VUICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MDAwMDA0KSkpDQotI2RlZmluZSBTSEExUkVTVUxUICAgICAgKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgwMDAwMjApKQ0KLSNkZWZpbmUgU0hBMURBVEFJTiAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MDAwMDQwKSkNCi0NCi0NCi0vLy8vL0RNQS8vLy8vDQotI2lmbmRlZiBBU00NCi1zdHJ1Y3QgZG1hX2xsaQ0KLXsNCi0gICAgY29uc3Qgdm9pZCogc3JjYWRkcjsNCi0gICAgdm9pZCogZHN0YWRkcjsNCi0gICAgY29uc3Qgc3RydWN0IGRtYV9sbGkqIG5leHRsbGk7DQotICAgIHVpbnQzMl90IGNvbnRyb2w7DQotfTsNCi0jZW5kaWYNCi0jZGVmaW5lIERNQUNJTlRTVFMoZCkgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAwMCArIDB4MTcwMDAwMCAqIChkKSkpKQ0KLSNkZWZpbmUgRE1BQ0lOVFRDU1RTKGQpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDA0ICsgMHgxNzAwMDAwICogKGQpKSkpDQotI2RlZmluZSBETUFDSU5UVENDTFIoZCkgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMDggKyAweDE3MDAwMDAgKiAoZCkpKSkNCi0jZGVmaW5lIERNQUNJTlRFUlJTVFMoZCkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAwYyArIDB4MTcwMDAwMCAqIChkKSkpKQ0KLSNkZWZpbmUgRE1BQ0lOVEVSUkNMUihkKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDEwICsgMHgxNzAwMDAwICogKGQpKSkpDQotI2RlZmluZSBETUFDUkFXSU5UVENTVFMoZCkgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMTQgKyAweDE3MDAwMDAgKiAoZCkpKSkNCi0jZGVmaW5lIERNQUNSQVdJTlRFUlJTVFMoZCkgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxOCArIDB4MTcwMDAwMCAqIChkKSkpKQ0KLSNkZWZpbmUgRE1BQ0VOQUJMRURDSEFOUyhkKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDFjICsgMHgxNzAwMDAwICogKGQpKSkpDQotI2RlZmluZSBETUFDU09GVEJSRVEoZCkgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMjAgKyAweDE3MDAwMDAgKiAoZCkpKSkNCi0jZGVmaW5lIERNQUNTT0ZUU1JFUShkKSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAyNCArIDB4MTcwMDAwMCAqIChkKSkpKQ0KLSNkZWZpbmUgRE1BQ1NPRlRMQlJFUShkKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDI4ICsgMHgxNzAwMDAwICogKGQpKSkpDQotI2RlZmluZSBETUFDU09GVExTUkVRKGQpICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMmMgKyAweDE3MDAwMDAgKiAoZCkpKSkNCi0jZGVmaW5lIERNQUNDT05GSUcoZCkgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAzMCArIDB4MTcwMDAwMCAqIChkKSkpKQ0KLSNkZWZpbmUgRE1BQ1NZTkMoZCkgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDM0ICsgMHgxNzAwMDAwICogKGQpKSkpDQotI2RlZmluZSBETUFDQ0xMSShkLCBjKSAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxMDAgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDQ1NSQ0FERFIoZCwgYykgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDAgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDQ0RFU1RBRERSKGQsIGMpICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDQgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDQ05FWFRMTEkoZCwgYykgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDggKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDQ0NPTlRST0woZCwgYykgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxMGMgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDQ0NPTkZJRyhkLCBjKSAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxMTAgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpDQotI2RlZmluZSBETUFDMElOVFNUUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMDApKSkNCi0jZGVmaW5lIERNQUMwSU5UVENTVFMgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAwNCkpKQ0KLSNkZWZpbmUgRE1BQzBJTlRUQ0NMUiAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDA4KSkpDQotI2RlZmluZSBETUFDMElOVEVSUlNUUyAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMGMpKSkNCi0jZGVmaW5lIERNQUMwSU5URVJSQ0xSICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxMCkpKQ0KLSNkZWZpbmUgRE1BQzBSQVdJTlRUQ1NUUyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDE0KSkpDQotI2RlZmluZSBETUFDMFJBV0lOVEVSUlNUUyAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMTgpKSkNCi0jZGVmaW5lIERNQUMwRU5BQkxFRENIQU5TICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxYykpKQ0KLSNkZWZpbmUgRE1BQzBTT0ZUQlJFUSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDIwKSkpDQotI2RlZmluZSBETUFDMFNPRlRTUkVRICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMjQpKSkNCi0jZGVmaW5lIERNQUMwU09GVExCUkVRICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAyOCkpKQ0KLSNkZWZpbmUgRE1BQzBTT0ZUTFNSRVEgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDJjKSkpDQotI2RlZmluZSBETUFDMENPTkZJRyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMzApKSkNCi0jZGVmaW5lIERNQUMwU1lOQyAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAzNCkpKQ0KLSNkZWZpbmUgRE1BQzBDTExJKGMpICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMTAwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDU1JDQUREUihjKSAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTAwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDREVTVEFERFIoYykgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTA0ICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDTkVYVExMSShjKSAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTA4ICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDQ09OVFJPTChjKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTBjICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDQ09ORklHKGMpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTEwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzBDMExMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMTAwKSkpDQotI2RlZmluZSBETUFDMEMwU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDApKSkNCi0jZGVmaW5lIERNQUMwQzBERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDEwNCkpKQ0KLSNkZWZpbmUgRE1BQzBDME5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzODIwMDEwOCkpKQ0KLSNkZWZpbmUgRE1BQzBDMENPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTBjKSkpDQotI2RlZmluZSBETUFDMEMwQ09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxMTApKSkNCi0jZGVmaW5lIERNQUMwQzFMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDEyMCkpKQ0KLSNkZWZpbmUgRE1BQzBDMVNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTIwKSkpDQotI2RlZmluZSBETUFDMEMxREVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMjQpKSkNCi0jZGVmaW5lIERNQUMwQzFORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxMjgpKSkNCi0jZGVmaW5lIERNQUMwQzFDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDEyYykpKQ0KLSNkZWZpbmUgRE1BQzBDMUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTMwKSkpDQotI2RlZmluZSBETUFDMEMyTExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxNDApKSkNCi0jZGVmaW5lIERNQUMwQzJTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDE0MCkpKQ0KLSNkZWZpbmUgRE1BQzBDMkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTQ0KSkpDQotI2RlZmluZSBETUFDMEMyTkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM4MjAwMTQ4KSkpDQotI2RlZmluZSBETUFDMEMyQ09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxNGMpKSkNCi0jZGVmaW5lIERNQUMwQzJDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDE1MCkpKQ0KLSNkZWZpbmUgRE1BQzBDM0xMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMTYwKSkpDQotI2RlZmluZSBETUFDMEMzU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxNjApKSkNCi0jZGVmaW5lIERNQUMwQzNERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDE2NCkpKQ0KLSNkZWZpbmUgRE1BQzBDM05FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzODIwMDE2OCkpKQ0KLSNkZWZpbmUgRE1BQzBDM0NPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTZjKSkpDQotI2RlZmluZSBETUFDMEMzQ09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxNzApKSkNCi0jZGVmaW5lIERNQUMwQzRMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDE4MCkpKQ0KLSNkZWZpbmUgRE1BQzBDNFNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTgwKSkpDQotI2RlZmluZSBETUFDMEM0REVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxODQpKSkNCi0jZGVmaW5lIERNQUMwQzRORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxODgpKSkNCi0jZGVmaW5lIERNQUMwQzRDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDE4YykpKQ0KLSNkZWZpbmUgRE1BQzBDNENPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTkwKSkpDQotI2RlZmluZSBETUFDMEM1TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxYTApKSkNCi0jZGVmaW5lIERNQUMwQzVTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDFhMCkpKQ0KLSNkZWZpbmUgRE1BQzBDNURFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMWE0KSkpDQotI2RlZmluZSBETUFDMEM1TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM4MjAwMWE4KSkpDQotI2RlZmluZSBETUFDMEM1Q09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxYWMpKSkNCi0jZGVmaW5lIERNQUMwQzVDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDFiMCkpKQ0KLSNkZWZpbmUgRE1BQzBDNkxMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMWMwKSkpDQotI2RlZmluZSBETUFDMEM2U1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxYzApKSkNCi0jZGVmaW5lIERNQUMwQzZERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDFjNCkpKQ0KLSNkZWZpbmUgRE1BQzBDNk5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzODIwMDFjOCkpKQ0KLSNkZWZpbmUgRE1BQzBDNkNPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMWNjKSkpDQotI2RlZmluZSBETUFDMEM2Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxZDApKSkNCi0jZGVmaW5lIERNQUMwQzdMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDFlMCkpKQ0KLSNkZWZpbmUgRE1BQzBDN1NSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMWUwKSkpDQotI2RlZmluZSBETUFDMEM3REVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxZTQpKSkNCi0jZGVmaW5lIERNQUMwQzdORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxZTgpKSkNCi0jZGVmaW5lIERNQUMwQzdDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDFlYykpKQ0KLSNkZWZpbmUgRE1BQzBDN0NPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMWYwKSkpDQotI2RlZmluZSBETUFDMUlOVFNUUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMDApKSkNCi0jZGVmaW5lIERNQUMxSU5UVENTVFMgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAwNCkpKQ0KLSNkZWZpbmUgRE1BQzFJTlRUQ0NMUiAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDA4KSkpDQotI2RlZmluZSBETUFDMUlOVEVSUlNUUyAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMGMpKSkNCi0jZGVmaW5lIERNQUMxSU5URVJSQ0xSICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAxMCkpKQ0KLSNkZWZpbmUgRE1BQzFSQVdJTlRUQ1NUUyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDE0KSkpDQotI2RlZmluZSBETUFDMVJBV0lOVEVSUlNUUyAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMTgpKSkNCi0jZGVmaW5lIERNQUMxRU5BQkxFRENIQU5TICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAxYykpKQ0KLSNkZWZpbmUgRE1BQzFTT0ZUQlJFUSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDIwKSkpDQotI2RlZmluZSBETUFDMVNPRlRTUkVRICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMjQpKSkNCi0jZGVmaW5lIERNQUMxU09GVExCUkVRICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAyOCkpKQ0KLSNkZWZpbmUgRE1BQzFTT0ZUTFNSRVEgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDJjKSkpDQotI2RlZmluZSBETUFDMUNPTkZJRyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMzApKSkNCi0jZGVmaW5lIERNQUMxU1lOQyAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAzNCkpKQ0KLSNkZWZpbmUgRE1BQzFDTExJKGMpICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMTAwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDU1JDQUREUihjKSAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTAwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDREVTVEFERFIoYykgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTA0ICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDTkVYVExMSShjKSAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTA4ICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDQ09OVFJPTChjKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTBjICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDQ09ORklHKGMpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTEwICsgMHgyMCAqIChjKSkpKQ0KLSNkZWZpbmUgRE1BQzFDMExMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMTAwKSkpDQotI2RlZmluZSBETUFDMUMwU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxMDApKSkNCi0jZGVmaW5lIERNQUMxQzBERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDEwNCkpKQ0KLSNkZWZpbmUgRE1BQzFDME5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzOTkwMDEwOCkpKQ0KLSNkZWZpbmUgRE1BQzFDMENPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTBjKSkpDQotI2RlZmluZSBETUFDMUMwQ09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxMTApKSkNCi0jZGVmaW5lIERNQUMxQzFMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzOTkwMDEyMCkpKQ0KLSNkZWZpbmUgRE1BQzFDMVNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTIwKSkpDQotI2RlZmluZSBETUFDMUMxREVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxMjQpKSkNCi0jZGVmaW5lIERNQUMxQzFORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4Mzk5MDAxMjgpKSkNCi0jZGVmaW5lIERNQUMxQzFDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDEyYykpKQ0KLSNkZWZpbmUgRE1BQzFDMUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTMwKSkpDQotI2RlZmluZSBETUFDMUMyTExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxNDApKSkNCi0jZGVmaW5lIERNQUMxQzJTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDE0MCkpKQ0KLSNkZWZpbmUgRE1BQzFDMkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTQ0KSkpDQotI2RlZmluZSBETUFDMUMyTkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM5OTAwMTQ4KSkpDQotI2RlZmluZSBETUFDMUMyQ09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxNGMpKSkNCi0jZGVmaW5lIERNQUMxQzJDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDE1MCkpKQ0KLSNkZWZpbmUgRE1BQzFDM0xMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMTYwKSkpDQotI2RlZmluZSBETUFDMUMzU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxNjApKSkNCi0jZGVmaW5lIERNQUMxQzNERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDE2NCkpKQ0KLSNkZWZpbmUgRE1BQzFDM05FWFRMTEkgICAgICAoKigodm9sYXRpbGUgdm9pZCoqKSgweDM5OTAwMTY4KSkpDQotI2RlZmluZSBETUFDMUMzQ09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxNmMpKSkNCi0jZGVmaW5lIERNQUMxQzNDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDE3MCkpKQ0KLSNkZWZpbmUgRE1BQzFDNExMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMTgwKSkpDQotI2RlZmluZSBETUFDMUM0U1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxODApKSkNCi0jZGVmaW5lIERNQUMxQzRERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDE4NCkpKQ0KLSNkZWZpbmUgRE1BQzFDNE5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzOTkwMDE4OCkpKQ0KLSNkZWZpbmUgRE1BQzFDNENPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMThjKSkpDQotI2RlZmluZSBETUFDMUM0Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxOTApKSkNCi0jZGVmaW5lIERNQUMxQzVMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzOTkwMDFhMCkpKQ0KLSNkZWZpbmUgRE1BQzFDNVNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMWEwKSkpDQotI2RlZmluZSBETUFDMUM1REVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxYTQpKSkNCi0jZGVmaW5lIERNQUMxQzVORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4Mzk5MDAxYTgpKSkNCi0jZGVmaW5lIERNQUMxQzVDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDFhYykpKQ0KLSNkZWZpbmUgRE1BQzFDNUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMWIwKSkpDQotI2RlZmluZSBETUFDMUM2TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxYzApKSkNCi0jZGVmaW5lIERNQUMxQzZTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDFjMCkpKQ0KLSNkZWZpbmUgRE1BQzFDNkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMWM0KSkpDQotI2RlZmluZSBETUFDMUM2TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM5OTAwMWM4KSkpDQotI2RlZmluZSBETUFDMUM2Q09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxY2MpKSkNCi0jZGVmaW5lIERNQUMxQzZDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDFkMCkpKQ0KLSNkZWZpbmUgRE1BQzFDN0xMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMWUwKSkpDQotI2RlZmluZSBETUFDMUM3U1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxZTApKSkNCi0jZGVmaW5lIERNQUMxQzdERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDFlNCkpKQ0KLSNkZWZpbmUgRE1BQzFDN05FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzOTkwMDFlOCkpKQ0KLSNkZWZpbmUgRE1BQzFDN0NPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMWVjKSkpDQotI2RlZmluZSBETUFDMUM3Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxZjApKSkNCi0NCi0NCi0vLy8vL0xDRC8vLy8vDQotI2RlZmluZSBMQ0RfQkFTRSAgICgweDM4MzAwMDAwKQ0KLSNkZWZpbmUgTENEX0NPTkZJRyAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MzAwMDAwKSkpDQotI2RlZmluZSBMQ0RfV0NNRCAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgzMDAwMDQpKSkNCi0jZGVmaW5lIExDRF9TVEFUVVMgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODMwMDAxYykpKQ0KLSNkZWZpbmUgTENEX1dEQVRBICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MzAwMDQwKSkpDQotDQotDQotLy8vLy9BVEEvLy8vLw0KLSNkZWZpbmUgQVRBX0NPTlRST0wgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDAwKSkpDQotI2RlZmluZSBBVEFfU1RBVFVTICAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMDQpKSkNCi0jZGVmaW5lIEFUQV9DT01NQU5EICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAwOCkpKQ0KLSNkZWZpbmUgQVRBX1NXUlNUICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDBjKSkpDQotI2RlZmluZSBBVEFfSVJRICAgICAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMTApKSkNCi0jZGVmaW5lIEFUQV9JUlFfTUFTSyAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAxNCkpKQ0KLSNkZWZpbmUgQVRBX0NGRyAgICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDE4KSkpDQotI2RlZmluZSBBVEFfTURNQV9USU1FICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMjgpKSkNCi0jZGVmaW5lIEFUQV9QSU9fVElNRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAyYykpKQ0KLSNkZWZpbmUgQVRBX1VETUFfVElNRSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDMwKSkpDQotI2RlZmluZSBBVEFfWEZSX05VTSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMzQpKSkNCi0jZGVmaW5lIEFUQV9YRlJfQ05UICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAzOCkpKQ0KLSNkZWZpbmUgQVRBX1RCVUZfU1RBUlQgICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4NzAwMDNjKSkpDQotI2RlZmluZSBBVEFfVEJVRl9TSVpFICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNDApKSkNCi0jZGVmaW5lIEFUQV9TQlVGX1NUQVJUICAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODcwMDA0NCkpKQ0KLSNkZWZpbmUgQVRBX1NCVUZfU0laRSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDQ4KSkpDQotI2RlZmluZSBBVEFfQ0FEUl9UQlVGICAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzg3MDAwNGMpKSkNCi0jZGVmaW5lIEFUQV9DQURSX1NCVUYgICAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODcwMDA1MCkpKQ0KLSNkZWZpbmUgQVRBX1BJT19EVFIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDU0KSkpDQotI2RlZmluZSBBVEFfUElPX0ZFRCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNTgpKSkNCi0jZGVmaW5lIEFUQV9QSU9fU0NSICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA1YykpKQ0KLSNkZWZpbmUgQVRBX1BJT19MTFIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDYwKSkpDQotI2RlZmluZSBBVEFfUElPX0xNUiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNjQpKSkNCi0jZGVmaW5lIEFUQV9QSU9fTEhSICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA2OCkpKQ0KLSNkZWZpbmUgQVRBX1BJT19EVlIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDZjKSkpDQotI2RlZmluZSBBVEFfUElPX0NTRCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNzApKSkNCi0jZGVmaW5lIEFUQV9QSU9fREFEICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA3NCkpKQ0KLSNkZWZpbmUgQVRBX1BJT19SRUFEWSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDc4KSkpDQotI2RlZmluZSBBVEFfUElPX1JEQVRBICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwN2MpKSkNCi0jZGVmaW5lIEFUQV9CVVNfRklGT19TVEFUVVMgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA4MCkpKQ0KLSNkZWZpbmUgQVRBX0ZJRk9fU1RBVFVTICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDg0KSkpDQotI2RlZmluZSBBVEFfRE1BX0FERFIgICAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzg3MDAwODgpKSkNCi0NCi0NCi0vLy8vL1NEQ0kvLy8vLw0KLSNkZWZpbmUgU0RDSV9DVFJMICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDAwKSkpDQotI2RlZmluZSBTRENJX0RDVFJMICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMDQpKSkNCi0jZGVmaW5lIFNEQ0lfQ01EICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAwOCkpKQ0KLSNkZWZpbmUgU0RDSV9BUkdVICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDBjKSkpDQotI2RlZmluZSBTRENJX1NUQVRFICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMTApKSkNCi0jZGVmaW5lIFNEQ0lfU1RBQyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAxNCkpKQ0KLSNkZWZpbmUgU0RDSV9EU1RBICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDE4KSkpDQotI2RlZmluZSBTRENJX0ZTVEEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMWMpKSkNCi0jZGVmaW5lIFNEQ0lfUkVTUDAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAyMCkpKQ0KLSNkZWZpbmUgU0RDSV9SRVNQMSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDI0KSkpDQotI2RlZmluZSBTRENJX1JFU1AyICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMjgpKSkNCi0jZGVmaW5lIFNEQ0lfUkVTUDMgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAyYykpKQ0KLSNkZWZpbmUgU0RDSV9DRElWICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDMwKSkpDQotI2RlZmluZSBTRENJX1NESU9fQ1NSICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMzQpKSkNCi0jZGVmaW5lIFNEQ0lfSVJRICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAzOCkpKQ0KLSNkZWZpbmUgU0RDSV9JUlFfTUFTSyAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDNjKSkpDQotI2RlZmluZSBTRENJX0RBVEEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwNDApKSkNCi0jZGVmaW5lIFNEQ0lfRE1BQUREUiAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOGIwMDA0NCkpKQ0KLSNkZWZpbmUgU0RDSV9ETUFTSVpFICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDQ4KSkpDQotI2RlZmluZSBTRENJX0RNQUNPVU5UICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwNGMpKSkNCi0jZGVmaW5lIFNEQ0lfUkVTRVQgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDA2YykpKQ0KLQ0KLSNkZWZpbmUgU0RDSV9DVFJMX1NEQ0lFTiBCSVQoMCkNCi0jZGVmaW5lIFNEQ0lfQ1RSTF9DQVJEX1RZUEVfTUFTSyBCSVQoMSkNCi0jZGVmaW5lIFNEQ0lfQ1RSTF9DQVJEX1RZUEVfU0QgMA0KLSNkZWZpbmUgU0RDSV9DVFJMX0NBUkRfVFlQRV9NTUMgQklUKDEpDQotI2RlZmluZSBTRENJX0NUUkxfQlVTX1dJRFRIX01BU0sgQklUUkFOR0UoMiwgMykNCi0jZGVmaW5lIFNEQ0lfQ1RSTF9CVVNfV0lEVEhfMUJJVCAwDQotI2RlZmluZSBTRENJX0NUUkxfQlVTX1dJRFRIXzRCSVQgQklUKDIpDQotI2RlZmluZSBTRENJX0NUUkxfQlVTX1dJRFRIXzhCSVQgQklUKDMpDQotI2RlZmluZSBTRENJX0NUUkxfRE1BX0VOIEJJVCg0KQ0KLSNkZWZpbmUgU0RDSV9DVFJMX0xfRU5ESUFOIEJJVCg1KQ0KLSNkZWZpbmUgU0RDSV9DVFJMX0RNQV9SRVFfQ09OX01BU0sgQklUKDYpDQotI2RlZmluZSBTRENJX0NUUkxfRE1BX1JFUV9DT05fTkVNUFRZIDANCi0jZGVmaW5lIFNEQ0lfQ1RSTF9ETUFfUkVRX0NPTl9GVUxMIEJJVCg2KQ0KLSNkZWZpbmUgU0RDSV9DVFJMX0NMS19TRUxfTUFTSyBCSVQoNykNCi0jZGVmaW5lIFNEQ0lfQ1RSTF9DTEtfU0VMX1BDTEsgMA0KLSNkZWZpbmUgU0RDSV9DVFJMX0NMS19TRUxfU0RDTEsgQklUKDcpDQotI2RlZmluZSBTRENJX0NUUkxfQklUXzggQklUKDgpDQotI2RlZmluZSBTRENJX0NUUkxfQklUXzE0IEJJVCgxNCkNCi0NCi0jZGVmaW5lIFNEQ0lfRENUUkxfVFhGSUZPUlNUIEJJVCgwKQ0KLSNkZWZpbmUgU0RDSV9EQ1RSTF9SWEZJRk9SU1QgQklUKDEpDQotI2RlZmluZSBTRENJX0RDVFJMX1RSQ09OVF9NQVNLIEJJVFJBTkdFKDQsIDUpDQotI2RlZmluZSBTRENJX0RDVFJMX1RSQ09OVF9UWCBCSVQoNCkNCi0jZGVmaW5lIFNEQ0lfRENUUkxfQlVTX1RFU1RfTUFTSyBCSVRSQU5HRSg2LCA3KQ0KLSNkZWZpbmUgU0RDSV9EQ1RSTF9CVVNfVEVTVF9UWCBCSVQoNikNCi0jZGVmaW5lIFNEQ0lfRENUUkxfQlVTX1RFU1RfUlggQklUKDcpDQotDQotI2RlZmluZSBTRENJX0NESVZfQ0xLRElWX01BU0sgQklUUkFOR0UoMCwgNykNCi0jZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVYoeCkgKCh4KSA+PiAxKQ0KLSNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl8yIEJJVCgwKQ0KLSNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl80IEJJVCgxKQ0KLSNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl84IEJJVCgyKQ0KLSNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl8xNiBCSVQoMykNCi0jZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfMzIgQklUKDQpDQotI2RlZmluZSBTRENJX0NESVZfQ0xLRElWXzY0IEJJVCg1KQ0KLSNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl8xMjggQklUKDYpDQotI2RlZmluZSBTRENJX0NESVZfQ0xLRElWXzI1NiBCSVQoNykNCi0NCi0jZGVmaW5lIFNEQ0lfQ01EX0NNRF9OVU1fTUFTSyBCSVRSQU5HRSgwLCA1KQ0KLSNkZWZpbmUgU0RDSV9DTURfQ01EX05VTV9TSElGVCAwDQotI2RlZmluZSBTRENJX0NNRF9DTURfTlVNKHgpICh4KQ0KLSNkZWZpbmUgU0RDSV9DTURfQ01EX1RZUEVfTUFTSyBCSVRSQU5HRSg2LCA3KQ0KLSNkZWZpbmUgU0RDSV9DTURfQ01EX1RZUEVfQkMgMA0KLSNkZWZpbmUgU0RDSV9DTURfQ01EX1RZUEVfQkNSIEJJVCg2KQ0KLSNkZWZpbmUgU0RDSV9DTURfQ01EX1RZUEVfQUMgQklUKDcpDQotI2RlZmluZSBTRENJX0NNRF9DTURfVFlQRV9BRFRDIChCSVQoNikgfCBCSVQoNykpDQotI2RlZmluZSBTRENJX0NNRF9DTURfUkRfV1IgQklUKDgpDQotI2RlZmluZSBTRENJX0NNRF9SRVNfVFlQRV9NQVNLIEJJVFJBTkdFKDE2LCAxOCkNCi0jZGVmaW5lIFNEQ0lfQ01EX1JFU19UWVBFX05PTkUgMA0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjEgQklUKDE2KQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjIgQklUKDE3KQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjMgKEJJVCgxNikgfCBCSVQoMTcpKQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjQgQklUKDE4KQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjUgKEJJVCgxNikgfCBCSVQoMTgpKQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjYgKEJJVCgxNykgfCBCSVQoMTgpKQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX0JVU1kgQklUKDE5KQ0KLSNkZWZpbmUgU0RDSV9DTURfUkVTX1NJWkVfTUFTSyBCSVQoMjApDQotI2RlZmluZSBTRENJX0NNRF9SRVNfU0laRV80OCAwDQotI2RlZmluZSBTRENJX0NNRF9SRVNfU0laRV8xMzYgQklUKDIwKQ0KLSNkZWZpbmUgU0RDSV9DTURfTkNSX05JRF9NQVNLIEJJVCgyMSkNCi0jZGVmaW5lIFNEQ0lfQ01EX05DUl9OSURfTkNSIDANCi0jZGVmaW5lIFNEQ0lfQ01EX05DUl9OSURfTklEIEJJVCgyMSkNCi0jZGVmaW5lIFNEQ0lfQ01EX0NNRFNUUiBCSVQoMzEpDQotDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9NQVNLIEJJVFJBTkdFKDAsIDMpDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9JRExFIDANCi0jZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0RBVF9SQ1YgQklUKDApDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9DUkNfUkNWIEJJVCgxKQ0KLSNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX0VORCAoQklUKDApIHwgQklUKDEpKQ0KLSNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX1NFVCBCSVQoMikNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0RBVF9PVVQgKEJJVCgwKSB8IEJJVCgyKSkNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0NSQ19USU1FIChCSVQoMSkgfCBCSVQoMikpDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9DUkNfT1VUIChCSVQoMCkgfCBCSVQoMSkgfCBCSVQoMikpDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9FTkRCX09VVCBCSVQoMykNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0VOREJfU1RPRCAoQklUKDApIHwgQklUKDMpKQ0KLSNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX0NSQ1IgKEJJVCgxKSB8IEJJVCgzKSkNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0NBUkRfUFJHIChCSVQoMCkgfCBCSVQoMSkgfCBCSVQoMykpDQotI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9EQVRfQlVTWSAoQklUKDIpIHwgQklUKDMpKQ0KLSNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfTUFTSyAoQklUKDQpIHwgQklUKDUpIHwgQklUKDYpKQ0KLSNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfQ01EX0lETEUgMA0KLSNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfQ01EX0NNRE8gQklUKDQpDQotI2RlZmluZSBTRENJX1NUQVRFX0NNRF9TVEFURV9DTURfQ1JDTyBCSVQoNSkNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfQ01EX1NUQVRFX0NNRF9UT1VUIChCSVQoNCkgfCBCSVQoNSkpDQotI2RlZmluZSBTRENJX1NUQVRFX0NNRF9TVEFURV9DTURfUkVTUiBCSVQoNikNCi0jZGVmaW5lIFNEQ0lfU1RBVEVfQ01EX1NUQVRFX0NNRF9JTlRWIChCSVQoNCkgfCBCSVQoNikpDQotDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX0NNREVORCBCSVQoMikNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfQklUXzMgQklUKDMpDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JFU0VORCBCSVQoNCkNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfREFURU5EIEJJVCg2KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9EQVRfQ1JDRU5EIEJJVCg3KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9DUkNfU1RBRU5EIEJJVCg4KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRVNUT1VURSBCSVQoMTUpDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JFU0VOREUgQklUKDE2KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRVNJTkRFIEJJVCgxNykNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkVTQ1JDRSBCSVQoMTgpDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX1dSX0RBVENSQ0UgQklUKDIyKQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRDUkNFIEJJVCgyMykNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkRfREFURU5ERTAgQklUKDI0KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFMSBCSVQoMjUpDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVEVOREUyIEJJVCgyNikNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkRfREFURU5ERTMgQklUKDI3KQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFNCBCSVQoMjgpDQotI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVEVOREU1IEJJVCgyOSkNCi0jZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkRfREFURU5ERTYgQklUKDMwKQ0KLSNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFNyBCSVQoMzEpDQotDQotI2RlZmluZSBTRENJX0RTVEFfQ01EUkRZIEJJVCgwKQ0KLSNkZWZpbmUgU0RDSV9EU1RBX0NNRFBSTyBCSVQoMSkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9DTURFTkQgQklUKDIpDQotI2RlZmluZSBTRENJX0RTVEFfUkVTUFJPIEJJVCgzKQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JFU0VORCBCSVQoNCkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9EQVRQUk8gQklUKDUpDQotI2RlZmluZSBTRENJX0RTVEFfREFURU5EIEJJVCg2KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX0RBVF9DUkNFTkQgQklUKDcpDQotI2RlZmluZSBTRENJX0RTVEFfQ1JDX1NUQUVORCBCSVQoOCkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9EQVRfQlVTWSBCSVQoOSkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9TRENMS19IT0xEIEJJVCgxMikNCi0jZGVmaW5lIFNEQ0lfRFNUQV9EQVQwX1NUQVRVUyBCSVQoMTMpDQotI2RlZmluZSBTRENJX0RTVEFfV1BfREVDVF9JTlBVVCBCSVQoMTQpDQotI2RlZmluZSBTRENJX0RTVEFfUkVTVE9VVEUgQklUKDE1KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JFU0VOREUgQklUKDE2KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JFU0lOREUgQklUKDE3KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JFU0NSQ0UgQklUKDE4KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1dSX0NSQ19TVEFUVVNfTUFTSyBCSVRSQU5HRSgxOSwgMjEpDQotI2RlZmluZSBTRENJX0RTVEFfV1JfQ1JDX1NUQVRVU19PSyBCSVQoMjApDQotI2RlZmluZSBTRENJX0RTVEFfV1JfQ1JDX1NUQVRVU19UWEVSUiAoQklUKDE5KSB8IEJJVCgyMSkpDQotI2RlZmluZSBTRENJX0RTVEFfV1JfQ1JDX1NUQVRVU19DQVJERVJSIChCSVQoMTkpIHwgQklUKDIwKSB8IEJJVCgyMSkpDQotI2RlZmluZSBTRENJX0RTVEFfV1JfREFUQ1JDRSBCSVQoMjIpDQotI2RlZmluZSBTRENJX0RTVEFfUkRfREFUQ1JDRSBCSVQoMjMpDQotI2RlZmluZSBTRENJX0RTVEFfUkRfREFURU5ERTAgQklUKDI0KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JEX0RBVEVOREUxIEJJVCgyNSkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFMiBCSVQoMjYpDQotI2RlZmluZSBTRENJX0RTVEFfUkRfREFURU5ERTMgQklUKDI3KQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JEX0RBVEVOREU0IEJJVCgyOCkNCi0jZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFNSBCSVQoMjkpDQotI2RlZmluZSBTRENJX0RTVEFfUkRfREFURU5ERTYgQklUKDMwKQ0KLSNkZWZpbmUgU0RDSV9EU1RBX1JEX0RBVEVOREU3IEJJVCgzMSkNCi0NCi0jZGVmaW5lIFNEQ0lfRlNUQV9SWF9GSUZPX0VNUFRZIEJJVCgwKQ0KLSNkZWZpbmUgU0RDSV9GU1RBX1JYX0ZJRk9fRlVMTCBCSVQoMSkNCi0jZGVmaW5lIFNEQ0lfRlNUQV9UWF9GSUZPX0VNUFRZIEJJVCgyKQ0KLSNkZWZpbmUgU0RDSV9GU1RBX1RYX0ZJRk9fRlVMTCBCSVQoMykNCi0NCi0jZGVmaW5lIFNEQ0lfU0RJT19DU1JfU0RJT19SV19FTiBCSVQoMCkNCi0jZGVmaW5lIFNEQ0lfU0RJT19DU1JfU0RJT19JTlRfRU4gQklUKDEpDQotI2RlZmluZSBTRENJX1NESU9fQ1NSX1NESU9fUldfUkVRIEJJVCgyKQ0KLSNkZWZpbmUgU0RDSV9TRElPX0NTUl9TRElPX1JXX1NUT1AgQklUKDMpDQotI2RlZmluZSBTRENJX1NESU9fQ1NSX1NESU9fSU5UX1BFUklPRF9NQVNLIEJJVCg0KQ0KLSNkZWZpbmUgU0RDSV9TRElPX0NTUl9TRElPX0lOVF9QRVJJT0RfTU9SRSAwDQotI2RlZmluZSBTRENJX1NESU9fQ1NSX1NESU9fSU5UX1BFUklPRF9YQUNUIEJJVCg0KQ0KLQ0KLSNkZWZpbmUgU0RDSV9JUlFfREFUX0RPTkVfSU5UIEJJVCgwKQ0KLSNkZWZpbmUgU0RDSV9JUlFfSU9DQVJEX0lSUV9JTlQgQklUKDEpDQotI2RlZmluZSBTRENJX0lSUV9SRUFEX1dBSVRfSU5UIEJJVCgyKQ0KLQ0KLSNkZWZpbmUgU0RDSV9JUlFfTUFTS19NQVNLX0RBVF9ET05FX0lOVCBCSVQoMCkNCi0jZGVmaW5lIFNEQ0lfSVJRX01BU0tfTUFTS19JT0NBUkRfSVJRX0lOVCBCSVQoMSkNCi0jZGVmaW5lIFNEQ0lfSVJRX01BU0tfTUFTS19SRUFEX1dBSVRfSU5UIEJJVCgyKQ0KLQ0KLQ0KLS8vLy8vQ0xJQ0tXSEVFTC8vLy8vDQotI2RlZmluZSBXSEVFTDAwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwMCkpKQ0KLSNkZWZpbmUgV0hFRUwwNCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0MyMDAwMDQpKSkNCi0jZGVmaW5lIFdIRUVMMDggICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDMjAwMDA4KSkpDQotI2RlZmluZSBXSEVFTDBDICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwQykpKQ0KLSNkZWZpbmUgV0hFRUwxMCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0MyMDAwMTApKSkNCi0jZGVmaW5lIFdIRUVMSU5UICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDMjAwMDE0KSkpDQotI2RlZmluZSBXSEVFTFJYICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAxOCkpKQ0KLSNkZWZpbmUgV0hFRUxUWCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0MyMDAwMUMpKSkNCi0NCi0NCi0vLy8vL0kyUy8vLy8vDQotI2RlZmluZSBJMlNDTEtDT04gICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwMDApKSkNCi0jZGVmaW5lIEkyU1RYQ09OICAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAwNCkpKQ0KLSNkZWZpbmUgSTJTVFhDT00gICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDA4KSkpDQotI2RlZmluZSBJMlNUWERCMCAgICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwMTApKSkNCi0jZGVmaW5lIEkyU1JYQ09OICAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAzMCkpKQ0KLSNkZWZpbmUgSTJTUlhDT00gICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDM0KSkpDQotI2RlZmluZSBJMlNSWERCICAgICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwMzgpKSkNCi0jZGVmaW5lIEkyU1NUQVRVUyAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAzQykpKQ0KLSNkZWZpbmUgSTJTNDAgICAgICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDQwKSkpDQotDQotDQotLy8vLy9DTE9DSyBHQVRFUy8vLy8vDQotI2RlZmluZSBDTE9DS0dBVEVfVVNCXzEgMg0KLSNkZWZpbmUgQ0xPQ0tHQVRFX1VTQl8yIDM1DQotDQotDQotLy8vLy9JTlRFUlJVUFRTLy8vLy8NCi0jZGVmaW5lIElSUV9USU1FUiA4DQotI2RlZmluZSBJUlFfVVNCX0ZVTkMgMTkNCi0jZGVmaW5lIElSUV9ETUFDKGQpIDE2ICsgZA0KLSNkZWZpbmUgSVJRX0RNQUMwIDE2DQotI2RlZmluZSBJUlFfRE1BQzEgMTcNCi0jZGVmaW5lIElSUV9XSEVFTCAyMw0KLSNkZWZpbmUgSVJRX0FUQSAyOQ0KLSNkZWZpbmUgSVJRX01NQyA0NA0KLQ0KLQ0KLSNlbmRpZg0KLQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4KKyAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXworICogICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvCisgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAorICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCisgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KKyAqICRJZDogczVsODcwMC5oIDI4NzkxIDIwMTAtMTItMTEgMDk6Mzk6MzNaIEJ1c2NoZWwgJAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBNYXJjb2VuIEhpcnNjaGJlcmcsIEJhcnQgdmFuIEFkcmljaGVtCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fUzVMODcwMl9IX18KKyNkZWZpbmUgX19TNUw4NzAyX0hfXworCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2RlZmluZSBSRUc4X1BUUl9UICB2b2xhdGlsZSB1aW50OF90ICoKKyNkZWZpbmUgUkVHMTZfUFRSX1Qgdm9sYXRpbGUgdWludDE2X3QgKgorI2RlZmluZSBSRUczMl9QVFJfVCB2b2xhdGlsZSB1aW50MzJfdCAqCisKKyNkZWZpbmUgVElNRVJfRlJFUSAgNTQwMDAwMDAKKworI2RlZmluZSBDQUNIRUFMSUdOX0JJVFMgKDQpIC8qIDJeNCA9IDE2IGJ5dGVzICovCisKKyNkZWZpbmUgRFJBTV9PUklHIDB4MDgwMDAwMDAKKyNkZWZpbmUgSVJBTV9PUklHIDAKKworI2RlZmluZSBEUkFNX1NJWkUgKE1FTU9SWVNJWkUgKiAweDEwMDAwMCkKKyNkZWZpbmUgSVJBTV9TSVpFIDB4NDAwMDAKKworI2RlZmluZSBUVEJfU0laRSAgICAgICAgICAgICAgICAgIDB4NDAwMAorI2RlZmluZSBUVEJfQkFTRV9BRERSICAgICAgICAgICAgIChEUkFNX09SSUcgKyBEUkFNX1NJWkUgLSBUVEJfU0laRSkKKworLy8vLy9TWVNURU0gQ09OVFJPTExFUi8vLy8vCisjZGVmaW5lIENMS0NPTjAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDAwKSkpCisjZGVmaW5lIENMS0NPTjEgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDA0KSkpCisjZGVmaW5lIENMS0NPTjIgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDA4KSkpCisjZGVmaW5lIENMS0NPTjMgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDBDKSkpCisjZGVmaW5lIENMS0NPTjQgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDEwKSkpCisjZGVmaW5lIENMS0NPTjUgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDE0KSkpCisjZGVmaW5lIFBMTDBQTVMgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDIwKSkpCisjZGVmaW5lIFBMTDFQTVMgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDI0KSkpCisjZGVmaW5lIFBMTDJQTVMgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDI4KSkpCisjZGVmaW5lIFBMTDBMQ05UICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDMwKSkpCisjZGVmaW5lIFBMTDFMQ05UICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDM0KSkpCisjZGVmaW5lIFBMTDJMQ05UICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDM4KSkpCisjZGVmaW5lIFBMTExPQ0sgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDQwKSkpCisjZGVmaW5lIFBMTE1PREUgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDNTAwMDQ0KSkpCisjZGVmaW5lIFBXUkNPTihpKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNTAwMDAwIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgoaSkgPT0gNCA/IDB4NkMgOiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGkpID09IDMgPyAweDY4IDogXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpKSA9PSAyID8gMHg1OCA6IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaSkgPT0gMSA/IDB4NEMgOiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQ4KSkpKSkpKQorCisKKy8vLy8vVElNRVIvLy8vLworI2RlZmluZSBUQUNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwMCkpKQorI2RlZmluZSBUQUNNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwNCkpKQorI2RlZmluZSBUQURBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwOCkpKQorI2RlZmluZSBUQURBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAwQykpKQorI2RlZmluZSBUQVBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAxMCkpKQorI2RlZmluZSBUQUNOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAxNCkpKQorI2RlZmluZSBUQkNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyMCkpKQorI2RlZmluZSBUQkNNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyNCkpKQorI2RlZmluZSBUQkRBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyOCkpKQorI2RlZmluZSBUQkRBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAyQykpKQorI2RlZmluZSBUQlBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAzMCkpKQorI2RlZmluZSBUQkNOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDAzNCkpKQorI2RlZmluZSBUQ0NPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0MCkpKQorI2RlZmluZSBUQ0NNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0NCkpKQorI2RlZmluZSBUQ0RBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0OCkpKQorI2RlZmluZSBUQ0RBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA0QykpKQorI2RlZmluZSBUQ1BSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA1MCkpKQorI2RlZmluZSBUQ0NOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA1NCkpKQorI2RlZmluZSBURENPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2MCkpKQorI2RlZmluZSBURENNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2NCkpKQorI2RlZmluZSBURERBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2OCkpKQorI2RlZmluZSBURERBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA2QykpKQorI2RlZmluZSBURFBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA3MCkpKQorI2RlZmluZSBURENOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDA3NCkpKQorI2RlZmluZSBURUNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBMCkpKQorI2RlZmluZSBURUNNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBNCkpKQorI2RlZmluZSBURURBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBOCkpKQorI2RlZmluZSBURURBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBBQykpKQorI2RlZmluZSBURVBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBCMCkpKQorI2RlZmluZSBURUNOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBCNCkpKQorI2RlZmluZSBURkNPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDMCkpKQorI2RlZmluZSBURkNNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDNCkpKQorI2RlZmluZSBURkRBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDOCkpKQorI2RlZmluZSBURkRBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBDQykpKQorI2RlZmluZSBURlBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBEMCkpKQorI2RlZmluZSBURkNOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBENCkpKQorI2RlZmluZSBUR0NPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFMCkpKQorI2RlZmluZSBUR0NNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFNCkpKQorI2RlZmluZSBUR0RBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFOCkpKQorI2RlZmluZSBUR0RBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBFQykpKQorI2RlZmluZSBUR1BSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBGMCkpKQorI2RlZmluZSBUR0NOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDBGNCkpKQorI2RlZmluZSBUSENPTiAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwMCkpKQorI2RlZmluZSBUSENNRCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwNCkpKQorI2RlZmluZSBUSERBVEEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwOCkpKQorI2RlZmluZSBUSERBVEExICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDEwQykpKQorI2RlZmluZSBUSFBSRSAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDExMCkpKQorI2RlZmluZSBUSENOVCAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzcwMDExNCkpKQorI2RlZmluZSBVU0VDX1RJTUVSICAgVEVDTlQKKworCisvLy8vL1VTQi8vLy8vCisjZGVmaW5lIE9UR0JBU0UgMHgzODQwMDAwMAorI2RlZmluZSBQSFlCQVNFIDB4M0M0MDAwMDAKKyNkZWZpbmUgU1lOT1BTWVNPVEdfQ0xPQ0sgMAorI2RlZmluZSBTWU5PUFNZU09UR19BSEJDRkcgMHgyQgorCisKKy8vLy8vSTJDLy8vLy8KKyNkZWZpbmUgSUlDQ09OKGJ1cykgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M2MDAwMDAgKyAweDMwMDAwMCAqIChidXMpKSkpCisjZGVmaW5lIElJQ1NUQVQoYnVzKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNDNjAwMDA0ICsgMHgzMDAwMDAgKiAoYnVzKSkpKQorI2RlZmluZSBJSUNBREQoYnVzKSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzYwMDAwOCArIDB4MzAwMDAwICogKGJ1cykpKSkKKyNkZWZpbmUgSUlDRFMoYnVzKSAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M0M2MDAwMEMgKyAweDMwMDAwMCAqIChidXMpKSkpCisKKworLy8vLy9JTlRFUlJVUFQgQ09OVFJPTExFUlMvLy8vLworI2RlZmluZSBWSUNJUlFTVEFUVVModikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwMCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNGSVFTVEFUVVModikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwNCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNSQVdJTlRSKHYpICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwOCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNJTlRTRUxFQ1QodikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAwQyArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNJTlRFTkFCTEUodikgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxMCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNJTlRFTkNMRUFSKHYpICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxNCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNTT0ZUSU5UKHYpICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxOCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNTT0ZUSU5UQ0xFQVIodikgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAxQyArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNQUk9URUNUSU9OKHYpICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAyMCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNTV1BSSU9SSVRZTUFTSyh2KSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAyNCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNQUklPUklUWURBSVNZKHYpICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDAyOCArIDB4MTAwMCAqICh2KSkpKQorI2RlZmluZSBWSUNWRUNUQUREUih2LCBpKSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDEwMCArIDB4MTAwMCAqICh2KSArIDQgKiAoaSkpKSkKKyNkZWZpbmUgVklDVkVDVFBSSU9SSVRZKHYsIGkpICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDAgKyAweDEwMDAgKiAodikgKyA0ICogKGkpKSkpCisjZGVmaW5lIFZJQ0FERFJFU1ModikgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwRjAwICsgMHgxMDAwICogKHYpKSkpCisjZGVmaW5lIFZJQzBJUlFTVEFUVVMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDAwKSkpCisjZGVmaW5lIFZJQzBGSVFTVEFUVVMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDA0KSkpCisjZGVmaW5lIFZJQzBSQVdJTlRSICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDA4KSkpCisjZGVmaW5lIFZJQzBJTlRTRUxFQ1QgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDBDKSkpCisjZGVmaW5lIFZJQzBJTlRFTkFCTEUgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDEwKSkpCisjZGVmaW5lIFZJQzBJTlRFTkNMRUFSICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDE0KSkpCisjZGVmaW5lIFZJQzBTT0ZUSU5UICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDE4KSkpCisjZGVmaW5lIFZJQzBTT0ZUSU5UQ0xFQVIgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDFDKSkpCisjZGVmaW5lIFZJQzBQUk9URUNUSU9OICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDIwKSkpCisjZGVmaW5lIFZJQzBTV1BSSU9SSVRZTUFTSyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDI0KSkpCisjZGVmaW5lIFZJQzBQUklPUklUWURBSVNZICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAwMDI4KSkpCisjZGVmaW5lIFZJQzBWRUNUQUREUihpKSAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAwMTAwICsgNCAqIChpKSkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIwICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwMCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwNCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwOCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIzICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEwQykpKQorI2RlZmluZSBWSUMwVkVDVEFERFI0ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExMCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFI1ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExNCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFI2ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExOCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFI3ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDExQykpKQorI2RlZmluZSBWSUMwVkVDVEFERFI4ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEyMCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFI5ICAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEyNCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxMCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEyOCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxMSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEyQykpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxMiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEzMCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxMyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEzNCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxNCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEzOCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxNSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDEzQykpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxNiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0MCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxNyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0NCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxOCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0OCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIxOSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE0QykpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyMCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE1MCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyMSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE1NCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyMiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE1OCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyMyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE1QykpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyNCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE2MCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyNSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE2NCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyNiAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE2OCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyNyAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE2QykpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyOCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3MCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIyOSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3NCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIzMCAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3OCkpKQorI2RlZmluZSBWSUMwVkVDVEFERFIzMSAgICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMDE3QykpKQorI2RlZmluZSBWSUMwVkVDVFBSSU9SSVRZKGkpICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMDIwMCArIDQgKiAoaSkpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMDgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTMgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMEMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTQgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMTApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTUgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMTQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTYgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMTgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTcgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMUMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTggICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMjApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTkgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMjQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMjgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTExICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMkMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEyICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMzApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTEzICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMzQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE0ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyMzgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE1ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyM0MpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE2ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNDApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE3ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNDQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE4ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNDgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTE5ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNEMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNTApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIxICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNTQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIyICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNTgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTIzICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNUMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI0ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNjApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI1ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNjQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI2ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNjgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI3ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNkMpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI4ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNzApKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTI5ICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNzQpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTMwICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyNzgpKSkKKyNkZWZpbmUgVklDMFZFQ1RQUklPUklUWTMxICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDAyN0MpKSkKKyNkZWZpbmUgVklDMEFERFJFU1MgICAgICAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDBGMDApKSkKKyNkZWZpbmUgVklDMUlSUVNUQVRVUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMDApKSkKKyNkZWZpbmUgVklDMUZJUVNUQVRVUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMDQpKSkKKyNkZWZpbmUgVklDMVJBV0lOVFIgICAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMDgpKSkKKyNkZWZpbmUgVklDMUlOVFNFTEVDVCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMEMpKSkKKyNkZWZpbmUgVklDMUlOVEVOQUJMRSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMTApKSkKKyNkZWZpbmUgVklDMUlOVEVOQ0xFQVIgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMTQpKSkKKyNkZWZpbmUgVklDMVNPRlRJTlQgICAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMTgpKSkKKyNkZWZpbmUgVklDMVNPRlRJTlRDTEVBUiAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMUMpKSkKKyNkZWZpbmUgVklDMVBST1RFQ1RJT04gICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMjApKSkKKyNkZWZpbmUgVklDMVNXUFJJT1JJVFlNQVNLICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMjQpKSkKKyNkZWZpbmUgVklDMVBSSU9SSVRZREFJU1kgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhFMDEwMjgpKSkKKyNkZWZpbmUgVklDMVZFQ1RBRERSKGkpICAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzhFMDExMDAgKyA0ICogKGkpKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjAgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTAwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjEgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTA0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjIgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTA4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjMgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTBDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjQgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTEwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjUgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTE0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjYgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTE4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjcgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTFDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjggICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTIwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjkgICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTI0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjEwICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTI4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjExICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTJDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjEyICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTMwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjEzICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTM0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE0ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTM4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE1ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTNDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE2ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTQwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE3ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTQ0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE4ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTQ4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjE5ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTRDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjIwICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTUwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjIxICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTU0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjIyICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTU4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjIzICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTVDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI0ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTYwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI1ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTY0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI2ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTY4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI3ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTZDKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI4ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTcwKSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjI5ICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTc0KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjMwICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTc4KSkpCisjZGVmaW5lIFZJQzFWRUNUQUREUjMxICAgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4RTAxMTdDKSkpCisjZGVmaW5lIFZJQzFWRUNUUFJJT1JJVFkoaSkgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4RTAxMjAwICsgNCAqIChpKSkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwMCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwNCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMiAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwOCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIwQykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxMCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxNCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNiAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxOCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZNyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIxQykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZOCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIyMCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZOSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIyNCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIyOCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIyQykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTIgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIzMCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTMgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIzNCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTQgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIzOCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTIzQykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTYgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0MCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTcgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0NCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTggICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0OCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMTkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI0QykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI1MCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI1NCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjIgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI1OCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjMgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI1QykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjQgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI2MCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI2NCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjYgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI2OCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjcgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI2QykpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjggICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3MCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMjkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3NCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMzAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3OCkpKQorI2RlZmluZSBWSUMxVkVDVFBSSU9SSVRZMzEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOEUwMTI3QykpKQorI2RlZmluZSBWSUMxQUREUkVTUyAgICAgICAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOEUwMUYwMCkpKQorCisKKy8vLy8vR1BJTy8vLy8vCisjZGVmaW5lIFBDT04oaSkgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDAwMCArICgoaSkgPDwgNSkpKSkKKyNkZWZpbmUgUERBVChpKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDA0ICsgKChpKSA8PCA1KSkpKQorI2RlZmluZSBQVU5BKGkpICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwMDggKyAoKGkpIDw8IDUpKSkpCisjZGVmaW5lIFBVTkIoaSkgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDAwYyArICgoaSkgPDwgNSkpKSkKKyNkZWZpbmUgUENPTjAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDAwKSkpCisjZGVmaW5lIFBEQVQwICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDAwNCkpKQorI2RlZmluZSBQQ09OMSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwMjApKSkKKyNkZWZpbmUgUERBVDEgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDI0KSkpCisjZGVmaW5lIFBDT04yICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDA0MCkpKQorI2RlZmluZSBQREFUMiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwNDQpKSkKKyNkZWZpbmUgUENPTjMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDYwKSkpCisjZGVmaW5lIFBEQVQzICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDA2NCkpKQorI2RlZmluZSBQQ09ONCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwODApKSkKKyNkZWZpbmUgUERBVDQgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMDg0KSkpCisjZGVmaW5lIFBDT041ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDBhMCkpKQorI2RlZmluZSBQREFUNSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwYTQpKSkKKyNkZWZpbmUgUENPTjYgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMGMwKSkpCisjZGVmaW5lIFBEQVQ2ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDBjNCkpKQorI2RlZmluZSBQQ09ONyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAwZTApKSkKKyNkZWZpbmUgUERBVDcgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMGU0KSkpCisjZGVmaW5lIFBDT044ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDEwMCkpKQorI2RlZmluZSBQREFUOCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxMDQpKSkKKyNkZWZpbmUgUENPTjkgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTIwKSkpCisjZGVmaW5lIFBEQVQ5ICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDEyNCkpKQorI2RlZmluZSBQQ09OQSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxNDApKSkKKyNkZWZpbmUgUERBVEEgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTQ0KSkpCisjZGVmaW5lIFBDT05CICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDE2MCkpKQorI2RlZmluZSBQREFUQiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxNjQpKSkKKyNkZWZpbmUgUENPTkMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMTgwKSkpCisjZGVmaW5lIFBEQVRDICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDE4NCkpKQorI2RlZmluZSBQQ09ORCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxYTApKSkKKyNkZWZpbmUgUERBVEQgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMWE0KSkpCisjZGVmaW5lIFBDT05FICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDFjMCkpKQorI2RlZmluZSBQREFURSAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAxYzQpKSkKKyNkZWZpbmUgUENPTkYgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDNjZjAwMWUwKSkpCisjZGVmaW5lIFBEQVRGICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzY2YwMDFlNCkpKQorI2RlZmluZSBHUElPQ01EICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4M2NmMDAyMDApKSkKKworCisvLy8vL1NQSS8vLy8vCisjZGVmaW5lIFNQSUJBU0UoaSkgICAgICAoKGkpID09IDIgPyAweDNkMjAwMDAwIDogXAorICAgICAgICAgICAgICAgICAgICAgICAgIChpKSA9PSAxID8gMHgzY2UwMDAwMCA6IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M2MzMDAwMDApCisjZGVmaW5lIFNQSUNMS0dBVEUoaSkgICAoKGkpID09IDIgPyAweDJmIDogXAorICAgICAgICAgICAgICAgICAgICAgICAgIChpKSA9PSAxID8gMHgyYiA6IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIpCisjZGVmaW5lIFNQSURNQShpKSAgICAgICAoKGkpID09IDIgPyAweGQgOiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgKGkpID09IDEgPyAweGYgOiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUpCisjZGVmaW5lIFNQSUNUUkwoaSkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSkpKQorI2RlZmluZSBTUElTRVRVUChpKSAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKFNQSUJBU0UoaSkgKyAweDQpKSkKKyNkZWZpbmUgU1BJU1RBVFVTKGkpICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHg4KSkpCisjZGVmaW5lIFNQSVVOS1JFRzEoaSkgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSArIDB4YykpKQorI2RlZmluZSBTUElUWERBVEEoaSkgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKFNQSUJBU0UoaSkgKyAweDEwKSkpCisjZGVmaW5lIFNQSVJYREFUQShpKSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSArIDB4MjApKSkKKyNkZWZpbmUgU1BJQ0xLRElWKGkpICAoKigodWludDMyX3Qgdm9sYXRpbGUqKShTUElCQVNFKGkpICsgMHgzMCkpKQorI2RlZmluZSBTUElSWExJTUlUKGkpICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKFNQSUJBU0UoaSkgKyAweDM0KSkpCisjZGVmaW5lIFNQSVVOS1JFRzMoaSkgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoU1BJQkFTRShpKSArIDB4MzgpKSkKKworCisvLy8vL0FFUy8vLy8vCisjZGVmaW5lIEFFU0NPTlRST0wgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAwMCkpKQorI2RlZmluZSBBRVNHTyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMDQpKSkKKyNkZWZpbmUgQUVTVU5LUkVHMCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDA4KSkpCisjZGVmaW5lIEFFU1NUQVRVUyAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAwYykpKQorI2RlZmluZSBBRVNVTktSRUcxICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMTApKSkKKyNkZWZpbmUgQUVTS0VZTEVOICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDE0KSkpCisjZGVmaW5lIEFFU09VVFNJWkUgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAxOCkpKQorI2RlZmluZSBBRVNPVVRBRERSICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzhjMDAwMjApKSkKKyNkZWZpbmUgQUVTSU5TSVpFICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDI0KSkpCisjZGVmaW5lIEFFU0lOQUREUiAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOGMwMDAyOCkpKQorI2RlZmluZSBBRVNBVVhTSVpFICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwMmMpKSkKKyNkZWZpbmUgQUVTQVVYQUREUiAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4YzAwMDMwKSkpCisjZGVmaW5lIEFFU1NJWkUzICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDAzNCkpKQorI2RlZmluZSBBRVNLRVkgICAgICAgICAgKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwNGMpKQorI2RlZmluZSBBRVNUWVBFICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhjMDAwNmMpKSkKKyNkZWZpbmUgQUVTSVYgICAgICAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDc0KSkKKyNkZWZpbmUgQUVTVFlQRTIgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YzAwMDg4KSkpCisjZGVmaW5lIEFFU1VOS1JFRzIgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGMwMDA4YykpKQorCisKKy8vLy8vU0hBMS8vLy8vCisjZGVmaW5lIFNIQTFDT05GSUcgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODAwMDAwMCkpKQorI2RlZmluZSBTSEExUkVTRVQgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgwMDAwMDQpKSkKKyNkZWZpbmUgU0hBMVJFU1VMVCAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MDAwMDIwKSkKKyNkZWZpbmUgU0hBMURBVEFJTiAgICAgICgodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MDAwMDQwKSkKKworCisvLy8vL0RNQS8vLy8vCisjaWZuZGVmIEFTTQorc3RydWN0IGRtYV9sbGkKK3sKKyAgICBjb25zdCB2b2lkKiBzcmNhZGRyOworICAgIHZvaWQqIGRzdGFkZHI7CisgICAgY29uc3Qgc3RydWN0IGRtYV9sbGkqIG5leHRsbGk7CisgICAgdWludDMyX3QgY29udHJvbDsKK307CisjZW5kaWYKKyNkZWZpbmUgRE1BQ0lOVFNUUyhkKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDAwICsgMHgxNzAwMDAwICogKGQpKSkpCisjZGVmaW5lIERNQUNJTlRUQ1NUUyhkKSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAwNCArIDB4MTcwMDAwMCAqIChkKSkpKQorI2RlZmluZSBETUFDSU5UVENDTFIoZCkgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMDggKyAweDE3MDAwMDAgKiAoZCkpKSkKKyNkZWZpbmUgRE1BQ0lOVEVSUlNUUyhkKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDBjICsgMHgxNzAwMDAwICogKGQpKSkpCisjZGVmaW5lIERNQUNJTlRFUlJDTFIoZCkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxMCArIDB4MTcwMDAwMCAqIChkKSkpKQorI2RlZmluZSBETUFDUkFXSU5UVENTVFMoZCkgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMTQgKyAweDE3MDAwMDAgKiAoZCkpKSkKKyNkZWZpbmUgRE1BQ1JBV0lOVEVSUlNUUyhkKSAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDE4ICsgMHgxNzAwMDAwICogKGQpKSkpCisjZGVmaW5lIERNQUNFTkFCTEVEQ0hBTlMoZCkgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxYyArIDB4MTcwMDAwMCAqIChkKSkpKQorI2RlZmluZSBETUFDU09GVEJSRVEoZCkgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMjAgKyAweDE3MDAwMDAgKiAoZCkpKSkKKyNkZWZpbmUgRE1BQ1NPRlRTUkVRKGQpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDI0ICsgMHgxNzAwMDAwICogKGQpKSkpCisjZGVmaW5lIERNQUNTT0ZUTEJSRVEoZCkgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAyOCArIDB4MTcwMDAwMCAqIChkKSkpKQorI2RlZmluZSBETUFDU09GVExTUkVRKGQpICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMmMgKyAweDE3MDAwMDAgKiAoZCkpKSkKKyNkZWZpbmUgRE1BQ0NPTkZJRyhkKSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDMwICsgMHgxNzAwMDAwICogKGQpKSkpCisjZGVmaW5lIERNQUNTWU5DKGQpICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAzNCArIDB4MTcwMDAwMCAqIChkKSkpKQorI2RlZmluZSBETUFDQ0xMSShkLCBjKSAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxMDAgKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUNDU1JDQUREUihkLCBjKSAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDEwMCArIDB4MTcwMDAwMCAqIChkKSArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQ0NERVNUQUREUihkLCBjKSAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTA0ICsgMHgxNzAwMDAwICogKGQpICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDQ05FWFRMTEkoZCwgYykgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDggKyAweDE3MDAwMDAgKiAoZCkgKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUNDQ09OVFJPTChkLCBjKSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDEwYyArIDB4MTcwMDAwMCAqIChkKSArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQ0NDT05GSUcoZCwgYykgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTEwICsgMHgxNzAwMDAwICogKGQpICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDMElOVFNUUyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMDApKSkKKyNkZWZpbmUgRE1BQzBJTlRUQ1NUUyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDA0KSkpCisjZGVmaW5lIERNQUMwSU5UVENDTFIgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAwOCkpKQorI2RlZmluZSBETUFDMElOVEVSUlNUUyAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMGMpKSkKKyNkZWZpbmUgRE1BQzBJTlRFUlJDTFIgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDEwKSkpCisjZGVmaW5lIERNQUMwUkFXSU5UVENTVFMgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAxNCkpKQorI2RlZmluZSBETUFDMFJBV0lOVEVSUlNUUyAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMTgpKSkKKyNkZWZpbmUgRE1BQzBFTkFCTEVEQ0hBTlMgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDFjKSkpCisjZGVmaW5lIERNQUMwU09GVEJSRVEgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAyMCkpKQorI2RlZmluZSBETUFDMFNPRlRTUkVRICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMjQpKSkKKyNkZWZpbmUgRE1BQzBTT0ZUTEJSRVEgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDI4KSkpCisjZGVmaW5lIERNQUMwU09GVExTUkVRICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDAyYykpKQorI2RlZmluZSBETUFDMENPTkZJRyAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAwMzApKSkKKyNkZWZpbmUgRE1BQzBTWU5DICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMDM0KSkpCisjZGVmaW5lIERNQUMwQ0xMSShjKSAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDEwMCArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQzBDU1JDQUREUihjKSAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTAwICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDMENERVNUQUREUihjKSAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDQgKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUMwQ05FWFRMTEkoYykgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDEwOCArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQzBDQ09OVFJPTChjKSAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTBjICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDMENDT05GSUcoYykgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxMTAgKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUMwQzBMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDEwMCkpKQorI2RlZmluZSBETUFDMEMwU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxMDApKSkKKyNkZWZpbmUgRE1BQzBDMERFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTA0KSkpCisjZGVmaW5lIERNQUMwQzBORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxMDgpKSkKKyNkZWZpbmUgRE1BQzBDMENPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTBjKSkpCisjZGVmaW5lIERNQUMwQzBDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDExMCkpKQorI2RlZmluZSBETUFDMEMxTExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxMjApKSkKKyNkZWZpbmUgRE1BQzBDMVNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTIwKSkpCisjZGVmaW5lIERNQUMwQzFERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDEyNCkpKQorI2RlZmluZSBETUFDMEMxTkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM4MjAwMTI4KSkpCisjZGVmaW5lIERNQUMwQzFDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDEyYykpKQorI2RlZmluZSBETUFDMEMxQ09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxMzApKSkKKyNkZWZpbmUgRE1BQzBDMkxMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMTQwKSkpCisjZGVmaW5lIERNQUMwQzJTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDE0MCkpKQorI2RlZmluZSBETUFDMEMyREVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxNDQpKSkKKyNkZWZpbmUgRE1BQzBDMk5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzODIwMDE0OCkpKQorI2RlZmluZSBETUFDMEMyQ09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxNGMpKSkKKyNkZWZpbmUgRE1BQzBDMkNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTUwKSkpCisjZGVmaW5lIERNQUMwQzNMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDE2MCkpKQorI2RlZmluZSBETUFDMEMzU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxNjApKSkKKyNkZWZpbmUgRE1BQzBDM0RFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTY0KSkpCisjZGVmaW5lIERNQUMwQzNORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxNjgpKSkKKyNkZWZpbmUgRE1BQzBDM0NPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMTZjKSkpCisjZGVmaW5lIERNQUMwQzNDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDE3MCkpKQorI2RlZmluZSBETUFDMEM0TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxODApKSkKKyNkZWZpbmUgRE1BQzBDNFNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMTgwKSkpCisjZGVmaW5lIERNQUMwQzRERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDE4NCkpKQorI2RlZmluZSBETUFDMEM0TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM4MjAwMTg4KSkpCisjZGVmaW5lIERNQUMwQzRDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDE4YykpKQorI2RlZmluZSBETUFDMEM0Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxOTApKSkKKyNkZWZpbmUgRE1BQzBDNUxMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM4MjAwMWEwKSkpCisjZGVmaW5lIERNQUMwQzVTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDFhMCkpKQorI2RlZmluZSBETUFDMEM1REVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxYTQpKSkKKyNkZWZpbmUgRE1BQzBDNU5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzODIwMDFhOCkpKQorI2RlZmluZSBETUFDMEM1Q09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxYWMpKSkKKyNkZWZpbmUgRE1BQzBDNUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMWIwKSkpCisjZGVmaW5lIERNQUMwQzZMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzODIwMDFjMCkpKQorI2RlZmluZSBETUFDMEM2U1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4MzgyMDAxYzApKSkKKyNkZWZpbmUgRE1BQzBDNkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMWM0KSkpCisjZGVmaW5lIERNQUMwQzZORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4MzgyMDAxYzgpKSkKKyNkZWZpbmUgRE1BQzBDNkNPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MjAwMWNjKSkpCisjZGVmaW5lIERNQUMwQzZDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDFkMCkpKQorI2RlZmluZSBETUFDMEM3TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4MzgyMDAxZTApKSkKKyNkZWZpbmUgRE1BQzBDN1NSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM4MjAwMWUwKSkpCisjZGVmaW5lIERNQUMwQzdERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODIwMDFlNCkpKQorI2RlZmluZSBETUFDMEM3TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM4MjAwMWU4KSkpCisjZGVmaW5lIERNQUMwQzdDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODIwMDFlYykpKQorI2RlZmluZSBETUFDMEM3Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgyMDAxZjApKSkKKyNkZWZpbmUgRE1BQzFJTlRTVFMgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDAwKSkpCisjZGVmaW5lIERNQUMxSU5UVENTVFMgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAwNCkpKQorI2RlZmluZSBETUFDMUlOVFRDQ0xSICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMDgpKSkKKyNkZWZpbmUgRE1BQzFJTlRFUlJTVFMgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDBjKSkpCisjZGVmaW5lIERNQUMxSU5URVJSQ0xSICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAxMCkpKQorI2RlZmluZSBETUFDMVJBV0lOVFRDU1RTICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMTQpKSkKKyNkZWZpbmUgRE1BQzFSQVdJTlRFUlJTVFMgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDE4KSkpCisjZGVmaW5lIERNQUMxRU5BQkxFRENIQU5TICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAxYykpKQorI2RlZmluZSBETUFDMVNPRlRCUkVRICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMjApKSkKKyNkZWZpbmUgRE1BQzFTT0ZUU1JFUSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDI0KSkpCisjZGVmaW5lIERNQUMxU09GVExCUkVRICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAyOCkpKQorI2RlZmluZSBETUFDMVNPRlRMU1JFUSAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAwMmMpKSkKKyNkZWZpbmUgRE1BQzFDT05GSUcgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMDMwKSkpCisjZGVmaW5lIERNQUMxU1lOQyAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDAzNCkpKQorI2RlZmluZSBETUFDMUNMTEkoYykgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxMDAgKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUMxQ1NSQ0FERFIoYykgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDEwMCArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQzFDREVTVEFERFIoYykgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTA0ICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDMUNORVhUTExJKGMpICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxMDggKyAweDIwICogKGMpKSkpCisjZGVmaW5lIERNQUMxQ0NPTlRST0woYykgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDEwYyArIDB4MjAgKiAoYykpKSkKKyNkZWZpbmUgRE1BQzFDQ09ORklHKGMpICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTEwICsgMHgyMCAqIChjKSkpKQorI2RlZmluZSBETUFDMUMwTExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxMDApKSkKKyNkZWZpbmUgRE1BQzFDMFNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTAwKSkpCisjZGVmaW5lIERNQUMxQzBERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDEwNCkpKQorI2RlZmluZSBETUFDMUMwTkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM5OTAwMTA4KSkpCisjZGVmaW5lIERNQUMxQzBDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDEwYykpKQorI2RlZmluZSBETUFDMUMwQ09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxMTApKSkKKyNkZWZpbmUgRE1BQzFDMUxMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMTIwKSkpCisjZGVmaW5lIERNQUMxQzFTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDEyMCkpKQorI2RlZmluZSBETUFDMUMxREVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxMjQpKSkKKyNkZWZpbmUgRE1BQzFDMU5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzOTkwMDEyOCkpKQorI2RlZmluZSBETUFDMUMxQ09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxMmMpKSkKKyNkZWZpbmUgRE1BQzFDMUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTMwKSkpCisjZGVmaW5lIERNQUMxQzJMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzOTkwMDE0MCkpKQorI2RlZmluZSBETUFDMUMyU1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxNDApKSkKKyNkZWZpbmUgRE1BQzFDMkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTQ0KSkpCisjZGVmaW5lIERNQUMxQzJORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4Mzk5MDAxNDgpKSkKKyNkZWZpbmUgRE1BQzFDMkNPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTRjKSkpCisjZGVmaW5lIERNQUMxQzJDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDE1MCkpKQorI2RlZmluZSBETUFDMUMzTExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxNjApKSkKKyNkZWZpbmUgRE1BQzFDM1NSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTYwKSkpCisjZGVmaW5lIERNQUMxQzNERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDE2NCkpKQorI2RlZmluZSBETUFDMUMzTkVYVExMSSAgICAgICgqKCh2b2xhdGlsZSB2b2lkKiopKDB4Mzk5MDAxNjgpKSkKKyNkZWZpbmUgRE1BQzFDM0NPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMTZjKSkpCisjZGVmaW5lIERNQUMxQzNDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDE3MCkpKQorI2RlZmluZSBETUFDMUM0TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxODApKSkKKyNkZWZpbmUgRE1BQzFDNFNSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMTgwKSkpCisjZGVmaW5lIERNQUMxQzRERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDE4NCkpKQorI2RlZmluZSBETUFDMUM0TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM5OTAwMTg4KSkpCisjZGVmaW5lIERNQUMxQzRDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDE4YykpKQorI2RlZmluZSBETUFDMUM0Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxOTApKSkKKyNkZWZpbmUgRE1BQzFDNUxMSSAgICAgICAgICAoKigoc3RydWN0IGRtYV9sbGkgdm9sYXRpbGUqKSgweDM5OTAwMWEwKSkpCisjZGVmaW5lIERNQUMxQzVTUkNBRERSICAgICAgKCooKGNvbnN0IHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDFhMCkpKQorI2RlZmluZSBETUFDMUM1REVTVEFERFIgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxYTQpKSkKKyNkZWZpbmUgRE1BQzFDNU5FWFRMTEkgICAgICAoKigoY29uc3Qgc3RydWN0IGRtYV9sbGkqIHZvbGF0aWxlKikoMHgzOTkwMDFhOCkpKQorI2RlZmluZSBETUFDMUM1Q09OVFJPTCAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxYWMpKSkKKyNkZWZpbmUgRE1BQzFDNUNPTkZJRyAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMWIwKSkpCisjZGVmaW5lIERNQUMxQzZMTEkgICAgICAgICAgKCooKHN0cnVjdCBkbWFfbGxpIHZvbGF0aWxlKikoMHgzOTkwMDFjMCkpKQorI2RlZmluZSBETUFDMUM2U1JDQUREUiAgICAgICgqKChjb25zdCB2b2lkKiB2b2xhdGlsZSopKDB4Mzk5MDAxYzApKSkKKyNkZWZpbmUgRE1BQzFDNkRFU1RBRERSICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMWM0KSkpCisjZGVmaW5lIERNQUMxQzZORVhUTExJICAgICAgKCooKGNvbnN0IHN0cnVjdCBkbWFfbGxpKiB2b2xhdGlsZSopKDB4Mzk5MDAxYzgpKSkKKyNkZWZpbmUgRE1BQzFDNkNPTlRST0wgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM5OTAwMWNjKSkpCisjZGVmaW5lIERNQUMxQzZDT05GSUcgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDFkMCkpKQorI2RlZmluZSBETUFDMUM3TExJICAgICAgICAgICgqKChzdHJ1Y3QgZG1hX2xsaSB2b2xhdGlsZSopKDB4Mzk5MDAxZTApKSkKKyNkZWZpbmUgRE1BQzFDN1NSQ0FERFIgICAgICAoKigoY29uc3Qgdm9pZCogdm9sYXRpbGUqKSgweDM5OTAwMWUwKSkpCisjZGVmaW5lIERNQUMxQzdERVNUQUREUiAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzOTkwMDFlNCkpKQorI2RlZmluZSBETUFDMUM3TkVYVExMSSAgICAgICgqKChjb25zdCBzdHJ1Y3QgZG1hX2xsaSogdm9sYXRpbGUqKSgweDM5OTAwMWU4KSkpCisjZGVmaW5lIERNQUMxQzdDT05UUk9MICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOTkwMDFlYykpKQorI2RlZmluZSBETUFDMUM3Q09ORklHICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzk5MDAxZjApKSkKKworCisvLy8vL0xDRC8vLy8vCisjZGVmaW5lIExDRF9CQVNFICAgKDB4MzgzMDAwMDApCisjZGVmaW5lIExDRF9DT05GSUcgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODMwMDAwMCkpKQorI2RlZmluZSBMQ0RfV0NNRCAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzgzMDAwMDQpKSkKKyNkZWZpbmUgTENEX1NUQVRVUyAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4MzAwMDFjKSkpCisjZGVmaW5lIExDRF9XREFUQSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODMwMDA0MCkpKQorCisKKy8vLy8vQVRBLy8vLy8KKyNkZWZpbmUgQVRBX0NPTlRST0wgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDAwKSkpCisjZGVmaW5lIEFUQV9TVEFUVVMgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAwNCkpKQorI2RlZmluZSBBVEFfQ09NTUFORCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMDgpKSkKKyNkZWZpbmUgQVRBX1NXUlNUICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDBjKSkpCisjZGVmaW5lIEFUQV9JUlEgICAgICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAxMCkpKQorI2RlZmluZSBBVEFfSVJRX01BU0sgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMTQpKSkKKyNkZWZpbmUgQVRBX0NGRyAgICAgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDE4KSkpCisjZGVmaW5lIEFUQV9NRE1BX1RJTUUgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAyOCkpKQorI2RlZmluZSBBVEFfUElPX1RJTUUgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMmMpKSkKKyNkZWZpbmUgQVRBX1VETUFfVElNRSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDMwKSkpCisjZGVmaW5lIEFUQV9YRlJfTlVNICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDAzNCkpKQorI2RlZmluZSBBVEFfWEZSX0NOVCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwMzgpKSkKKyNkZWZpbmUgQVRBX1RCVUZfU1RBUlQgICAgICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4NzAwMDNjKSkpCisjZGVmaW5lIEFUQV9UQlVGX1NJWkUgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA0MCkpKQorI2RlZmluZSBBVEFfU0JVRl9TVEFSVCAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzg3MDAwNDQpKSkKKyNkZWZpbmUgQVRBX1NCVUZfU0laRSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDQ4KSkpCisjZGVmaW5lIEFUQV9DQURSX1RCVUYgICAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODcwMDA0YykpKQorI2RlZmluZSBBVEFfQ0FEUl9TQlVGICAgICAgICgqKCh2b2lkKiB2b2xhdGlsZSopKDB4Mzg3MDAwNTApKSkKKyNkZWZpbmUgQVRBX1BJT19EVFIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDU0KSkpCisjZGVmaW5lIEFUQV9QSU9fRkVEICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA1OCkpKQorI2RlZmluZSBBVEFfUElPX1NDUiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNWMpKSkKKyNkZWZpbmUgQVRBX1BJT19MTFIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDYwKSkpCisjZGVmaW5lIEFUQV9QSU9fTE1SICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA2NCkpKQorI2RlZmluZSBBVEFfUElPX0xIUiAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNjgpKSkKKyNkZWZpbmUgQVRBX1BJT19EVlIgICAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDZjKSkpCisjZGVmaW5lIEFUQV9QSU9fQ1NEICAgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA3MCkpKQorI2RlZmluZSBBVEFfUElPX0RBRCAgICAgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwNzQpKSkKKyNkZWZpbmUgQVRBX1BJT19SRUFEWSAgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDc4KSkpCisjZGVmaW5lIEFUQV9QSU9fUkRBVEEgICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzODcwMDA3YykpKQorI2RlZmluZSBBVEFfQlVTX0ZJRk9fU1RBVFVTICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4Mzg3MDAwODApKSkKKyNkZWZpbmUgQVRBX0ZJRk9fU1RBVFVTICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4NzAwMDg0KSkpCisjZGVmaW5lIEFUQV9ETUFfQUREUiAgICAgICAgKCooKHZvaWQqIHZvbGF0aWxlKikoMHgzODcwMDA4OCkpKQorCisKKy8vLy8vU0RDSS8vLy8vCisjZGVmaW5lIFNEQ0lfQ1RSTCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAwMCkpKQorI2RlZmluZSBTRENJX0RDVFJMICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMDQpKSkKKyNkZWZpbmUgU0RDSV9DTUQgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDA4KSkpCisjZGVmaW5lIFNEQ0lfQVJHVSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAwYykpKQorI2RlZmluZSBTRENJX1NUQVRFICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMTApKSkKKyNkZWZpbmUgU0RDSV9TVEFDICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDE0KSkpCisjZGVmaW5lIFNEQ0lfRFNUQSAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAxOCkpKQorI2RlZmluZSBTRENJX0ZTVEEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMWMpKSkKKyNkZWZpbmUgU0RDSV9SRVNQMCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDIwKSkpCisjZGVmaW5lIFNEQ0lfUkVTUDEgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAyNCkpKQorI2RlZmluZSBTRENJX1JFU1AyICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMjgpKSkKKyNkZWZpbmUgU0RDSV9SRVNQMyAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDJjKSkpCisjZGVmaW5lIFNEQ0lfQ0RJViAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAzMCkpKQorI2RlZmluZSBTRENJX1NESU9fQ1NSICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwMzQpKSkKKyNkZWZpbmUgU0RDSV9JUlEgICAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDM4KSkpCisjZGVmaW5lIFNEQ0lfSVJRX01BU0sgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDAzYykpKQorI2RlZmluZSBTRENJX0RBVEEgICAgICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwNDApKSkKKyNkZWZpbmUgU0RDSV9ETUFBRERSICAoKigodm9pZCogdm9sYXRpbGUqKSgweDM4YjAwMDQ0KSkpCisjZGVmaW5lIFNEQ0lfRE1BU0laRSAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzOGIwMDA0OCkpKQorI2RlZmluZSBTRENJX0RNQUNPVU5UICgqKCh1aW50MzJfdCB2b2xhdGlsZSopKDB4MzhiMDAwNGMpKSkKKyNkZWZpbmUgU0RDSV9SRVNFVCAgICAoKigodWludDMyX3Qgdm9sYXRpbGUqKSgweDM4YjAwMDZjKSkpCisKKyNkZWZpbmUgU0RDSV9DVFJMX1NEQ0lFTiBCSVQoMCkKKyNkZWZpbmUgU0RDSV9DVFJMX0NBUkRfVFlQRV9NQVNLIEJJVCgxKQorI2RlZmluZSBTRENJX0NUUkxfQ0FSRF9UWVBFX1NEIDAKKyNkZWZpbmUgU0RDSV9DVFJMX0NBUkRfVFlQRV9NTUMgQklUKDEpCisjZGVmaW5lIFNEQ0lfQ1RSTF9CVVNfV0lEVEhfTUFTSyBCSVRSQU5HRSgyLCAzKQorI2RlZmluZSBTRENJX0NUUkxfQlVTX1dJRFRIXzFCSVQgMAorI2RlZmluZSBTRENJX0NUUkxfQlVTX1dJRFRIXzRCSVQgQklUKDIpCisjZGVmaW5lIFNEQ0lfQ1RSTF9CVVNfV0lEVEhfOEJJVCBCSVQoMykKKyNkZWZpbmUgU0RDSV9DVFJMX0RNQV9FTiBCSVQoNCkKKyNkZWZpbmUgU0RDSV9DVFJMX0xfRU5ESUFOIEJJVCg1KQorI2RlZmluZSBTRENJX0NUUkxfRE1BX1JFUV9DT05fTUFTSyBCSVQoNikKKyNkZWZpbmUgU0RDSV9DVFJMX0RNQV9SRVFfQ09OX05FTVBUWSAwCisjZGVmaW5lIFNEQ0lfQ1RSTF9ETUFfUkVRX0NPTl9GVUxMIEJJVCg2KQorI2RlZmluZSBTRENJX0NUUkxfQ0xLX1NFTF9NQVNLIEJJVCg3KQorI2RlZmluZSBTRENJX0NUUkxfQ0xLX1NFTF9QQ0xLIDAKKyNkZWZpbmUgU0RDSV9DVFJMX0NMS19TRUxfU0RDTEsgQklUKDcpCisjZGVmaW5lIFNEQ0lfQ1RSTF9CSVRfOCBCSVQoOCkKKyNkZWZpbmUgU0RDSV9DVFJMX0JJVF8xNCBCSVQoMTQpCisKKyNkZWZpbmUgU0RDSV9EQ1RSTF9UWEZJRk9SU1QgQklUKDApCisjZGVmaW5lIFNEQ0lfRENUUkxfUlhGSUZPUlNUIEJJVCgxKQorI2RlZmluZSBTRENJX0RDVFJMX1RSQ09OVF9NQVNLIEJJVFJBTkdFKDQsIDUpCisjZGVmaW5lIFNEQ0lfRENUUkxfVFJDT05UX1RYIEJJVCg0KQorI2RlZmluZSBTRENJX0RDVFJMX0JVU19URVNUX01BU0sgQklUUkFOR0UoNiwgNykKKyNkZWZpbmUgU0RDSV9EQ1RSTF9CVVNfVEVTVF9UWCBCSVQoNikKKyNkZWZpbmUgU0RDSV9EQ1RSTF9CVVNfVEVTVF9SWCBCSVQoNykKKworI2RlZmluZSBTRENJX0NESVZfQ0xLRElWX01BU0sgQklUUkFOR0UoMCwgNykKKyNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVih4KSAoKHgpID4+IDEpCisjZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfMiBCSVQoMCkKKyNkZWZpbmUgU0RDSV9DRElWX0NMS0RJVl80IEJJVCgxKQorI2RlZmluZSBTRENJX0NESVZfQ0xLRElWXzggQklUKDIpCisjZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfMTYgQklUKDMpCisjZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfMzIgQklUKDQpCisjZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfNjQgQklUKDUpCisjZGVmaW5lIFNEQ0lfQ0RJVl9DTEtESVZfMTI4IEJJVCg2KQorI2RlZmluZSBTRENJX0NESVZfQ0xLRElWXzI1NiBCSVQoNykKKworI2RlZmluZSBTRENJX0NNRF9DTURfTlVNX01BU0sgQklUUkFOR0UoMCwgNSkKKyNkZWZpbmUgU0RDSV9DTURfQ01EX05VTV9TSElGVCAwCisjZGVmaW5lIFNEQ0lfQ01EX0NNRF9OVU0oeCkgKHgpCisjZGVmaW5lIFNEQ0lfQ01EX0NNRF9UWVBFX01BU0sgQklUUkFOR0UoNiwgNykKKyNkZWZpbmUgU0RDSV9DTURfQ01EX1RZUEVfQkMgMAorI2RlZmluZSBTRENJX0NNRF9DTURfVFlQRV9CQ1IgQklUKDYpCisjZGVmaW5lIFNEQ0lfQ01EX0NNRF9UWVBFX0FDIEJJVCg3KQorI2RlZmluZSBTRENJX0NNRF9DTURfVFlQRV9BRFRDIChCSVQoNikgfCBCSVQoNykpCisjZGVmaW5lIFNEQ0lfQ01EX0NNRF9SRF9XUiBCSVQoOCkKKyNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfTUFTSyBCSVRSQU5HRSgxNiwgMTgpCisjZGVmaW5lIFNEQ0lfQ01EX1JFU19UWVBFX05PTkUgMAorI2RlZmluZSBTRENJX0NNRF9SRVNfVFlQRV9SMSBCSVQoMTYpCisjZGVmaW5lIFNEQ0lfQ01EX1JFU19UWVBFX1IyIEJJVCgxNykKKyNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjMgKEJJVCgxNikgfCBCSVQoMTcpKQorI2RlZmluZSBTRENJX0NNRF9SRVNfVFlQRV9SNCBCSVQoMTgpCisjZGVmaW5lIFNEQ0lfQ01EX1JFU19UWVBFX1I1IChCSVQoMTYpIHwgQklUKDE4KSkKKyNkZWZpbmUgU0RDSV9DTURfUkVTX1RZUEVfUjYgKEJJVCgxNykgfCBCSVQoMTgpKQorI2RlZmluZSBTRENJX0NNRF9SRVNfQlVTWSBCSVQoMTkpCisjZGVmaW5lIFNEQ0lfQ01EX1JFU19TSVpFX01BU0sgQklUKDIwKQorI2RlZmluZSBTRENJX0NNRF9SRVNfU0laRV80OCAwCisjZGVmaW5lIFNEQ0lfQ01EX1JFU19TSVpFXzEzNiBCSVQoMjApCisjZGVmaW5lIFNEQ0lfQ01EX05DUl9OSURfTUFTSyBCSVQoMjEpCisjZGVmaW5lIFNEQ0lfQ01EX05DUl9OSURfTkNSIDAKKyNkZWZpbmUgU0RDSV9DTURfTkNSX05JRF9OSUQgQklUKDIxKQorI2RlZmluZSBTRENJX0NNRF9DTURTVFIgQklUKDMxKQorCisjZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX01BU0sgQklUUkFOR0UoMCwgMykKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfSURMRSAwCisjZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0RBVF9SQ1YgQklUKDApCisjZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0NSQ19SQ1YgQklUKDEpCisjZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0RBVF9FTkQgKEJJVCgwKSB8IEJJVCgxKSkKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX1NFVCBCSVQoMikKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX09VVCAoQklUKDApIHwgQklUKDIpKQorI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9DUkNfVElNRSAoQklUKDEpIHwgQklUKDIpKQorI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9DUkNfT1VUIChCSVQoMCkgfCBCSVQoMSkgfCBCSVQoMikpCisjZGVmaW5lIFNEQ0lfU1RBVEVfREFUX1NUQVRFX0VOREJfT1VUIEJJVCgzKQorI2RlZmluZSBTRENJX1NUQVRFX0RBVF9TVEFURV9FTkRCX1NUT0QgKEJJVCgwKSB8IEJJVCgzKSkKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX0NSQ1IgKEJJVCgxKSB8IEJJVCgzKSkKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfQ0FSRF9QUkcgKEJJVCgwKSB8IEJJVCgxKSB8IEJJVCgzKSkKKyNkZWZpbmUgU0RDSV9TVEFURV9EQVRfU1RBVEVfREFUX0JVU1kgKEJJVCgyKSB8IEJJVCgzKSkKKyNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfTUFTSyAoQklUKDQpIHwgQklUKDUpIHwgQklUKDYpKQorI2RlZmluZSBTRENJX1NUQVRFX0NNRF9TVEFURV9DTURfSURMRSAwCisjZGVmaW5lIFNEQ0lfU1RBVEVfQ01EX1NUQVRFX0NNRF9DTURPIEJJVCg0KQorI2RlZmluZSBTRENJX1NUQVRFX0NNRF9TVEFURV9DTURfQ1JDTyBCSVQoNSkKKyNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfQ01EX1RPVVQgKEJJVCg0KSB8IEJJVCg1KSkKKyNkZWZpbmUgU0RDSV9TVEFURV9DTURfU1RBVEVfQ01EX1JFU1IgQklUKDYpCisjZGVmaW5lIFNEQ0lfU1RBVEVfQ01EX1NUQVRFX0NNRF9JTlRWIChCSVQoNCkgfCBCSVQoNikpCisKKyNkZWZpbmUgU0RDSV9TVEFDX0NMUl9DTURFTkQgQklUKDIpCisjZGVmaW5lIFNEQ0lfU1RBQ19DTFJfQklUXzMgQklUKDMpCisjZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkVTRU5EIEJJVCg0KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX0RBVEVORCBCSVQoNikKKyNkZWZpbmUgU0RDSV9TVEFDX0NMUl9EQVRfQ1JDRU5EIEJJVCg3KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX0NSQ19TVEFFTkQgQklUKDgpCisjZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkVTVE9VVEUgQklUKDE1KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JFU0VOREUgQklUKDE2KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JFU0lOREUgQklUKDE3KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JFU0NSQ0UgQklUKDE4KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1dSX0RBVENSQ0UgQklUKDIyKQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVENSQ0UgQklUKDIzKQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVEVOREUwIEJJVCgyNCkKKyNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFMSBCSVQoMjUpCisjZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkRfREFURU5ERTIgQklUKDI2KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVEVOREUzIEJJVCgyNykKKyNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFNCBCSVQoMjgpCisjZGVmaW5lIFNEQ0lfU1RBQ19DTFJfUkRfREFURU5ERTUgQklUKDI5KQorI2RlZmluZSBTRENJX1NUQUNfQ0xSX1JEX0RBVEVOREU2IEJJVCgzMCkKKyNkZWZpbmUgU0RDSV9TVEFDX0NMUl9SRF9EQVRFTkRFNyBCSVQoMzEpCisKKyNkZWZpbmUgU0RDSV9EU1RBX0NNRFJEWSBCSVQoMCkKKyNkZWZpbmUgU0RDSV9EU1RBX0NNRFBSTyBCSVQoMSkKKyNkZWZpbmUgU0RDSV9EU1RBX0NNREVORCBCSVQoMikKKyNkZWZpbmUgU0RDSV9EU1RBX1JFU1BSTyBCSVQoMykKKyNkZWZpbmUgU0RDSV9EU1RBX1JFU0VORCBCSVQoNCkKKyNkZWZpbmUgU0RDSV9EU1RBX0RBVFBSTyBCSVQoNSkKKyNkZWZpbmUgU0RDSV9EU1RBX0RBVEVORCBCSVQoNikKKyNkZWZpbmUgU0RDSV9EU1RBX0RBVF9DUkNFTkQgQklUKDcpCisjZGVmaW5lIFNEQ0lfRFNUQV9DUkNfU1RBRU5EIEJJVCg4KQorI2RlZmluZSBTRENJX0RTVEFfREFUX0JVU1kgQklUKDkpCisjZGVmaW5lIFNEQ0lfRFNUQV9TRENMS19IT0xEIEJJVCgxMikKKyNkZWZpbmUgU0RDSV9EU1RBX0RBVDBfU1RBVFVTIEJJVCgxMykKKyNkZWZpbmUgU0RDSV9EU1RBX1dQX0RFQ1RfSU5QVVQgQklUKDE0KQorI2RlZmluZSBTRENJX0RTVEFfUkVTVE9VVEUgQklUKDE1KQorI2RlZmluZSBTRENJX0RTVEFfUkVTRU5ERSBCSVQoMTYpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRVNJTkRFIEJJVCgxNykKKyNkZWZpbmUgU0RDSV9EU1RBX1JFU0NSQ0UgQklUKDE4KQorI2RlZmluZSBTRENJX0RTVEFfV1JfQ1JDX1NUQVRVU19NQVNLIEJJVFJBTkdFKDE5LCAyMSkKKyNkZWZpbmUgU0RDSV9EU1RBX1dSX0NSQ19TVEFUVVNfT0sgQklUKDIwKQorI2RlZmluZSBTRENJX0RTVEFfV1JfQ1JDX1NUQVRVU19UWEVSUiAoQklUKDE5KSB8IEJJVCgyMSkpCisjZGVmaW5lIFNEQ0lfRFNUQV9XUl9DUkNfU1RBVFVTX0NBUkRFUlIgKEJJVCgxOSkgfCBCSVQoMjApIHwgQklUKDIxKSkKKyNkZWZpbmUgU0RDSV9EU1RBX1dSX0RBVENSQ0UgQklUKDIyKQorI2RlZmluZSBTRENJX0RTVEFfUkRfREFUQ1JDRSBCSVQoMjMpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFMCBCSVQoMjQpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFMSBCSVQoMjUpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFMiBCSVQoMjYpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFMyBCSVQoMjcpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFNCBCSVQoMjgpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFNSBCSVQoMjkpCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFNiBCSVQoMzApCisjZGVmaW5lIFNEQ0lfRFNUQV9SRF9EQVRFTkRFNyBCSVQoMzEpCisKKyNkZWZpbmUgU0RDSV9GU1RBX1JYX0ZJRk9fRU1QVFkgQklUKDApCisjZGVmaW5lIFNEQ0lfRlNUQV9SWF9GSUZPX0ZVTEwgQklUKDEpCisjZGVmaW5lIFNEQ0lfRlNUQV9UWF9GSUZPX0VNUFRZIEJJVCgyKQorI2RlZmluZSBTRENJX0ZTVEFfVFhfRklGT19GVUxMIEJJVCgzKQorCisjZGVmaW5lIFNEQ0lfU0RJT19DU1JfU0RJT19SV19FTiBCSVQoMCkKKyNkZWZpbmUgU0RDSV9TRElPX0NTUl9TRElPX0lOVF9FTiBCSVQoMSkKKyNkZWZpbmUgU0RDSV9TRElPX0NTUl9TRElPX1JXX1JFUSBCSVQoMikKKyNkZWZpbmUgU0RDSV9TRElPX0NTUl9TRElPX1JXX1NUT1AgQklUKDMpCisjZGVmaW5lIFNEQ0lfU0RJT19DU1JfU0RJT19JTlRfUEVSSU9EX01BU0sgQklUKDQpCisjZGVmaW5lIFNEQ0lfU0RJT19DU1JfU0RJT19JTlRfUEVSSU9EX01PUkUgMAorI2RlZmluZSBTRENJX1NESU9fQ1NSX1NESU9fSU5UX1BFUklPRF9YQUNUIEJJVCg0KQorCisjZGVmaW5lIFNEQ0lfSVJRX0RBVF9ET05FX0lOVCBCSVQoMCkKKyNkZWZpbmUgU0RDSV9JUlFfSU9DQVJEX0lSUV9JTlQgQklUKDEpCisjZGVmaW5lIFNEQ0lfSVJRX1JFQURfV0FJVF9JTlQgQklUKDIpCisKKyNkZWZpbmUgU0RDSV9JUlFfTUFTS19NQVNLX0RBVF9ET05FX0lOVCBCSVQoMCkKKyNkZWZpbmUgU0RDSV9JUlFfTUFTS19NQVNLX0lPQ0FSRF9JUlFfSU5UIEJJVCgxKQorI2RlZmluZSBTRENJX0lSUV9NQVNLX01BU0tfUkVBRF9XQUlUX0lOVCBCSVQoMikKKworCisvLy8vL0NMSUNLV0hFRUwvLy8vLworI2RlZmluZSBXSEVFTDAwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwMCkpKQorI2RlZmluZSBXSEVFTDA0ICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwNCkpKQorI2RlZmluZSBXSEVFTDA4ICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwOCkpKQorI2RlZmluZSBXSEVFTDBDICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAwQykpKQorI2RlZmluZSBXSEVFTDEwICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAxMCkpKQorI2RlZmluZSBXSEVFTElOVCAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAxNCkpKQorI2RlZmluZSBXSEVFTFJYICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAxOCkpKQorI2RlZmluZSBXSEVFTFRYICAgICAgKCooKHVpbnQzMl90IHZvbGF0aWxlKikoMHgzQzIwMDAxQykpKQorCisKKy8vLy8vSTJTLy8vLy8KKyNkZWZpbmUgSTJTQ0xLQ09OICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDAwKSkpCisjZGVmaW5lIEkyU1RYQ09OICAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAwNCkpKQorI2RlZmluZSBJMlNUWENPTSAgICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwMDgpKSkKKyNkZWZpbmUgSTJTVFhEQjAgICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDEwKSkpCisjZGVmaW5lIEkyU1JYQ09OICAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAzMCkpKQorI2RlZmluZSBJMlNSWENPTSAgICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwMzQpKSkKKyNkZWZpbmUgSTJTUlhEQiAgICAgICAgICAgICAoKigodm9sYXRpbGUgdWludDMyX3QqKSgweDNDQTAwMDM4KSkpCisjZGVmaW5lIEkyU1NUQVRVUyAgICAgICAgICAgKCooKHZvbGF0aWxlIHVpbnQzMl90KikoMHgzQ0EwMDAzQykpKQorI2RlZmluZSBJMlM0MCAgICAgICAgICAgICAgICgqKCh2b2xhdGlsZSB1aW50MzJfdCopKDB4M0NBMDAwNDApKSkKKworCisvLy8vL0NMT0NLIEdBVEVTLy8vLy8KKyNkZWZpbmUgQ0xPQ0tHQVRFX1VTQl8xIDIKKyNkZWZpbmUgQ0xPQ0tHQVRFX1VTQl8yIDM1CisKKworLy8vLy9JTlRFUlJVUFRTLy8vLy8KKyNkZWZpbmUgSVJRX1RJTUVSIDgKKyNkZWZpbmUgSVJRX1VTQl9GVU5DIDE5CisjZGVmaW5lIElSUV9ETUFDKGQpIDE2ICsgZAorI2RlZmluZSBJUlFfRE1BQzAgMTYKKyNkZWZpbmUgSVJRX0RNQUMxIDE3CisjZGVmaW5lIElSUV9XSEVFTCAyMworI2RlZmluZSBJUlFfQVRBIDI5CisjZGVmaW5lIElSUV9NTUMgNDQKKworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGFyZ2V0L2FybS9hczM1MjUvc2Fuc2EtY2xpcHppcC9sY2QtY2xpcHppcC5jIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9hczM1MjUvc2Fuc2EtY2xpcHppcC9sY2QtY2xpcHppcC5jCmluZGV4IDQ2NTA5MTMuLjJkOGQyNWMgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vYXMzNTI1L3NhbnNhLWNsaXB6aXAvbGNkLWNsaXB6aXAuYworKysgYi9maXJtd2FyZS90YXJnZXQvYXJtL2FzMzUyNS9zYW5zYS1jbGlwemlwL2xjZC1jbGlwemlwLmMKQEAgLTUsNyArNSw3IEBACiAgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAogICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCiAgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KLSAqICRJZDogbGNkLWNsaXB6aXAuYyAzMDQ2NSAyMDExLTA5LTA2IDE2OjU1OjUyWiBiZXJ0cmlrICQKKyAqICRJZCQKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQmVydHJpayBTaWtrZW4KICAqCmRpZmYgLS1naXQgYS9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDAvcG9zdG1vcnRlbXN0dWIuUyBiL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMC9wb3N0bW9ydGVtc3R1Yi5TCmluZGV4IDczZjE5MmEuLmQwODc0YzQgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMC9wb3N0bW9ydGVtc3R1Yi5TCisrKyBiL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMC9wb3N0bW9ydGVtc3R1Yi5TCkBAIC0xLDMwOCArMSwzMDggQEAKLS5zZWN0aW9uIC50ZXh0LnBvc3RfbW9ydGVtX3N0dWIsICJheCIsICVwcm9nYml0cw0KLS5hbGlnbiA0DQotLmdsb2JhbCBwb3N0X21vcnRlbV9zdHViDQotLnR5cGUgcG9zdF9tb3J0ZW1fc3R1YiwgJWZ1bmN0aW9uDQotcG9zdF9tb3J0ZW1fc3R1YjoNCi1NU1IgQ1BTUl9jLCAjMHhEMyAgICAgICAgICBAIFN1cGVydmlzb3IgbW9kZSwgbm8gSVJRcywgbm8gRklRcw0KLU1SQyBwMTUsIDAsIFIwLGMxLGMwDQotQklDIFIwLCBSMCwgIzUNCi1NQ1IgcDE1LCAwLCBSMCxjMSxjMCAgICAgICBAIERpc2FibGUgdGhlIFByb3RlY3Rpb24gVW5pdCBhbmQgRENhY2hlDQotTU9WIFIxMywgIzANCi1wbXNfZmx1c2hjYWNoZV9sb29wOg0KLSAgTUNSIHAxNSwgMCwgUjEzLGM3LGMxNCwyDQotICBBREQgUjAsIFIxMywgIzB4MTANCi0gIE1DUiBwMTUsIDAsIFIwLGM3LGMxNCwyDQotICBBREQgUjAsIFIwLCAjMHgxMA0KLSAgTUNSIHAxNSwgMCwgUjAsYzcsYzE0LDINCi0gIEFERCBSMCwgUjAsICMweDEwDQotICBNQ1IgcDE1LCAwLCBSMCxjNyxjMTQsMg0KLSAgQUREUyBSMTMsIFIxMywgIzB4MDQwMDAwMDANCi1CTkUgcG1zX2ZsdXNoY2FjaGVfbG9vcA0KLU1DUiBwMTUsIDAsIFIxMyxjNyxjMTAsNA0KLQ0KLUxEUiBSNywgcG1zXzAwMDgwMjAwDQotT1JSIFI4LCBSNywgIzB4ODAwMA0KLUFEUiBSOSwgcG1zX3JlY3ZidWYNCi1MRFIgUjEwLCBwbXNfMjAwODAwNDANCi1NT1YgUjExLCAjMHgzODgwMDAwMA0KLU1PViBSMTIsICMxDQotDQotTU9WIFIyLCAjMHgzQzQwMDAwMA0KLUFERCBSMSwgUjIsICMweDAwMTAwMDAwICAgIEAgRW5hYmxlIFVTQiBjbG9ja3MNCi1MRFIgUjAsIFtSMSwjMHgyOF0NCi1CSUMgUjAsIFIwLCAjMHg0MDAwDQotU1RSIFIwLCBbUjEsIzB4MjhdDQotTERSIFIwLCBbUjEsIzB4NDBdDQotQklDIFIwLCBSMCwgIzB4ODAwDQotU1RSIFIwLCBbUjEsIzB4NDBdDQotTERSIFIwLCBwbXNfMjA4MDMxODAgICAgICAgQCBDbG9ja2luZyBjb25maWcNCi1TVFIgUjAsIFtSMV0NCi1NT1YgUjAsICMweDI4MA0KLVNUUiBSMCwgW1IxLCMweDNDXQ0KLU1SQyBwMTUsIDAsIFIwLGMxLGMwDQotT1JSIFIwLCBSMCwgIzB4YzAwMDAwMDANCi1NQ1IgcDE1LCAwLCBSMCxjMSxjMCAgICAgICBAIEFzeW5jaHJvbm91cyBtb2RlDQotDQotU1RSIFIxMywgW1IxMSwjMHhFMDBdICAgICAgICBAIFBIWSBjbG9jayBlbmFibGUNCi0NCi1NT1YgUjEsICMweDgwMA0KLU9SUiBSMCwgUjIsICMyDQotU1RSIFIwLCBbUjExLCMweDgwNF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IFNvZnQgZGlzY29ubmVjdA0KLQ0KLVNUUiBSMTMsIFtSMl0gICAgICAgICAgICAgIEAgVVNCMiBQSFk6IFBvd2VyIG9uDQotU1RSIFIxMiwgW1IyLCMweDA4XSAgICAgICAgIEAgVVNCMiBQSFk6IEFzc2VydCBTb2Z0d2FyZSBSZXNldA0KLU1PViBSMCwgIzB4MTAwMDANCi1wbXNfd2FpdDoNCi1TVUJTIFIwLCBSMCwgIzENCi1CTkUgcG1zX3dhaXQNCi1TVFIgUjEzLCBbUjIsIzB4MDhdICAgICAgICAgQCBVU0IyIFBIWTogRGVhc3NlcnQgU29mdHdhcmUgUmVzZXQNCi1TVFIgUjEzLCBbUjIsIzB4MDRdICAgICAgICAgQCBVU0IyIFBIWTogQ2xvY2sgaXMgNDhNSHoNCi0NCi1TVFIgUjEyLCBbUjExLCMweDEwXSAgICAgICAgQCBVU0IyIEdhZGdldDogQXNzZXJ0IENvcmUgU29mdHdhcmUgUmVzZXQNCi1wbXNfd2FpdGNvcmVyZXNldDoNCi1MRFIgUjAsIFtSMTEsIzB4MTBdICAgICAgICAgQCBVU0IyIEdhZGdldDogV2FpdCBmb3IgQ29yZSB0byByZXNldA0KLVRTVCBSMCwgIzENCi1CTkUgcG1zX3dhaXRjb3JlcmVzZXQNCi1UU1QgUjAsICMweDgwMDAwMDAwICAgICAgICBAIFVTQjIgR2FkZ2V0OiBXYWl0IGZvciBBSEIgSURMRQ0KLUJFUSBwbXNfd2FpdGNvcmVyZXNldA0KLQ0KLU1PViBSMCwgIzB4MjAwDQotU1RSIFIwLCBbUjExLCMweDI0XSAgICAgICAgIEAgVVNCMiBHYWRnZXQ6IFJYIEZJRk8gc2l6ZTogNTEyIGJ5dGVzDQotT1JSIFIwLCBSMCwgIzB4MjAwMDAwMA0KLVNUUiBSMCwgW1IxMSwjMHgyOF0gICAgICAgICBAIFVTQjIgR2FkZ2V0OiBOb24tcGVyaW9kaWMgVFggRklGTyBzaXplOiA1MTIgYnl0ZXMNCi1NT1YgUjAsICMweDI2DQotU1RSIFIwLCBbUjExLCMweDA4XSAgICAgICAgIEAgVVNCMiBHYWRnZXQ6IERNQSBFbmFibGUsIEJ1cnN0IExlbmd0aDogNCwgTWFzayBJbnRlcnJ1cHRzDQotTU9WIFIwLCAjMHgxNDAwDQotQUREIFIwLCBSMCwgIzgNCi1TVFIgUjAsIFtSMTEsIzB4MENdICAgICAgICAgQCBVU0IyIEdhZGdldDogUEhZIElGIGlzIDE2Yml0LCBUdXJuYXJvdW5kIDUNCi1TVFIgUjEsIFtSMTEsIzB4ODA0XSAgICAgICAgQCBVU0IyIEdhZGdldDogU29mdCByZWNvbm5lY3QNCi0NCi1BRFIgUjE0LCBwbXNfY3RybGJ1Zg0KLU9SUiBSNSwgUjgsICMweDg0MDAwMDAwDQotQCBmYWxsdGhyb3VnaA0KLQ0KLXBtc19tYWlubG9vcDoNCi0gIExEUiBSMywgW1IxMSwjMHgxNF0gICAgICAgICBAIEdsb2JhbCBVU0IgaW50ZXJydXB0cw0KLSAgVFNUIFIzLCAjMHgwMDAwMTAwMCAgICAgICAgQCBCVVMgcmVzZXQNCi0gIEJFUSBwbXNfbm9yZXNldA0KLSAgICBNT1YgUjAsICMweDUwMA0KLSAgICBTVFIgUjAsIFtSMTEsIzB4ODA0XQ0KLSAgICBNT1YgUjAsICM0DQotICAgIFNUUiBSMCwgW1IxMSwjMHg4MDBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBEZXZpY2UgQWRkcmVzcyAwLCBTVEFMTCBvbiBub24temVybyBsZW5ndGggc3RhdHVzIHN0YWdlDQotICAgIE1PViBSMCwgIzB4ODAwMA0KLSAgICBTVFIgUjAsIFtSMTEsIzB4OTAwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgMCBJTiBDb250cm9sOiBBQ1RJVkUNCi0gICAgU1RSIFIxMCwgW1IxMSwjMHhCMTBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCAwIE9VVCBUcmFuc2ZlciBTaXplOiA2NCBCeXRlcywgMSBQYWNrZXQsIDEgU2V0dXAgUGFja2V0DQotICAgIFNUUiBSMTQsIFtSMTEsIzB4QjE0XSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgMCBPVVQgRE1BIEFkZHJlc3M6IHBtc19jdHJsYnVmDQotICAgIE9SUiBSNiwgUjAsICMweDg0MDAwMDAwDQotICAgIFNUUiBSNiwgW1IxMSwjMHhCMDBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCAwIE9VVCBDb250cm9sOiBFTkFCTEUgQ0xFQVJOQUsNCi0gICAgU1RSIFI4LCBbUjExLCMweDk2MF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IEVuZHBvaW50IDMgSU4gQ29udHJvbDogQUNUSVZFIEJVTEssIDUxMiBieXRlIHBhY2tldHMNCi0gICAgU1RSIFI4LCBbUjExLCMweEI4MF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IEVuZHBvaW50IDQgT1VUIENvbnRyb2w6IEFDVElWRSBCVUxLLCA1MTIgYnl0ZSBwYWNrZXRzDQotICAgIFNUUiBSNywgW1IxMSwjMHhCOTBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCA0IE9VVCBUcmFuc2ZlciBTaXplOiA1MTIgQnl0ZXMsIDEgUGFja2V0DQotICAgIFNUUiBSOSwgW1IxMSwjMHhCOTRdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCA0IE9VVCBETUEgQWRkcmVzczogcG1zX3JlY3ZidWYNCi0gICAgT1JSIFI0LCBSNSwgIzB4MTAwMDAwMDANCi0gICAgU1RSIFI0LCBbUjExLCMweEI4MF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IEVuZHBvaW50IDQgT1VUIENvbnRyb2w6IEVOQUJMRSBDTEVBUk5BSyBEQVRBMA0KLSAgcG1zX25vcmVzZXQ6DQotICBMRFIgUjAsIFtSMTEsIzB4OTA4XSAgICAgICAgQCBKdXN0IEFDSyBhbGwgSU4gZXZlbnRzLi4uDQotICBTVFIgUjAsIFtSMTEsIzB4OTA4XQ0KLSAgTERSIFIwLCBbUjExLCMweDk2OF0NCi0gIFNUUiBSMCwgW1IxMSwjMHg5NjhdDQotICBMRFIgUjIsIFtSMTEsIzB4QjA4XQ0KLSAgTU9WUyBSMiwgUjIgICAgICAgICAgICAgICAgQCBFdmVudCBvbiBPVVQgRVAwDQotICBCRVEgcG1zX25vZXAwb3V0DQotICAgIFRTVCBSMiwgIzggICAgICAgICAgICAgICAgIEAgU0VUVVAgcGhhc2UgZG9uZQ0KLSAgICBCRVEgcG1zX2NvbnRyb2xkb25lDQotICAgICAgTERSQiBSMCwgW1IxNCwjMV0gQCBHZXQgcmVxdWVzdCB0eXBlDQotICAgICAgQ01QIFIwLCAjMA0KLSAgICAgICAgQkVRIHBtc19HRVRfU1RBVFVTDQotICAgICAgQ01QIFIwLCAjMQ0KLSAgICAgICAgQkVRIHBtc19DTEVBUl9GRUFUVVJFDQotICAgICAgQ01QIFIwLCAjMw0KLSAgICAgICAgQkVRIHBtc19TRVRfRkVBVFVSRQ0KLSAgICAgIENNUCBSMCwgIzUNCi0gICAgICAgIEJFUSBwbXNfU0VUX0FERFJFU1MNCi0gICAgICBDTVAgUjAsICM2DQotICAgICAgICBCRVEgcG1zX0dFVF9ERVNDUklQVE9SDQotICAgICAgQ01QIFIwLCAjOA0KLSAgICAgICAgQkVRIHBtc19HRVRfQ09ORklHVVJBVElPTg0KLSAgICAgIENNUCBSMCwgIzkNCi0gICAgICAgIEJFUSBwbXNfU0VUX0NPTkZJR1VSQVRJT04NCi0gICAgICBwbXNfY3RybHN0YWxsOg0KLSAgICAgIExEUiBSMCwgW1IxMSwjMHg5MDBdDQotICAgICAgT1JSIFIwLCBSMCwgIzB4MDAyMDAwMDANCi0gICAgICBTVFIgUjAsIFtSMTEsIzB4OTAwXSAgICAgICAgQCBTdGFsbCBJTiBFUDANCi0gICAgICBMRFIgUjAsIFtSMTEsIzB4QjAwXQ0KLSAgICAgIE9SUiBSMCwgUjAsICMweDAwMjAwMDAwDQotICAgICAgU1RSIFIwLCBbUjExLCMweEIwMF0gICAgICAgIEAgU3RhbGwgT1VUIEVQMA0KLSAgICBwbXNfY29udHJvbGRvbmU6DQotICAgIFNUUiBSMTAsIFtSMTEsIzB4QjEwXSAgICAgICAgQCBPVVQgRVAwOiA2NCBCeXRlcywgMSBQYWNrZXQsIDEgU2V0dXAgUGFja2V0DQotICAgIFNUUiBSMTQsIFtSMTEsIzB4QjE0XSAgICAgICAgQCBPVVQgRVAwOiBETUEgYWRkcmVzcw0KLSAgICBTVFIgUjYsIFtSMTEsIzB4QjAwXSAgICAgICAgQCBPVVQgRVAwOiBFbmFibGUgQ2xlYXJOQUsNCi0gIHBtc19ub2VwMG91dDoNCi0gIFNUUiBSMiwgW1IxMSwjMHhCMDhdICAgICAgICBAIEFDSyBpdCwgd2hhdGV2ZXIgaXQgd2FzLi4uDQotICBMRFIgUjIsIFtSMTEsIzB4Qjg4XQ0KLSAgTU9WUyBSMiwgUjIgICAgICAgICAgICAgICAgQCBFdmVudCBvbiBPVVQgRVA0DQotICBCRVEgcG1zX25vZXAxb3V0DQotICAgIFRTVCBSMiwgIzEgICAgICAgICAgICAgICAgIEAgWEZFUiBjb21wbGV0ZQ0KLSAgICBCRVEgcG1zX2RhdGFkb25lDQotICAgICAgTERSIFIwLCBwbXNfMDAwMDAxRkYNCi0gICAgICBMRFIgUjEsIHBtc19yZWN2YnVmKzQNCi0gICAgICBBREQgUjAsIFIwLCBSMQ0KLSAgICAgIE1PViBSMCwgUjAsTFNSIzkNCi0gICAgICBPUlIgUjEsIFIxLCBSMCxMU0wjMTkgICAgICBAIE51bWJlciBvZiBwYWNrZXRzDQotICAgICAgTERSIFIwLCBwbXNfcmVjdmJ1Zg0KLSAgICAgIFNUUiBSMSwgW1IxMSwjMHg5NzBdICAgICAgICBAIEVQMyBJTjogTnVtYmVyIG9mIHBhY2tldHMsIHNpemUNCi0gICAgICBTVFIgUjAsIFtSMTEsIzB4OTc0XSAgICAgICAgQCBFUDMgSU46IERNQSBhZGRyZXNzDQotICAgICAgU1RSIFI1LCBbUjExLCMweDk2MF0gICAgICAgIEAgRVAzIElOOiBFbmFibGUgQ2xlYXJOQUsNCi0gICAgcG1zX2RhdGFkb25lOg0KLSAgICBTVFIgUjcsIFtSMTEsIzB4QjkwXSAgICAgICAgQCBPVVQgRVA0OiA1MTIgQnl0ZXMsIDEgUGFja2V0DQotICAgIFNUUiBSOSwgW1IxMSwjMHhCOTRdICAgICAgICBAIE91dCBFUDQ6IERNQSBhZGRyZXNzDQotICAgIFNUUiBSNSwgW1IxMSwjMHhCODBdICAgICAgICBAIE91dCBFUDQ6IEVuYWJsZSBDbGVhck5BSw0KLSAgcG1zX25vZXAxb3V0Og0KLSAgU1RSIFIyLCBbUjExLCMweEI4OF0gICAgICAgIEAgQUNLIGl0LCB3aGF0ZXZlciBpdCB3YXMuLi4NCi0gIFNUUiBSMywgW1IxMSwjMHgxNF0gICAgICAgICBAIEFDSyBnbG9iYWwgaW50cw0KLUIgcG1zX21haW5sb29wDQotDQotcG1zX0NMRUFSX0ZFQVRVUkU6DQotICBMRFJCIFIwLCBbUjE0XQ0KLSAgQ01QIFIwLCAjMg0KLSAgTERSRVEgUjAsIFtSMTQsIzJdDQotICBCSUNFUSBSMCwgUjAsICMweDAwODAwMDAwDQotICBDTVBFUSBSMCwgIzB4MDAwMTAwMDANCi1AIGZhbGx0aHJvdWdoDQotDQotcG1zX1NFVF9DT05GSUdVUkFUSU9OOg0KLSAgT1JSRVEgUjAsIFI4LCAjMHgxMDAwMDAwMA0KLSAgU1RSRVEgUjAsIFtSMTEsIzB4OTYwXSAgICAgIEAgRVAzIElOOiBTZXQgREFUQTAgUElEDQotICBTVFJFUSBSNCwgW1IxMSwjMHhCODBdICAgICAgQCBFUDQgT1VUOiBTZXQgREFUQTAgUElEDQotQiBwbXNfU0VUX0ZFQVRVUkUgICAgICAgICAgICAgIEAgemVyby1sZW5ndGggQUNLDQotDQotcG1zX0dFVF9DT05GSUdVUkFUSU9OOg0KLSAgTU9WIFIxLCAjMQ0KLSAgU1RSIFIxLCBbUjE0XQ0KLUAgZmFsbHRocm91Z2gNCi0NCi1wbXNfY3RybHNlbmQ6DQotICBPUlIgUjAsIFIxLCAjMHgwMDA4MDAwMCAgICBAIDEgUGFja2V0DQotICBTVFIgUjAsIFtSMTEsIzB4OTEwXSAgICAgICAgQCBFUDAgSU46IDEgUGFja2V0LCBTaXplIGFzIGluIFIxDQotICBTVFIgUjE0LCBbUjExLCMweDkxNF0gICAgICAgIEAgRVAwIElOOiBETUEgYWRkcmVzcw0KLSAgT1JSIFIwLCBSNiwgIzB4MTgwMA0KLSAgU1RSIFIwLCBbUjExLCMweDkwMF0gICAgICAgIEAgRVAwIElOOiBFbmFibGUgQ2xlYXJOQUsNCi0gIEFEUiBSMTQsIHBtc19jdHJsYnVmDQotQiBwbXNfY29udHJvbGRvbmUNCi0NCi1wbXNfR0VUX0RFU0NSSVBUT1I6DQotICBMRFJCIFIwLCBbUjE0LCMzXSAgICAgICAgICAgQCBEZXNjcmlwdG9yIHR5cGUNCi0gIENNUCBSMCwgIzENCi0gICAgQURSRVEgUjE0LCBwbXNfZGV2aWNlZGVzY3JpcHRvcg0KLSAgICBCRVEgcG1zX3NlbmRkZXNjcmlwdG9yDQotICBDTVAgUjAsICMyDQotICAgIEFEUkVRIFIxNCwgcG1zX2NvbmZpZ3VyYXRpb25kZXNjcmlwdG9yDQotICAgIE1PVkVRIFIxLCAjMHgyMA0KLSAgICBCRVEgcG1zX3NlbmRkZXNjcmlwdG9yY3VzdG9tc2l6ZQ0KLSAgQ01QIFIwLCAjMw0KLSAgQk5FIHBtc19jdHJsc3RhbGwNCi0gIExEUkIgUjAsIFtSMTQsIzJdICAgICAgICAgICBAIFN0cmluZyBkZXNjcmlwdG9yIGluZGV4DQotICBDTVAgUjAsICMwDQotICAgIExEUkVRIFIwLCBwbXNfbGFuZ3N0cmluZ2Rlc2NyaXB0b3INCi0gICAgU1RSRVEgUjAsIFtSMTRdDQotICAgIEJFUSBwbXNfc2VuZGRlc2NyaXB0b3INCi0gIENNUCBSMCwgIzENCi0gIENNUE5FIFIwLCAjMg0KLSAgICBBRFJFUSBSMTQsIHBtc19kZXZuYW1lc3RyaW5nZGVzY3JpcHRvcg0KLSAgQk5FIHBtc19jdHJsc3RhbGwNCi1AIGZhbGx0aHJvdWdoDQotDQotcG1zX3NlbmRkZXNjcmlwdG9yOg0KLSAgTERSQiBSMSwgW1IxNF0gICAgICAgICAgICAgIEAgRGVzY3JpcHRvciBsZW5ndGgNCi1AIGZhbGx0aHJvdWdoDQotDQotcG1zX3NlbmRkZXNjcmlwdG9yY3VzdG9tc2l6ZToNCi0gIExEUkggUjAsIHBtc19jdHJsYnVmKzYgICAgICAgIEAgUmVxdWVzdGVkIGxlbmd0aA0KLSAgQ01QIFIwLCBSMQ0KLSAgTU9WTE8gUjEsIFIwDQotQiBwbXNfY3RybHNlbmQNCi0NCi1wbXNfU0VUX0FERFJFU1M6DQotICBMRFJIIFIxLCBbUjE0LCMyXSAgICAgICAgQCBuZXcgYWRkcmVzcw0KLSAgTERSIFIwLCBbUjExLCMweDgwMF0NCi0gIEJJQyBSMCwgUjAsICMweDAwMDAwN0YwDQotICBPUlIgUjAsIFIwLCBSMSxMU0wjNA0KLSAgU1RSIFIwLCBbUjExLCMweDgwMF0gICAgICAgIEAgc2V0IG5ldyBhZGRyZXNzDQotQCBmYWxsdGhyb3VnaA0KLQ0KLXBtc19TRVRfRkVBVFVSRToNCi0gIE1PViBSMSwgIzAgICAgICAgICAgICAgICAgIEAgemVyby1sZW5ndGggQUNLDQotQiBwbXNfY3RybHNlbmQNCi0NCi1wbXNfMjA4MDMxODA6DQotLndvcmQgMHgyMDgwMzE4MA0KLQ0KLS5sdG9yZw0KLQ0KLS5hbGlnbiA0DQotDQotcG1zX2NvbmZpZ3VyYXRpb25kZXNjcmlwdG9yOg0KLS53b3JkIDB4MDAyMDAyMDkNCi0ud29yZCAweEMwMDAwMTAxDQotLndvcmQgMHgwMDA0MDkzMg0KLS53b3JkIDB4RkZGRjAyMDANCi0ud29yZCAweDA1MDcwMEZGDQotLndvcmQgMHgwMjAwMDIwNA0KLS53b3JkIDB4ODMwNTA3MDENCi0ud29yZCAweDAxMDIwMDAyDQotDQotcG1zX2RldmljZWRlc2NyaXB0b3I6DQotLndvcmQgMHgwMjAwMDExMg0KLS53b3JkIDB4NDBGRkZGRkYNCi0ud29yZCAweEExMTJGRkZGDQotLndvcmQgMHgwMjAxMDAwMQ0KLS53b3JkIDB4MDAwMTAxMDANCi0NCi1wbXNfMDAwODAyMDA6DQotLndvcmQgMHgwMDA4MDIwMA0KLQ0KLXBtc18yMDA4MDA0MDoNCi0ud29yZCAweDIwMDgwMDQwDQotDQotcG1zXzAwMDAwMUZGOg0KLS53b3JkIDB4MDAwMDAxRkYNCi0NCi1wbXNfZGV2bmFtZXN0cmluZ2Rlc2NyaXB0b3I6DQotLndvcmQgMHgwMDUyMDMwQw0KLS53b3JkIDB4MDA1MDAwNDINCi0ud29yZCAweDAwNTMwMDREDQotDQotcG1zX2xhbmdzdHJpbmdkZXNjcmlwdG9yOg0KLS53b3JkIDB4MDQwOTAzMDQNCi0NCi1wbXNfY3RybGJ1ZjoNCi0ud29yZCAwDQotLndvcmQgMA0KLS53b3JkIDANCi0ud29yZCAwDQotLndvcmQgMA0KLS53b3JkIDANCi0ud29yZCAwDQotLndvcmQgMA0KLS53b3JkIDANCi0ud29yZCAwDQotLndvcmQgMA0KLS53b3JkIDANCi0ud29yZCAwDQotLndvcmQgMA0KLS53b3JkIDANCi0ud29yZCAwDQotDQotcG1zX3JlY3ZidWY6DQotLndvcmQgMA0KLS53b3JkIDANCi0NCi1wbXNfR0VUX1NUQVRVUzoNCi0gIExEUkIgUjAsIFtSMTRdDQotICBDTVAgUjAsICMweDgwDQotICBTVFJFUSBSMTIsIFtSMTRdDQotICBTVFJORSBSMTMsIFtSMTRdDQotICBNT1YgUjEsICMyDQotQiBwbXNfY3RybHNlbmQNCi0NCi0uc2l6ZSBwb3N0X21vcnRlbV9zdHViLCAuLXBvc3RfbW9ydGVtX3N0dWINCisuc2VjdGlvbiAudGV4dC5wb3N0X21vcnRlbV9zdHViLCAiYXgiLCAlcHJvZ2JpdHMKKy5hbGlnbiA0CisuZ2xvYmFsIHBvc3RfbW9ydGVtX3N0dWIKKy50eXBlIHBvc3RfbW9ydGVtX3N0dWIsICVmdW5jdGlvbgorcG9zdF9tb3J0ZW1fc3R1YjoKK01TUiBDUFNSX2MsICMweEQzICAgICAgICAgIEAgU3VwZXJ2aXNvciBtb2RlLCBubyBJUlFzLCBubyBGSVFzCitNUkMgcDE1LCAwLCBSMCxjMSxjMAorQklDIFIwLCBSMCwgIzUKK01DUiBwMTUsIDAsIFIwLGMxLGMwICAgICAgIEAgRGlzYWJsZSB0aGUgUHJvdGVjdGlvbiBVbml0IGFuZCBEQ2FjaGUKK01PViBSMTMsICMwCitwbXNfZmx1c2hjYWNoZV9sb29wOgorICBNQ1IgcDE1LCAwLCBSMTMsYzcsYzE0LDIKKyAgQUREIFIwLCBSMTMsICMweDEwCisgIE1DUiBwMTUsIDAsIFIwLGM3LGMxNCwyCisgIEFERCBSMCwgUjAsICMweDEwCisgIE1DUiBwMTUsIDAsIFIwLGM3LGMxNCwyCisgIEFERCBSMCwgUjAsICMweDEwCisgIE1DUiBwMTUsIDAsIFIwLGM3LGMxNCwyCisgIEFERFMgUjEzLCBSMTMsICMweDA0MDAwMDAwCitCTkUgcG1zX2ZsdXNoY2FjaGVfbG9vcAorTUNSIHAxNSwgMCwgUjEzLGM3LGMxMCw0CisKK0xEUiBSNywgcG1zXzAwMDgwMjAwCitPUlIgUjgsIFI3LCAjMHg4MDAwCitBRFIgUjksIHBtc19yZWN2YnVmCitMRFIgUjEwLCBwbXNfMjAwODAwNDAKK01PViBSMTEsICMweDM4ODAwMDAwCitNT1YgUjEyLCAjMQorCitNT1YgUjIsICMweDNDNDAwMDAwCitBREQgUjEsIFIyLCAjMHgwMDEwMDAwMCAgICBAIEVuYWJsZSBVU0IgY2xvY2tzCitMRFIgUjAsIFtSMSwjMHgyOF0KK0JJQyBSMCwgUjAsICMweDQwMDAKK1NUUiBSMCwgW1IxLCMweDI4XQorTERSIFIwLCBbUjEsIzB4NDBdCitCSUMgUjAsIFIwLCAjMHg4MDAKK1NUUiBSMCwgW1IxLCMweDQwXQorTERSIFIwLCBwbXNfMjA4MDMxODAgICAgICAgQCBDbG9ja2luZyBjb25maWcKK1NUUiBSMCwgW1IxXQorTU9WIFIwLCAjMHgyODAKK1NUUiBSMCwgW1IxLCMweDNDXQorTVJDIHAxNSwgMCwgUjAsYzEsYzAKK09SUiBSMCwgUjAsICMweGMwMDAwMDAwCitNQ1IgcDE1LCAwLCBSMCxjMSxjMCAgICAgICBAIEFzeW5jaHJvbm91cyBtb2RlCisKK1NUUiBSMTMsIFtSMTEsIzB4RTAwXSAgICAgICAgQCBQSFkgY2xvY2sgZW5hYmxlCisKK01PViBSMSwgIzB4ODAwCitPUlIgUjAsIFIyLCAjMgorU1RSIFIwLCBbUjExLCMweDgwNF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IFNvZnQgZGlzY29ubmVjdAorCitTVFIgUjEzLCBbUjJdICAgICAgICAgICAgICBAIFVTQjIgUEhZOiBQb3dlciBvbgorU1RSIFIxMiwgW1IyLCMweDA4XSAgICAgICAgIEAgVVNCMiBQSFk6IEFzc2VydCBTb2Z0d2FyZSBSZXNldAorTU9WIFIwLCAjMHgxMDAwMAorcG1zX3dhaXQ6CitTVUJTIFIwLCBSMCwgIzEKK0JORSBwbXNfd2FpdAorU1RSIFIxMywgW1IyLCMweDA4XSAgICAgICAgIEAgVVNCMiBQSFk6IERlYXNzZXJ0IFNvZnR3YXJlIFJlc2V0CitTVFIgUjEzLCBbUjIsIzB4MDRdICAgICAgICAgQCBVU0IyIFBIWTogQ2xvY2sgaXMgNDhNSHoKKworU1RSIFIxMiwgW1IxMSwjMHgxMF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IEFzc2VydCBDb3JlIFNvZnR3YXJlIFJlc2V0CitwbXNfd2FpdGNvcmVyZXNldDoKK0xEUiBSMCwgW1IxMSwjMHgxMF0gICAgICAgICBAIFVTQjIgR2FkZ2V0OiBXYWl0IGZvciBDb3JlIHRvIHJlc2V0CitUU1QgUjAsICMxCitCTkUgcG1zX3dhaXRjb3JlcmVzZXQKK1RTVCBSMCwgIzB4ODAwMDAwMDAgICAgICAgIEAgVVNCMiBHYWRnZXQ6IFdhaXQgZm9yIEFIQiBJRExFCitCRVEgcG1zX3dhaXRjb3JlcmVzZXQKKworTU9WIFIwLCAjMHgyMDAKK1NUUiBSMCwgW1IxMSwjMHgyNF0gICAgICAgICBAIFVTQjIgR2FkZ2V0OiBSWCBGSUZPIHNpemU6IDUxMiBieXRlcworT1JSIFIwLCBSMCwgIzB4MjAwMDAwMAorU1RSIFIwLCBbUjExLCMweDI4XSAgICAgICAgIEAgVVNCMiBHYWRnZXQ6IE5vbi1wZXJpb2RpYyBUWCBGSUZPIHNpemU6IDUxMiBieXRlcworTU9WIFIwLCAjMHgyNgorU1RSIFIwLCBbUjExLCMweDA4XSAgICAgICAgIEAgVVNCMiBHYWRnZXQ6IERNQSBFbmFibGUsIEJ1cnN0IExlbmd0aDogNCwgTWFzayBJbnRlcnJ1cHRzCitNT1YgUjAsICMweDE0MDAKK0FERCBSMCwgUjAsICM4CitTVFIgUjAsIFtSMTEsIzB4MENdICAgICAgICAgQCBVU0IyIEdhZGdldDogUEhZIElGIGlzIDE2Yml0LCBUdXJuYXJvdW5kIDUKK1NUUiBSMSwgW1IxMSwjMHg4MDRdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBTb2Z0IHJlY29ubmVjdAorCitBRFIgUjE0LCBwbXNfY3RybGJ1ZgorT1JSIFI1LCBSOCwgIzB4ODQwMDAwMDAKK0AgZmFsbHRocm91Z2gKKworcG1zX21haW5sb29wOgorICBMRFIgUjMsIFtSMTEsIzB4MTRdICAgICAgICAgQCBHbG9iYWwgVVNCIGludGVycnVwdHMKKyAgVFNUIFIzLCAjMHgwMDAwMTAwMCAgICAgICAgQCBCVVMgcmVzZXQKKyAgQkVRIHBtc19ub3Jlc2V0CisgICAgTU9WIFIwLCAjMHg1MDAKKyAgICBTVFIgUjAsIFtSMTEsIzB4ODA0XQorICAgIE1PViBSMCwgIzQKKyAgICBTVFIgUjAsIFtSMTEsIzB4ODAwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRGV2aWNlIEFkZHJlc3MgMCwgU1RBTEwgb24gbm9uLXplcm8gbGVuZ3RoIHN0YXR1cyBzdGFnZQorICAgIE1PViBSMCwgIzB4ODAwMAorICAgIFNUUiBSMCwgW1IxMSwjMHg5MDBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCAwIElOIENvbnRyb2w6IEFDVElWRQorICAgIFNUUiBSMTAsIFtSMTEsIzB4QjEwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgMCBPVVQgVHJhbnNmZXIgU2l6ZTogNjQgQnl0ZXMsIDEgUGFja2V0LCAxIFNldHVwIFBhY2tldAorICAgIFNUUiBSMTQsIFtSMTEsIzB4QjE0XSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgMCBPVVQgRE1BIEFkZHJlc3M6IHBtc19jdHJsYnVmCisgICAgT1JSIFI2LCBSMCwgIzB4ODQwMDAwMDAKKyAgICBTVFIgUjYsIFtSMTEsIzB4QjAwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgMCBPVVQgQ29udHJvbDogRU5BQkxFIENMRUFSTkFLCisgICAgU1RSIFI4LCBbUjExLCMweDk2MF0gICAgICAgIEAgVVNCMiBHYWRnZXQ6IEVuZHBvaW50IDMgSU4gQ29udHJvbDogQUNUSVZFIEJVTEssIDUxMiBieXRlIHBhY2tldHMKKyAgICBTVFIgUjgsIFtSMTEsIzB4QjgwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgNCBPVVQgQ29udHJvbDogQUNUSVZFIEJVTEssIDUxMiBieXRlIHBhY2tldHMKKyAgICBTVFIgUjcsIFtSMTEsIzB4QjkwXSAgICAgICAgQCBVU0IyIEdhZGdldDogRW5kcG9pbnQgNCBPVVQgVHJhbnNmZXIgU2l6ZTogNTEyIEJ5dGVzLCAxIFBhY2tldAorICAgIFNUUiBSOSwgW1IxMSwjMHhCOTRdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCA0IE9VVCBETUEgQWRkcmVzczogcG1zX3JlY3ZidWYKKyAgICBPUlIgUjQsIFI1LCAjMHgxMDAwMDAwMAorICAgIFNUUiBSNCwgW1IxMSwjMHhCODBdICAgICAgICBAIFVTQjIgR2FkZ2V0OiBFbmRwb2ludCA0IE9VVCBDb250cm9sOiBFTkFCTEUgQ0xFQVJOQUsgREFUQTAKKyAgcG1zX25vcmVzZXQ6CisgIExEUiBSMCwgW1IxMSwjMHg5MDhdICAgICAgICBAIEp1c3QgQUNLIGFsbCBJTiBldmVudHMuLi4KKyAgU1RSIFIwLCBbUjExLCMweDkwOF0KKyAgTERSIFIwLCBbUjExLCMweDk2OF0KKyAgU1RSIFIwLCBbUjExLCMweDk2OF0KKyAgTERSIFIyLCBbUjExLCMweEIwOF0KKyAgTU9WUyBSMiwgUjIgICAgICAgICAgICAgICAgQCBFdmVudCBvbiBPVVQgRVAwCisgIEJFUSBwbXNfbm9lcDBvdXQKKyAgICBUU1QgUjIsICM4ICAgICAgICAgICAgICAgICBAIFNFVFVQIHBoYXNlIGRvbmUKKyAgICBCRVEgcG1zX2NvbnRyb2xkb25lCisgICAgICBMRFJCIFIwLCBbUjE0LCMxXSBAIEdldCByZXF1ZXN0IHR5cGUKKyAgICAgIENNUCBSMCwgIzAKKyAgICAgICAgQkVRIHBtc19HRVRfU1RBVFVTCisgICAgICBDTVAgUjAsICMxCisgICAgICAgIEJFUSBwbXNfQ0xFQVJfRkVBVFVSRQorICAgICAgQ01QIFIwLCAjMworICAgICAgICBCRVEgcG1zX1NFVF9GRUFUVVJFCisgICAgICBDTVAgUjAsICM1CisgICAgICAgIEJFUSBwbXNfU0VUX0FERFJFU1MKKyAgICAgIENNUCBSMCwgIzYKKyAgICAgICAgQkVRIHBtc19HRVRfREVTQ1JJUFRPUgorICAgICAgQ01QIFIwLCAjOAorICAgICAgICBCRVEgcG1zX0dFVF9DT05GSUdVUkFUSU9OCisgICAgICBDTVAgUjAsICM5CisgICAgICAgIEJFUSBwbXNfU0VUX0NPTkZJR1VSQVRJT04KKyAgICAgIHBtc19jdHJsc3RhbGw6CisgICAgICBMRFIgUjAsIFtSMTEsIzB4OTAwXQorICAgICAgT1JSIFIwLCBSMCwgIzB4MDAyMDAwMDAKKyAgICAgIFNUUiBSMCwgW1IxMSwjMHg5MDBdICAgICAgICBAIFN0YWxsIElOIEVQMAorICAgICAgTERSIFIwLCBbUjExLCMweEIwMF0KKyAgICAgIE9SUiBSMCwgUjAsICMweDAwMjAwMDAwCisgICAgICBTVFIgUjAsIFtSMTEsIzB4QjAwXSAgICAgICAgQCBTdGFsbCBPVVQgRVAwCisgICAgcG1zX2NvbnRyb2xkb25lOgorICAgIFNUUiBSMTAsIFtSMTEsIzB4QjEwXSAgICAgICAgQCBPVVQgRVAwOiA2NCBCeXRlcywgMSBQYWNrZXQsIDEgU2V0dXAgUGFja2V0CisgICAgU1RSIFIxNCwgW1IxMSwjMHhCMTRdICAgICAgICBAIE9VVCBFUDA6IERNQSBhZGRyZXNzCisgICAgU1RSIFI2LCBbUjExLCMweEIwMF0gICAgICAgIEAgT1VUIEVQMDogRW5hYmxlIENsZWFyTkFLCisgIHBtc19ub2VwMG91dDoKKyAgU1RSIFIyLCBbUjExLCMweEIwOF0gICAgICAgIEAgQUNLIGl0LCB3aGF0ZXZlciBpdCB3YXMuLi4KKyAgTERSIFIyLCBbUjExLCMweEI4OF0KKyAgTU9WUyBSMiwgUjIgICAgICAgICAgICAgICAgQCBFdmVudCBvbiBPVVQgRVA0CisgIEJFUSBwbXNfbm9lcDFvdXQKKyAgICBUU1QgUjIsICMxICAgICAgICAgICAgICAgICBAIFhGRVIgY29tcGxldGUKKyAgICBCRVEgcG1zX2RhdGFkb25lCisgICAgICBMRFIgUjAsIHBtc18wMDAwMDFGRgorICAgICAgTERSIFIxLCBwbXNfcmVjdmJ1Zis0CisgICAgICBBREQgUjAsIFIwLCBSMQorICAgICAgTU9WIFIwLCBSMCxMU1IjOQorICAgICAgT1JSIFIxLCBSMSwgUjAsTFNMIzE5ICAgICAgQCBOdW1iZXIgb2YgcGFja2V0cworICAgICAgTERSIFIwLCBwbXNfcmVjdmJ1ZgorICAgICAgU1RSIFIxLCBbUjExLCMweDk3MF0gICAgICAgIEAgRVAzIElOOiBOdW1iZXIgb2YgcGFja2V0cywgc2l6ZQorICAgICAgU1RSIFIwLCBbUjExLCMweDk3NF0gICAgICAgIEAgRVAzIElOOiBETUEgYWRkcmVzcworICAgICAgU1RSIFI1LCBbUjExLCMweDk2MF0gICAgICAgIEAgRVAzIElOOiBFbmFibGUgQ2xlYXJOQUsKKyAgICBwbXNfZGF0YWRvbmU6CisgICAgU1RSIFI3LCBbUjExLCMweEI5MF0gICAgICAgIEAgT1VUIEVQNDogNTEyIEJ5dGVzLCAxIFBhY2tldAorICAgIFNUUiBSOSwgW1IxMSwjMHhCOTRdICAgICAgICBAIE91dCBFUDQ6IERNQSBhZGRyZXNzCisgICAgU1RSIFI1LCBbUjExLCMweEI4MF0gICAgICAgIEAgT3V0IEVQNDogRW5hYmxlIENsZWFyTkFLCisgIHBtc19ub2VwMW91dDoKKyAgU1RSIFIyLCBbUjExLCMweEI4OF0gICAgICAgIEAgQUNLIGl0LCB3aGF0ZXZlciBpdCB3YXMuLi4KKyAgU1RSIFIzLCBbUjExLCMweDE0XSAgICAgICAgIEAgQUNLIGdsb2JhbCBpbnRzCitCIHBtc19tYWlubG9vcAorCitwbXNfQ0xFQVJfRkVBVFVSRToKKyAgTERSQiBSMCwgW1IxNF0KKyAgQ01QIFIwLCAjMgorICBMRFJFUSBSMCwgW1IxNCwjMl0KKyAgQklDRVEgUjAsIFIwLCAjMHgwMDgwMDAwMAorICBDTVBFUSBSMCwgIzB4MDAwMTAwMDAKK0AgZmFsbHRocm91Z2gKKworcG1zX1NFVF9DT05GSUdVUkFUSU9OOgorICBPUlJFUSBSMCwgUjgsICMweDEwMDAwMDAwCisgIFNUUkVRIFIwLCBbUjExLCMweDk2MF0gICAgICBAIEVQMyBJTjogU2V0IERBVEEwIFBJRAorICBTVFJFUSBSNCwgW1IxMSwjMHhCODBdICAgICAgQCBFUDQgT1VUOiBTZXQgREFUQTAgUElECitCIHBtc19TRVRfRkVBVFVSRSAgICAgICAgICAgICAgQCB6ZXJvLWxlbmd0aCBBQ0sKKworcG1zX0dFVF9DT05GSUdVUkFUSU9OOgorICBNT1YgUjEsICMxCisgIFNUUiBSMSwgW1IxNF0KK0AgZmFsbHRocm91Z2gKKworcG1zX2N0cmxzZW5kOgorICBPUlIgUjAsIFIxLCAjMHgwMDA4MDAwMCAgICBAIDEgUGFja2V0CisgIFNUUiBSMCwgW1IxMSwjMHg5MTBdICAgICAgICBAIEVQMCBJTjogMSBQYWNrZXQsIFNpemUgYXMgaW4gUjEKKyAgU1RSIFIxNCwgW1IxMSwjMHg5MTRdICAgICAgICBAIEVQMCBJTjogRE1BIGFkZHJlc3MKKyAgT1JSIFIwLCBSNiwgIzB4MTgwMAorICBTVFIgUjAsIFtSMTEsIzB4OTAwXSAgICAgICAgQCBFUDAgSU46IEVuYWJsZSBDbGVhck5BSworICBBRFIgUjE0LCBwbXNfY3RybGJ1ZgorQiBwbXNfY29udHJvbGRvbmUKKworcG1zX0dFVF9ERVNDUklQVE9SOgorICBMRFJCIFIwLCBbUjE0LCMzXSAgICAgICAgICAgQCBEZXNjcmlwdG9yIHR5cGUKKyAgQ01QIFIwLCAjMQorICAgIEFEUkVRIFIxNCwgcG1zX2RldmljZWRlc2NyaXB0b3IKKyAgICBCRVEgcG1zX3NlbmRkZXNjcmlwdG9yCisgIENNUCBSMCwgIzIKKyAgICBBRFJFUSBSMTQsIHBtc19jb25maWd1cmF0aW9uZGVzY3JpcHRvcgorICAgIE1PVkVRIFIxLCAjMHgyMAorICAgIEJFUSBwbXNfc2VuZGRlc2NyaXB0b3JjdXN0b21zaXplCisgIENNUCBSMCwgIzMKKyAgQk5FIHBtc19jdHJsc3RhbGwKKyAgTERSQiBSMCwgW1IxNCwjMl0gICAgICAgICAgIEAgU3RyaW5nIGRlc2NyaXB0b3IgaW5kZXgKKyAgQ01QIFIwLCAjMAorICAgIExEUkVRIFIwLCBwbXNfbGFuZ3N0cmluZ2Rlc2NyaXB0b3IKKyAgICBTVFJFUSBSMCwgW1IxNF0KKyAgICBCRVEgcG1zX3NlbmRkZXNjcmlwdG9yCisgIENNUCBSMCwgIzEKKyAgQ01QTkUgUjAsICMyCisgICAgQURSRVEgUjE0LCBwbXNfZGV2bmFtZXN0cmluZ2Rlc2NyaXB0b3IKKyAgQk5FIHBtc19jdHJsc3RhbGwKK0AgZmFsbHRocm91Z2gKKworcG1zX3NlbmRkZXNjcmlwdG9yOgorICBMRFJCIFIxLCBbUjE0XSAgICAgICAgICAgICAgQCBEZXNjcmlwdG9yIGxlbmd0aAorQCBmYWxsdGhyb3VnaAorCitwbXNfc2VuZGRlc2NyaXB0b3JjdXN0b21zaXplOgorICBMRFJIIFIwLCBwbXNfY3RybGJ1Zis2ICAgICAgICBAIFJlcXVlc3RlZCBsZW5ndGgKKyAgQ01QIFIwLCBSMQorICBNT1ZMTyBSMSwgUjAKK0IgcG1zX2N0cmxzZW5kCisKK3Btc19TRVRfQUREUkVTUzoKKyAgTERSSCBSMSwgW1IxNCwjMl0gICAgICAgIEAgbmV3IGFkZHJlc3MKKyAgTERSIFIwLCBbUjExLCMweDgwMF0KKyAgQklDIFIwLCBSMCwgIzB4MDAwMDA3RjAKKyAgT1JSIFIwLCBSMCwgUjEsTFNMIzQKKyAgU1RSIFIwLCBbUjExLCMweDgwMF0gICAgICAgIEAgc2V0IG5ldyBhZGRyZXNzCitAIGZhbGx0aHJvdWdoCisKK3Btc19TRVRfRkVBVFVSRToKKyAgTU9WIFIxLCAjMCAgICAgICAgICAgICAgICAgQCB6ZXJvLWxlbmd0aCBBQ0sKK0IgcG1zX2N0cmxzZW5kCisKK3Btc18yMDgwMzE4MDoKKy53b3JkIDB4MjA4MDMxODAKKworLmx0b3JnCisKKy5hbGlnbiA0CisKK3Btc19jb25maWd1cmF0aW9uZGVzY3JpcHRvcjoKKy53b3JkIDB4MDAyMDAyMDkKKy53b3JkIDB4QzAwMDAxMDEKKy53b3JkIDB4MDAwNDA5MzIKKy53b3JkIDB4RkZGRjAyMDAKKy53b3JkIDB4MDUwNzAwRkYKKy53b3JkIDB4MDIwMDAyMDQKKy53b3JkIDB4ODMwNTA3MDEKKy53b3JkIDB4MDEwMjAwMDIKKworcG1zX2RldmljZWRlc2NyaXB0b3I6Cisud29yZCAweDAyMDAwMTEyCisud29yZCAweDQwRkZGRkZGCisud29yZCAweEExMTJGRkZGCisud29yZCAweDAyMDEwMDAxCisud29yZCAweDAwMDEwMTAwCisKK3Btc18wMDA4MDIwMDoKKy53b3JkIDB4MDAwODAyMDAKKworcG1zXzIwMDgwMDQwOgorLndvcmQgMHgyMDA4MDA0MAorCitwbXNfMDAwMDAxRkY6Cisud29yZCAweDAwMDAwMUZGCisKK3Btc19kZXZuYW1lc3RyaW5nZGVzY3JpcHRvcjoKKy53b3JkIDB4MDA1MjAzMEMKKy53b3JkIDB4MDA1MDAwNDIKKy53b3JkIDB4MDA1MzAwNEQKKworcG1zX2xhbmdzdHJpbmdkZXNjcmlwdG9yOgorLndvcmQgMHgwNDA5MDMwNAorCitwbXNfY3RybGJ1ZjoKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKy53b3JkIDAKKworcG1zX3JlY3ZidWY6Cisud29yZCAwCisud29yZCAwCisKK3Btc19HRVRfU1RBVFVTOgorICBMRFJCIFIwLCBbUjE0XQorICBDTVAgUjAsICMweDgwCisgIFNUUkVRIFIxMiwgW1IxNF0KKyAgU1RSTkUgUjEzLCBbUjE0XQorICBNT1YgUjEsICMyCitCIHBtc19jdHJsc2VuZAorCisuc2l6ZSBwb3N0X21vcnRlbV9zdHViLCAuLXBvc3RfbW9ydGVtX3N0dWIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9kZWJ1Zy1zNWw4NzAyLmMgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvZGVidWctczVsODcwMi5jCmluZGV4IDUwMDFkNjEuLmY0OTU5NWEgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9kZWJ1Zy1zNWw4NzAyLmMKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2RlYnVnLXM1bDg3MDIuYwpAQCAtMSwxNjYgKzEsMTY2IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLg0KLSAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXw0KLSAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLw0KLSAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8DQotICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcDQotICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvDQotICogJElkOiBkZWJ1Zy1zNWw4NzAwLmMgMjg3MTkgMjAxMC0xMi0wMSAxODozNTowMVogQnVzY2hlbCAkDQotICoNCi0gKiBDb3B5cmlnaHQgwqkgMjAwOCBSYWZhw6tsIENhcnLDqQ0KLSAqDQotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQotICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDINCi0gKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCi0gKg0KLSAqIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCi0gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqDQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotDQotI2luY2x1ZGUgPHN0ZGJvb2wuaD4NCi0jaW5jbHVkZSAiY29uZmlnLmgiDQotI2luY2x1ZGUgImtlcm5lbC5oIg0KLSNpbmNsdWRlICJkZWJ1Zy10YXJnZXQuaCINCi0jaW5jbHVkZSAiYnV0dG9uLmgiDQotI2luY2x1ZGUgImxjZC5oIg0KLSNpbmNsdWRlICJmb250LmgiDQotI2luY2x1ZGUgInN0b3JhZ2UuaCINCi0jaW5jbHVkZSAicG93ZXIuaCINCi0jaW5jbHVkZSAicG11LXRhcmdldC5oIg0KLSNpbmNsdWRlICJwY20tdGFyZ2V0LmgiDQotDQotLyogIFNrZWxldG9uIGZvciBhZGRpbmcgdGFyZ2V0IHNwZWNpZmljIGRlYnVnIGluZm8gdG8gdGhlIGRlYnVnIG1lbnUNCi0gKi8NCi0NCi0jZGVmaW5lIF9ERUJVR19QUklOVEYoYSwgdmFyYXJncy4uLikgbGNkX3B1dHNmKDAsIGxpbmUrKywgKGEpLCAjI3ZhcmFyZ3MpOw0KLQ0KLWV4dGVybiBpbnQgbGNkX3R5cGU7DQotYm9vbCBkYmdfaHdfaW5mbyh2b2lkKQ0KLXsNCi0gICAgaW50IGxpbmU7DQotICAgIGludCBpOw0KLSAgICB1bnNpZ25lZCBpbnQgc3RhdGUgPSAwOw0KLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgbWF4X3N0YXRlcz0zOw0KLQ0KLSAgICBsY2RfY2xlYXJfZGlzcGxheSgpOw0KLSAgICBsY2Rfc2V0Zm9udChGT05UX1NZU0ZJWEVEKTsNCi0NCi0gICAgc3RhdGU9MDsNCi0gICAgd2hpbGUoMSkNCi0gICAgew0KLSAgICAgICAgbGNkX2NsZWFyX2Rpc3BsYXkoKTsNCi0gICAgICAgIGxpbmUgPSAwOw0KLQ0KLSAgICAgICAgaWYoc3RhdGUgPT0gMCkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJDUFU6Iik7DQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiY3VycmVudF90aWNrOiAlZCIsICh1bnNpZ25lZCBpbnQpY3VycmVudF90aWNrKTsNCi0gICAgICAgICAgICBsaW5lKys7DQotDQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiTENEIHR5cGU6ICVkIiwgbGNkX3R5cGUpOw0KLSAgICAgICAgICAgIGxpbmUrKzsNCi0gICAgICAgIH0NCi0gICAgICAgIGVsc2UgaWYoc3RhdGU9PTEpDQotICAgICAgICB7DQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiUE1VOiIpOw0KLSAgICAgICAgICAgIGZvcihpPTA7aTw3O2krKykNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIGNoYXIgKmRldmljZVtdID0geyIodW5rbm93bikiLCANCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSIsIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHVua25vd24pIiwgDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIodW5rbm93bikiLCANCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSIsIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHVua25vd24pIiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSJ9Ow0KLSAgICAgICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJsZG8lZCAlczogJWRtViAlcyIsaSwNCi0gICAgICAgICAgICAgICAgICAgIHBtdV9yZWFkKDB4MmUgKyAoaSA8PCAxKSk/IiBvbiI6Im9mZiIsDQotICAgICAgICAgICAgICAgICAgICA5MDAgKyBwbXVfcmVhZCgweDJkICsgKGkgPDwgMSkpKjEwMCwNCi0gICAgICAgICAgICAgICAgICAgIGRldmljZVtpXSk7DQotICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImNwdSB2b2x0YWdlOiAlZG1WIiw2MjUgKyBwbXVfcmVhZCgweDFlKSoyNSk7DQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigibWVtb3J5IHZvbHRhZ2U6ICVkbVYiLDYyNSArIHBtdV9yZWFkKDB4MjIpKjI1KTsNCi0gICAgICAgICAgICBsaW5lKys7DQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiY2hhcmdpbmc6ICVzIiwgY2hhcmdpbmdfc3RhdGUoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOw0KLSAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImJhY2tsaWdodDogJXMiLCBwbXVfcmVhZCgweDI5KSA/ICJvbiIgOiAib2ZmIik7DQotICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiYnJpZ2h0bmVzcyB2YWx1ZTogJWQiLCBwbXVfcmVhZCgweDI4KSk7DQotICAgICAgICB9DQotICAgICAgICBlbHNlIGlmKHN0YXRlPT0yKQ0KLSAgICAgICAgew0KLSAgICAgICAgICAgIF9ERUJVR19QUklOVEYoIkF1ZGlvIERNQToiKTsNCi0gICAgICAgICAgICBfREVCVUdfUFJJTlRGKCI+JTA4WCAlMDhYICUwOFggJTA4WCAlMDhYIiwgRE1BQzBDMENPTkZJRywgRE1BQzBDMFNSQ0FERFIsDQotICAgICAgICAgICAgICAgICAgICAgICAgICBETUFDMEMwREVTVEFERFIsIERNQUMwQzBORVhUTExJLCBETUFDMEMwQ09OVFJPTCk7DQotICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgUENNX0xMSUNPVU5UOyBpKyspDQotICAgICAgICAgICAgICAgIF9ERUJVR19QUklOVEYoIiUwOFg6ICUwOFggJTA4WCAlMDhYICUwOFgiLCAmcGNtX2xsaVtpXSwgcGNtX2xsaVtpXS5zcmNhZGRyLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjbV9sbGlbaV0uZHN0YWRkciwgcGNtX2xsaVtpXS5uZXh0bGxpLCBwY21fbGxpW2ldLmNvbnRyb2wpOw0KLSAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImNodW5rOiAlMDhYICUwOFgiLCBwY21fY2h1bmtzaXplLCBwY21fcmVtYWluaW5nKTsNCi0gICAgICAgIH0NCi0gICAgICAgIGVsc2UNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBzdGF0ZT0wOw0KLSAgICAgICAgfQ0KLQ0KLQ0KLSAgICAgICAgbGNkX3VwZGF0ZSgpOyANCi0gICAgICAgIHN3aXRjaChidXR0b25fZ2V0X3dfdG1vKEhaLzIwKSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBjYXNlIEJVVFRPTl9TQ1JPTExfQkFDSzoNCi0gICAgICAgICAgICAgICAgaWYoc3RhdGUhPTApIHN0YXRlLS07DQotICAgICAgICAgICAgICAgIGJyZWFrOw0KLQ0KLSAgICAgICAgICAgIGNhc2UgQlVUVE9OX1NDUk9MTF9GV0Q6DQotICAgICAgICAgICAgICAgIGlmKHN0YXRlIT1tYXhfc3RhdGVzLTEpDQotICAgICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlKys7DQotICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgYnJlYWs7DQotDQotICAgICAgICAgICAgY2FzZSBERUJVR19DQU5DRUw6DQotICAgICAgICAgICAgY2FzZSBCVVRUT05fUkVMOg0KLSAgICAgICAgICAgICAgICBsY2Rfc2V0Zm9udChGT05UX1VJKTsNCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KLSAgICAgICAgfQ0KLSAgICB9DQotDQotICAgIGxjZF9zZXRmb250KEZPTlRfVUkpOw0KLSAgICByZXR1cm4gZmFsc2U7DQotfQ0KLQ0KLWJvb2wgZGJnX3BvcnRzKHZvaWQpDQotew0KLSAgICBpbnQgbGluZTsNCi0NCi0gICAgbGNkX3NldGZvbnQoRk9OVF9TWVNGSVhFRCk7DQotDQotICAgIHdoaWxlKDEpDQotICAgIHsNCi0gICAgICAgIGxjZF9jbGVhcl9kaXNwbGF5KCk7DQotICAgICAgICBsaW5lID0gMDsNCi0gICAgICAgIA0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAgMDogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDApKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDE6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxKSk7DQotICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPICAyOiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoMikpOw0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAgMzogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDMpKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDQ6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg0KSk7DQotICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPICA1OiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoNSkpOw0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAgNjogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDYpKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDc6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg3KSk7DQotICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPICA4OiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoOCkpOw0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAgOTogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDkpKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gMTA6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxMCkpOw0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAxMTogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDExKSk7DQotICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPIDEyOiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoMTIpKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gMTM6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxMykpOw0KLSAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAxNDogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDE0KSk7DQotICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPIDE1OiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoMTUpKTsNCi0gICAgICAgIF9ERUJVR19QUklOVEYoIlVTRUMgICA6ICUwOHgiLCh1bnNpZ25lZCBpbnQpVVNFQ19USU1FUik7DQotDQotICAgICAgICBsY2RfdXBkYXRlKCk7DQotICAgICAgICBpZiAoYnV0dG9uX2dldF93X3RtbyhIWi8xMCkgPT0gKERFQlVHX0NBTkNFTHxCVVRUT05fUkVMKSkNCi0gICAgICAgICAgICBicmVhazsNCi0gICAgfQ0KLSAgICBsY2Rfc2V0Zm9udChGT05UX1VJKTsNCi0gICAgcmV0dXJuIGZhbHNlOw0KLX0NCi0NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICBfX19fX19fX19fICAgICAgICAgICAgICAgX18gICBfX18uCisgKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18KKyAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLworICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwKKyAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXAorICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCisgKiAkSWQ6IGRlYnVnLXM1bDg3MDAuYyAyODcxOSAyMDEwLTEyLTAxIDE4OjM1OjAxWiBCdXNjaGVsICQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAwOCBSYWZhw6tsIENhcnLDqQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJrZXJuZWwuaCIKKyNpbmNsdWRlICJkZWJ1Zy10YXJnZXQuaCIKKyNpbmNsdWRlICJidXR0b24uaCIKKyNpbmNsdWRlICJsY2QuaCIKKyNpbmNsdWRlICJmb250LmgiCisjaW5jbHVkZSAic3RvcmFnZS5oIgorI2luY2x1ZGUgInBvd2VyLmgiCisjaW5jbHVkZSAicG11LXRhcmdldC5oIgorI2luY2x1ZGUgInBjbS10YXJnZXQuaCIKKworLyogIFNrZWxldG9uIGZvciBhZGRpbmcgdGFyZ2V0IHNwZWNpZmljIGRlYnVnIGluZm8gdG8gdGhlIGRlYnVnIG1lbnUKKyAqLworCisjZGVmaW5lIF9ERUJVR19QUklOVEYoYSwgdmFyYXJncy4uLikgbGNkX3B1dHNmKDAsIGxpbmUrKywgKGEpLCAjI3ZhcmFyZ3MpOworCitleHRlcm4gaW50IGxjZF90eXBlOworYm9vbCBkYmdfaHdfaW5mbyh2b2lkKQoreworICAgIGludCBsaW5lOworICAgIGludCBpOworICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgaW50IG1heF9zdGF0ZXM9MzsKKworICAgIGxjZF9jbGVhcl9kaXNwbGF5KCk7CisgICAgbGNkX3NldGZvbnQoRk9OVF9TWVNGSVhFRCk7CisKKyAgICBzdGF0ZT0wOworICAgIHdoaWxlKDEpCisgICAgeworICAgICAgICBsY2RfY2xlYXJfZGlzcGxheSgpOworICAgICAgICBsaW5lID0gMDsKKworICAgICAgICBpZihzdGF0ZSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJDUFU6Iik7CisgICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJjdXJyZW50X3RpY2s6ICVkIiwgKHVuc2lnbmVkIGludCljdXJyZW50X3RpY2spOworICAgICAgICAgICAgbGluZSsrOworCisgICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJMQ0QgdHlwZTogJWQiLCBsY2RfdHlwZSk7CisgICAgICAgICAgICBsaW5lKys7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihzdGF0ZT09MSkKKyAgICAgICAgeworICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiUE1VOiIpOworICAgICAgICAgICAgZm9yKGk9MDtpPDc7aSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoYXIgKmRldmljZVtdID0geyIodW5rbm93bikiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHVua25vd24pIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIodW5rbm93bikiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHVua25vd24pIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih1bmtub3duKSJ9OworICAgICAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImxkbyVkICVzOiAlZG1WICVzIixpLAorICAgICAgICAgICAgICAgICAgICBwbXVfcmVhZCgweDJlICsgKGkgPDwgMSkpPyIgb24iOiJvZmYiLAorICAgICAgICAgICAgICAgICAgICA5MDAgKyBwbXVfcmVhZCgweDJkICsgKGkgPDwgMSkpKjEwMCwKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImNwdSB2b2x0YWdlOiAlZG1WIiw2MjUgKyBwbXVfcmVhZCgweDFlKSoyNSk7CisgICAgICAgICAgICBfREVCVUdfUFJJTlRGKCJtZW1vcnkgdm9sdGFnZTogJWRtViIsNjI1ICsgcG11X3JlYWQoMHgyMikqMjUpOworICAgICAgICAgICAgbGluZSsrOworICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiY2hhcmdpbmc6ICVzIiwgY2hhcmdpbmdfc3RhdGUoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiYmFja2xpZ2h0OiAlcyIsIHBtdV9yZWFkKDB4MjkpID8gIm9uIiA6ICJvZmYiKTsKKyAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImJyaWdodG5lc3MgdmFsdWU6ICVkIiwgcG11X3JlYWQoMHgyOCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoc3RhdGU9PTIpCisgICAgICAgIHsKKyAgICAgICAgICAgIF9ERUJVR19QUklOVEYoIkF1ZGlvIERNQToiKTsKKyAgICAgICAgICAgIF9ERUJVR19QUklOVEYoIj4lMDhYICUwOFggJTA4WCAlMDhYICUwOFgiLCBETUFDMEMwQ09ORklHLCBETUFDMEMwU1JDQUREUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BQzBDMERFU1RBRERSLCBETUFDMEMwTkVYVExMSSwgRE1BQzBDMENPTlRST0wpOworICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgUENNX0xMSUNPVU5UOyBpKyspCisgICAgICAgICAgICAgICAgX0RFQlVHX1BSSU5URigiJTA4WDogJTA4WCAlMDhYICUwOFggJTA4WCIsICZwY21fbGxpW2ldLCBwY21fbGxpW2ldLnNyY2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY21fbGxpW2ldLmRzdGFkZHIsIHBjbV9sbGlbaV0ubmV4dGxsaSwgcGNtX2xsaVtpXS5jb250cm9sKTsKKyAgICAgICAgICAgIF9ERUJVR19QUklOVEYoImNodW5rOiAlMDhYICUwOFgiLCBwY21fY2h1bmtzaXplLCBwY21fcmVtYWluaW5nKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRlPTA7CisgICAgICAgIH0KKworCisgICAgICAgIGxjZF91cGRhdGUoKTsgCisgICAgICAgIHN3aXRjaChidXR0b25fZ2V0X3dfdG1vKEhaLzIwKSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBCVVRUT05fU0NST0xMX0JBQ0s6CisgICAgICAgICAgICAgICAgaWYoc3RhdGUhPTApIHN0YXRlLS07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgQlVUVE9OX1NDUk9MTF9GV0Q6CisgICAgICAgICAgICAgICAgaWYoc3RhdGUhPW1heF9zdGF0ZXMtMSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERFQlVHX0NBTkNFTDoKKyAgICAgICAgICAgIGNhc2UgQlVUVE9OX1JFTDoKKyAgICAgICAgICAgICAgICBsY2Rfc2V0Zm9udChGT05UX1VJKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsY2Rfc2V0Zm9udChGT05UX1VJKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgZGJnX3BvcnRzKHZvaWQpCit7CisgICAgaW50IGxpbmU7CisKKyAgICBsY2Rfc2V0Zm9udChGT05UX1NZU0ZJWEVEKTsKKworICAgIHdoaWxlKDEpCisgICAgeworICAgICAgICBsY2RfY2xlYXJfZGlzcGxheSgpOworICAgICAgICBsaW5lID0gMDsKKyAgICAgICAgCisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDA6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgwKSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDE6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxKSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDI6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgyKSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDM6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgzKSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDQ6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg0KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDU6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg1KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDY6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg2KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDc6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg3KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDg6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg4KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gIDk6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCg5KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gMTA6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxMCkpOworICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPIDExOiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoMTEpKTsKKyAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAxMjogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDEyKSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIkdQSU8gMTM6ICUwOHgiLCh1bnNpZ25lZCBpbnQpUERBVCgxMykpOworICAgICAgICBfREVCVUdfUFJJTlRGKCJHUElPIDE0OiAlMDh4IiwodW5zaWduZWQgaW50KVBEQVQoMTQpKTsKKyAgICAgICAgX0RFQlVHX1BSSU5URigiR1BJTyAxNTogJTA4eCIsKHVuc2lnbmVkIGludClQREFUKDE1KSk7CisgICAgICAgIF9ERUJVR19QUklOVEYoIlVTRUMgICA6ICUwOHgiLCh1bnNpZ25lZCBpbnQpVVNFQ19USU1FUik7CisKKyAgICAgICAgbGNkX3VwZGF0ZSgpOworICAgICAgICBpZiAoYnV0dG9uX2dldF93X3RtbyhIWi8xMCkgPT0gKERFQlVHX0NBTkNFTHxCVVRUT05fUkVMKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBsY2Rfc2V0Zm9udChGT05UX1VJKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9kZWJ1Zy10YXJnZXQuaCBiL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9kZWJ1Zy10YXJnZXQuaAppbmRleCA1NWVhNDk3Li5hNDkzYzBlIDEwMDY0NAotLS0gYS9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvZGVidWctdGFyZ2V0LmgKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2RlYnVnLXRhcmdldC5oCkBAIC0xLDMzICsxLDMzIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLg0KLSAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXw0KLSAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLw0KLSAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8DQotICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcDQotICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvDQotICogJElkOiBkZWJ1Zy10YXJnZXQuaCAyODUyMiAyMDEwLTExLTA2IDE0OjI0OjI1WiB3b2R6ICQNCi0gKg0KLSAqIENvcHlyaWdodCAoQykgMjAwNyBieSBLYXJsIEt1cmJqdW4NCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyDQotICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICoNCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZDQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLQ0KLSNpZm5kZWYgX0RFQlVHX1RBUkdFVF9IXw0KLSNkZWZpbmUgX0RFQlVHX1RBUkdFVF9IXw0KLQ0KLSNpbmNsdWRlIDxzdGRib29sLmg+DQotDQotI2RlZmluZSBERUJVR19DQU5DRUwgQlVUVE9OX01FTlUNCi0NCi1ib29sIGRiZ19od19pbmZvKHZvaWQpOw0KLWJvb2wgZGJnX3BvcnRzKHZvaWQpOw0KLQ0KLSNlbmRpZiAvKiBfREVCVUdfVEFSR0VUX0hfICovDQotDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLgorICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisgKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8KKyAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8CisgKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLworICogJElkOiBkZWJ1Zy10YXJnZXQuaCAyODUyMiAyMDEwLTExLTA2IDE0OjI0OjI1WiB3b2R6ICQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgYnkgS2FybCBLdXJianVuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9ERUJVR19UQVJHRVRfSF8KKyNkZWZpbmUgX0RFQlVHX1RBUkdFVF9IXworCisjaW5jbHVkZSA8c3RkYm9vbC5oPgorCisjZGVmaW5lIERFQlVHX0NBTkNFTCBCVVRUT05fTUVOVQorCitib29sIGRiZ19od19pbmZvKHZvaWQpOworYm9vbCBkYmdfcG9ydHModm9pZCk7CisKKyNlbmRpZiAvKiBfREVCVUdfVEFSR0VUX0hfICovCisKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9pMmMtczVsODcwMi5jIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2kyYy1zNWw4NzAyLmMKaW5kZXggMjk0ZTViNS4uNGQwZTQxOCAxMDA2NDQKLS0tIGEvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2kyYy1zNWw4NzAyLmMKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2kyYy1zNWw4NzAyLmMKQEAgLTEsMTk2ICsxLDE5NiBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0gKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18NCi0gKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0gKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXA0KLSAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSAqICRJZDogaTJjLXM1bDg3MDAuYyAyODU4OSAyMDEwLTExLTE0IDE1OjE5OjMwWiB0aGVzZXZlbiAkDQotICoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgYnkgQmVydHJpayBTaWtrZW4NCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyDQotICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICoNCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZDQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLSANCi0jaW5jbHVkZSAiY29uZmlnLmgiDQotI2luY2x1ZGUgInN5c3RlbS5oIg0KLSNpbmNsdWRlICJrZXJuZWwuaCINCi0jaW5jbHVkZSAiaTJjLXM1bDg3MDIuaCINCi0NCi0vKiAgRHJpdmVyIGZvciB0aGUgczVsODcwMCBidWlsdC1pbiBJMkMgY29udHJvbGxlciBpbiBtYXN0ZXIgbW9kZQ0KLSAgICANCi0gICAgQm90aCB0aGUgaTJjX3JlYWQgYW5kIGkyY193cml0ZSBmdW5jdGlvbiB0YWtlIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOg0KLSAgICAqIHNsYXZlLCB0aGUgYWRkcmVzcyBvZiB0aGUgaTJjIHNsYXZlIGRldmljZSB0byByZWFkIGZyb20gLyB3cml0ZSB0bw0KLSAgICAqIGFkZHJlc3MsIG9wdGlvbmFsIHN1Yi1hZGRyZXNzIGluIHRoZSBpMmMgc2xhdmUgKHVudXNlZCBpZiAtMSkNCi0gICAgKiBsZW4sIG51bWJlciBvZiBieXRlcyB0byBiZSB0cmFuc2ZlcmVkDQotICAgICogZGF0YSwgcG9pbnRlciB0byBkYXRhIHRvIGJlIHRyYW5zZmVyZWQNCi0gICAgQSByZXR1cm4gdmFsdWUgPCAwIGluZGljYXRlcyBhbiBlcnJvci4NCi0gICAgDQotICAgIE5vdGU6DQotICAgICogYmxvY2tzIHRoZSBjYWxsaW5nIHRocmVhZCBmb3IgdGhlIGVudGlyZSBkdXJhdG9uIG9mIHRoZSBpMmMgdHJhbnNmZXIgYnV0DQotICAgICAgdXNlcyB3YWtldXBfd2FpdC93YWtldXBfc2lnbmFsIHRvIGFsbG93IG90aGVyIHRocmVhZHMgdG8gcnVuLg0KLSAgICAqIEFDSyBmcm9tIHNsYXZlIGlzIG5vdCBjaGVja2VkLCBzbyBmdW5jdGlvbnMgbmV2ZXIgcmV0dXJuIGFuIGVycm9yDQotKi8NCi0NCi1zdGF0aWMgc3RydWN0IG11dGV4IGkyY19tdHhbMl07DQotDQotc3RhdGljIHZvaWQgaTJjX29uKGludCBidXMpDQotew0KLSAgICAvKiBlbmFibGUgSTJDIGNsb2NrICovDQotICAgIFBXUkNPTigxKSAmPSB+KDEgPDwgNCk7DQotDQotICAgIElJQ0NPTihidXMpID0gKDEgPDwgNykgfCAvKiBBQ0tfR0VOICovDQotICAgICAgICAgICAgICAgICAgKDAgPDwgNikgfCAvKiBDTEtTRUwgPSBQQ0xLLzE2ICovDQotICAgICAgICAgICAgICAgICAgKDEgPDwgNSkgfCAvKiBJTlRfRU4gKi8NCi0gICAgICAgICAgICAgICAgICAoMSA8PCA0KSB8IC8qIElSUSBjbGVhciAqLw0KLSAgICAgICAgICAgICAgICAgICg3IDw8IDApOyAgLyogQ0tfUkVHICovDQotDQotICAgIC8qIHNlcmlhbCBvdXRwdXQgb24gKi8NCi0gICAgSUlDU1RBVChidXMpID0gKDEgPDwgNCk7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkIGkyY19vZmYoaW50IGJ1cykNCi17DQotICAgIC8qIHNlcmlhbCBvdXRwdXQgb2ZmICovDQotICAgIElJQ1NUQVQoYnVzKSA9IDA7DQotDQotICAgIC8qIGRpc2FibGUgSTJDIGNsb2NrICovDQotICAgIFBXUkNPTigxKSB8PSAoMSA8PCA0KTsNCi19DQotDQotdm9pZCBpMmNfaW5pdCgpDQotew0KLSAgICBtdXRleF9pbml0KCZpMmNfbXR4WzBdKTsNCi0gICAgbXV0ZXhfaW5pdCgmaTJjX210eFsxXSk7DQotfQ0KLQ0KLWludCBpMmNfd3JpdGUoaW50IGJ1cywgdW5zaWduZWQgY2hhciBzbGF2ZSwgaW50IGFkZHJlc3MsIGludCBsZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpDQotew0KLSAgICBtdXRleF9sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICBpMmNfb24oYnVzKTsNCi0gICAgbG9uZyB0aW1lb3V0ID0gY3VycmVudF90aWNrICsgSFogLyA1MDsNCi0NCi0gICAgLyogU1RBUlQgKi8NCi0gICAgSUlDRFMoYnVzKSA9IHNsYXZlICYgfjE7DQotICAgIElJQ1NUQVQoYnVzKSA9IDB4RjA7DQotICAgIElJQ0NPTihidXMpID0gMHhCMzsNCi0gICAgd2hpbGUgKChJSUNDT04oYnVzKSAmIDB4MTApID09IDApDQotICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQ0KLSAgICAgICAgew0KLSAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsNCi0gICAgICAgICAgICByZXR1cm4gMTsNCi0gICAgICAgIH0NCi0NCi0gICAgDQotICAgIGlmIChhZGRyZXNzID49IDApIHsNCi0gICAgICAgIC8qIHdyaXRlIGFkZHJlc3MgKi8NCi0gICAgICAgIElJQ0RTKGJ1cykgPSBhZGRyZXNzOw0KLSAgICAgICAgSUlDQ09OKGJ1cykgPSAweEIzOw0KLSAgICAgICAgd2hpbGUgKChJSUNDT04oYnVzKSAmIDB4MTApID09IDApDQotICAgICAgICAgICAgaWYgKFRJTUVfQUZURVIoY3VycmVudF90aWNrLCB0aW1lb3V0KSkNCi0gICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsNCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7DQotICAgICAgICAgICAgfQ0KLSAgICB9DQotICAgIA0KLSAgICAvKiB3cml0ZSBkYXRhICovDQotICAgIHdoaWxlIChsZW4tLSkgew0KLSAgICAgICAgSUlDRFMoYnVzKSA9ICpkYXRhKys7DQotICAgICAgICBJSUNDT04oYnVzKSA9IDB4QjM7DQotICAgICAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkNCi0gICAgICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQ0KLSAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICAgICAgICAgICAgICByZXR1cm4gNDsNCi0gICAgICAgICAgICB9DQotICAgIH0NCi0NCi0gICAgLyogU1RPUCAqLw0KLSAgICBJSUNTVEFUKGJ1cykgPSAweEQwOw0KLSAgICBJSUNDT04oYnVzKSA9IDB4QjM7DQotICAgIHdoaWxlICgoSUlDU1RBVChidXMpICYgKDEgPDwgNSkpICE9IDApDQotICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQ0KLSAgICAgICAgew0KLSAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsNCi0gICAgICAgICAgICByZXR1cm4gNTsNCi0gICAgICAgIH0NCi0gICAgDQotICAgIGkyY19vZmYoYnVzKTsNCi0gICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICByZXR1cm4gMDsNCi19DQotDQotaW50IGkyY19yZWFkKGludCBidXMsIHVuc2lnbmVkIGNoYXIgc2xhdmUsIGludCBhZGRyZXNzLCBpbnQgbGVuLCB1bnNpZ25lZCBjaGFyICpkYXRhKQ0KLXsNCi0gICAgbXV0ZXhfbG9jaygmaTJjX210eFtidXNdKTsNCi0gICAgaTJjX29uKGJ1cyk7DQotICAgIGxvbmcgdGltZW91dCA9IGN1cnJlbnRfdGljayArIEhaIC8gNTA7DQotDQotICAgIGlmIChhZGRyZXNzID49IDApIHsNCi0gICAgICAgIC8qIFNUQVJUICovDQotICAgICAgICBJSUNEUyhidXMpID0gc2xhdmUgJiB+MTsNCi0gICAgICAgIElJQ1NUQVQoYnVzKSA9IDB4RjA7DQotICAgICAgICBJSUNDT04oYnVzKSA9IDB4QjM7DQotICAgICAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkNCi0gICAgICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQ0KLSAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICAgICAgICAgICAgICByZXR1cm4gMTsNCi0gICAgICAgICAgICB9DQotDQotICAgICAgICAvKiB3cml0ZSBhZGRyZXNzICovDQotICAgICAgICBJSUNEUyhidXMpID0gYWRkcmVzczsNCi0gICAgICAgIElJQ0NPTihidXMpID0gMHhCMzsNCi0gICAgICAgIHdoaWxlICgoSUlDQ09OKGJ1cykgJiAweDEwKSA9PSAwKQ0KLSAgICAgICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7DQotICAgICAgICAgICAgICAgIHJldHVybiAyOw0KLSAgICAgICAgICAgIH0NCi0gICAgfQ0KLSAgICANCi0gICAgLyogKHJlcGVhdGVkKSBTVEFSVCAqLw0KLSAgICBJSUNEUyhidXMpID0gc2xhdmUgfCAxOw0KLSAgICBJSUNTVEFUKGJ1cykgPSAweEIwOw0KLSAgICBJSUNDT04oYnVzKSA9IDB4QjM7DQotICAgIHdoaWxlICgoSUlDQ09OKGJ1cykgJiAweDEwKSA9PSAwKQ0KLSAgICAgICAgaWYgKFRJTUVfQUZURVIoY3VycmVudF90aWNrLCB0aW1lb3V0KSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7DQotICAgICAgICAgICAgcmV0dXJuIDM7DQotICAgICAgICB9DQotICAgIA0KLSAgICB3aGlsZSAobGVuLS0pIHsNCi0gICAgICAgIElJQ0NPTihidXMpID0gKGxlbiA9PSAwKSA/IDB4MzMgOiAweEIzOyAvKiBOQUsgb3IgQUNLICovDQotICAgICAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkNCi0gICAgICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQ0KLSAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICAgICAgICAgICAgICByZXR1cm4gNDsNCi0gICAgICAgICAgICB9DQotICAgICAgICAqZGF0YSsrID0gSUlDRFMoYnVzKTsNCi0gICAgfQ0KLQ0KLSAgICAvKiBTVE9QICovDQotICAgIElJQ1NUQVQoYnVzKSA9IDB4OTA7DQotICAgIElJQ0NPTihidXMpID0gMHhCMzsNCi0gICAgd2hpbGUgKChJSUNTVEFUKGJ1cykgJiAoMSA8PCA1KSkgIT0gMCkNCi0gICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpDQotICAgICAgICB7DQotICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOw0KLSAgICAgICAgICAgIHJldHVybiA1Ow0KLSAgICAgICAgfQ0KLSAgICANCi0gICAgaTJjX29mZihidXMpOw0KLSAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7DQotICAgIHJldHVybiAwOw0KLX0NCi0NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICBfX19fX19fX19fICAgICAgICAgICAgICAgX18gICBfX18uCisgKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18KKyAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLworICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwKKyAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXAorICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCisgKiAkSWQ6IGkyYy1zNWw4NzAwLmMgMjg1ODkgMjAxMC0xMS0xNCAxNToxOTozMFogdGhlc2V2ZW4gJAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBieSBCZXJ0cmlrIFNpa2tlbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJzeXN0ZW0uaCIKKyNpbmNsdWRlICJrZXJuZWwuaCIKKyNpbmNsdWRlICJpMmMtczVsODcwMi5oIgorCisvKiAgRHJpdmVyIGZvciB0aGUgczVsODcwMCBidWlsdC1pbiBJMkMgY29udHJvbGxlciBpbiBtYXN0ZXIgbW9kZQorICAgIAorICAgIEJvdGggdGhlIGkyY19yZWFkIGFuZCBpMmNfd3JpdGUgZnVuY3Rpb24gdGFrZSB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czoKKyAgICAqIHNsYXZlLCB0aGUgYWRkcmVzcyBvZiB0aGUgaTJjIHNsYXZlIGRldmljZSB0byByZWFkIGZyb20gLyB3cml0ZSB0bworICAgICogYWRkcmVzcywgb3B0aW9uYWwgc3ViLWFkZHJlc3MgaW4gdGhlIGkyYyBzbGF2ZSAodW51c2VkIGlmIC0xKQorICAgICogbGVuLCBudW1iZXIgb2YgYnl0ZXMgdG8gYmUgdHJhbnNmZXJlZAorICAgICogZGF0YSwgcG9pbnRlciB0byBkYXRhIHRvIGJlIHRyYW5zZmVyZWQKKyAgICBBIHJldHVybiB2YWx1ZSA8IDAgaW5kaWNhdGVzIGFuIGVycm9yLgorICAgIAorICAgIE5vdGU6CisgICAgKiBibG9ja3MgdGhlIGNhbGxpbmcgdGhyZWFkIGZvciB0aGUgZW50aXJlIGR1cmF0b24gb2YgdGhlIGkyYyB0cmFuc2ZlciBidXQKKyAgICAgIHVzZXMgd2FrZXVwX3dhaXQvd2FrZXVwX3NpZ25hbCB0byBhbGxvdyBvdGhlciB0aHJlYWRzIHRvIHJ1bi4KKyAgICAqIEFDSyBmcm9tIHNsYXZlIGlzIG5vdCBjaGVja2VkLCBzbyBmdW5jdGlvbnMgbmV2ZXIgcmV0dXJuIGFuIGVycm9yCisqLworCitzdGF0aWMgc3RydWN0IG11dGV4IGkyY19tdHhbMl07CisKK3N0YXRpYyB2b2lkIGkyY19vbihpbnQgYnVzKQoreworICAgIC8qIGVuYWJsZSBJMkMgY2xvY2sgKi8KKyAgICBQV1JDT04oMSkgJj0gfigxIDw8IDQpOworCisgICAgSUlDQ09OKGJ1cykgPSAoMSA8PCA3KSB8IC8qIEFDS19HRU4gKi8KKyAgICAgICAgICAgICAgICAgICgwIDw8IDYpIHwgLyogQ0xLU0VMID0gUENMSy8xNiAqLworICAgICAgICAgICAgICAgICAgKDEgPDwgNSkgfCAvKiBJTlRfRU4gKi8KKyAgICAgICAgICAgICAgICAgICgxIDw8IDQpIHwgLyogSVJRIGNsZWFyICovCisgICAgICAgICAgICAgICAgICAoNyA8PCAwKTsgIC8qIENLX1JFRyAqLworCisgICAgLyogc2VyaWFsIG91dHB1dCBvbiAqLworICAgIElJQ1NUQVQoYnVzKSA9ICgxIDw8IDQpOworfQorCitzdGF0aWMgdm9pZCBpMmNfb2ZmKGludCBidXMpCit7CisgICAgLyogc2VyaWFsIG91dHB1dCBvZmYgKi8KKyAgICBJSUNTVEFUKGJ1cykgPSAwOworCisgICAgLyogZGlzYWJsZSBJMkMgY2xvY2sgKi8KKyAgICBQV1JDT04oMSkgfD0gKDEgPDwgNCk7Cit9CisKK3ZvaWQgaTJjX2luaXQoKQoreworICAgIG11dGV4X2luaXQoJmkyY19tdHhbMF0pOworICAgIG11dGV4X2luaXQoJmkyY19tdHhbMV0pOworfQorCitpbnQgaTJjX3dyaXRlKGludCBidXMsIHVuc2lnbmVkIGNoYXIgc2xhdmUsIGludCBhZGRyZXNzLCBpbnQgbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQoreworICAgIG11dGV4X2xvY2soJmkyY19tdHhbYnVzXSk7CisgICAgaTJjX29uKGJ1cyk7CisgICAgbG9uZyB0aW1lb3V0ID0gY3VycmVudF90aWNrICsgSFogLyA1MDsKKworICAgIC8qIFNUQVJUICovCisgICAgSUlDRFMoYnVzKSA9IHNsYXZlICYgfjE7CisgICAgSUlDU1RBVChidXMpID0gMHhGMDsKKyAgICBJSUNDT04oYnVzKSA9IDB4QjM7CisgICAgd2hpbGUgKChJSUNDT04oYnVzKSAmIDB4MTApID09IDApCisgICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisKKyAgICAKKyAgICBpZiAoYWRkcmVzcyA+PSAwKSB7CisgICAgICAgIC8qIHdyaXRlIGFkZHJlc3MgKi8KKyAgICAgICAgSUlDRFMoYnVzKSA9IGFkZHJlc3M7CisgICAgICAgIElJQ0NPTihidXMpID0gMHhCMzsKKyAgICAgICAgd2hpbGUgKChJSUNDT04oYnVzKSAmIDB4MTApID09IDApCisgICAgICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogd3JpdGUgZGF0YSAqLworICAgIHdoaWxlIChsZW4tLSkgeworICAgICAgICBJSUNEUyhidXMpID0gKmRhdGErKzsKKyAgICAgICAgSUlDQ09OKGJ1cykgPSAweEIzOworICAgICAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkKKyAgICAgICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOworICAgICAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICAgICAgfQorICAgIH0KKworICAgIC8qIFNUT1AgKi8KKyAgICBJSUNTVEFUKGJ1cykgPSAweEQwOworICAgIElJQ0NPTihidXMpID0gMHhCMzsKKyAgICB3aGlsZSAoKElJQ1NUQVQoYnVzKSAmICgxIDw8IDUpKSAhPSAwKQorICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQorICAgICAgICB7CisgICAgICAgICAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7CisgICAgICAgICAgICByZXR1cm4gNTsKKyAgICAgICAgfQorICAgIAorICAgIGkyY19vZmYoYnVzKTsKKyAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBpMmNfcmVhZChpbnQgYnVzLCB1bnNpZ25lZCBjaGFyIHNsYXZlLCBpbnQgYWRkcmVzcywgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqZGF0YSkKK3sKKyAgICBtdXRleF9sb2NrKCZpMmNfbXR4W2J1c10pOworICAgIGkyY19vbihidXMpOworICAgIGxvbmcgdGltZW91dCA9IGN1cnJlbnRfdGljayArIEhaIC8gNTA7CisKKyAgICBpZiAoYWRkcmVzcyA+PSAwKSB7CisgICAgICAgIC8qIFNUQVJUICovCisgICAgICAgIElJQ0RTKGJ1cykgPSBzbGF2ZSAmIH4xOworICAgICAgICBJSUNTVEFUKGJ1cykgPSAweEYwOworICAgICAgICBJSUNDT04oYnVzKSA9IDB4QjM7CisgICAgICAgIHdoaWxlICgoSUlDQ09OKGJ1cykgJiAweDEwKSA9PSAwKQorICAgICAgICAgICAgaWYgKFRJTUVfQUZURVIoY3VycmVudF90aWNrLCB0aW1lb3V0KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtdXRleF91bmxvY2soJmkyY19tdHhbYnVzXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgLyogd3JpdGUgYWRkcmVzcyAqLworICAgICAgICBJSUNEUyhidXMpID0gYWRkcmVzczsKKyAgICAgICAgSUlDQ09OKGJ1cykgPSAweEIzOworICAgICAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkKKyAgICAgICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOworICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiAocmVwZWF0ZWQpIFNUQVJUICovCisgICAgSUlDRFMoYnVzKSA9IHNsYXZlIHwgMTsKKyAgICBJSUNTVEFUKGJ1cykgPSAweEIwOworICAgIElJQ0NPTihidXMpID0gMHhCMzsKKyAgICB3aGlsZSAoKElJQ0NPTihidXMpICYgMHgxMCkgPT0gMCkKKyAgICAgICAgaWYgKFRJTUVfQUZURVIoY3VycmVudF90aWNrLCB0aW1lb3V0KSkKKyAgICAgICAgeworICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpMmNfbXR4W2J1c10pOworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0KKyAgICAKKyAgICB3aGlsZSAobGVuLS0pIHsKKyAgICAgICAgSUlDQ09OKGJ1cykgPSAobGVuID09IDApID8gMHgzMyA6IDB4QjM7IC8qIE5BSyBvciBBQ0sgKi8KKyAgICAgICAgd2hpbGUgKChJSUNDT04oYnVzKSAmIDB4MTApID09IDApCisgICAgICAgICAgICBpZiAoVElNRV9BRlRFUihjdXJyZW50X3RpY2ssIHRpbWVvdXQpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKmRhdGErKyA9IElJQ0RTKGJ1cyk7CisgICAgfQorCisgICAgLyogU1RPUCAqLworICAgIElJQ1NUQVQoYnVzKSA9IDB4OTA7CisgICAgSUlDQ09OKGJ1cykgPSAweEIzOworICAgIHdoaWxlICgoSUlDU1RBVChidXMpICYgKDEgPDwgNSkpICE9IDApCisgICAgICAgIGlmIChUSU1FX0FGVEVSKGN1cnJlbnRfdGljaywgdGltZW91dCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsKKyAgICAgICAgICAgIHJldHVybiA1OworICAgICAgICB9CisgICAgCisgICAgaTJjX29mZihidXMpOworICAgIG11dGV4X3VubG9jaygmaTJjX210eFtidXNdKTsKKyAgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL2tlcm5lbC1zNWw4NzAyLmMgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIva2VybmVsLXM1bDg3MDIuYwppbmRleCA3YzVhNjk3Li5hZjU0ZTRkIDEwMDY0NAotLS0gYS9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIva2VybmVsLXM1bDg3MDIuYworKysgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIva2VybmVsLXM1bDg3MDIuYwpAQCAtMSw1NiArMSw1NiBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0gKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18NCi0gKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0gKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXA0KLSAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSAqICRJZDoga2VybmVsLXM1bDg3MDAuYyAyODc5NSAyMDEwLTEyLTExIDE3OjUyOjUyWiBCdXNjaGVsICQNCi0gKg0KLSAqIENvcHlyaWdodCCpIDIwMDkgQmVydHJpayBTaWtrZW4NCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyDQotICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICoNCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZDQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLSNpbmNsdWRlICJjb25maWcuaCINCi0jaW5jbHVkZSAic3lzdGVtLmgiDQotI2luY2x1ZGUgImtlcm5lbC5oIg0KLQ0KLS8qICBTNUw4NzAyIGRyaXZlciBmb3IgdGhlIGtlcm5lbCB0aW1lcg0KLQ0KLSAgICBUaW1lciBCIGlzIGNvbmZpZ3VyZWQgYXMgYSAxMCBrSHogdGltZXINCi0gKi8NCi0NCi12b2lkIElOVF9USU1FUkIodm9pZCkNCi17DQotICAgIC8qIGNsZWFyIGludGVycnVwdCAqLw0KLSAgICBUQkNPTiA9IFRCQ09OOw0KLQ0KLSAgICBjYWxsX3RpY2tfdGFza3MoKTsgIC8qIFJ1biB0aHJvdWdoIHRoZSBsaXN0IG9mIHRpY2sgdGFza3MgKi8NCi19DQotDQotdm9pZCB0aWNrX3N0YXJ0KHVuc2lnbmVkIGludCBpbnRlcnZhbF9pbl9tcykNCi17DQotICAgIGludCBjeWNsZXMgPSAxMCAqIGludGVydmFsX2luX21zOw0KLSAgICANCi0gICAgLyogY29uZmlndXJlIHRpbWVyIGZvciAxMCBrSHogKi8NCi0gICAgVEJDTUQgPSAoMSA8PCAxKTsgICAvKiBUQl9DTFIgKi8NCi0gICAgVEJQUkUgPSAzMzcgLSAxOyAgICAvKiBwcmVzY2FsZXIgKi8NCi0gICAgVEJDT04gPSAoMCA8PCAxMykgfCAvKiBUQl9JTlQxX0VOICovDQotICAgICAgICAgICAgKDEgPDwgMTIpIHwgLyogVEJfSU5UMF9FTiAqLw0KLSAgICAgICAgICAgICgwIDw8IDExKSB8IC8qIFRCX1NUQVJUICovDQotICAgICAgICAgICAgKDIgPDwgOCkgfCAgLyogVEJfQ1MgPSBQQ0xLIC8gMTYgKi8NCi0gICAgICAgICAgICAoMCA8PCA0KTsgICAvKiBUQl9NT0RFX1NFTCA9IGludGVydmFsIG1vZGUgKi8NCi0gICAgVEJEQVRBMCA9IGN5Y2xlczsgICAvKiBzZXQgaW50ZXJ2YWwgcGVyaW9kICovDQotICAgIFRCQ01EID0gKDEgPDwgMCk7ICAgLyogVEJfRU4gKi8NCi0NCi0gICAgLyogZW5hYmxlIHRpbWVyIGludGVycnVwdCAqLw0KLSAgICBWSUMwSU5URU5BQkxFID0gMSA8PCBJUlFfVElNRVI7DQotfQ0KLQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4KKyAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXworICogICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvCisgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAorICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCisgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KKyAqICRJZDoga2VybmVsLXM1bDg3MDAuYyAyODc5NSAyMDEwLTEyLTExIDE3OjUyOjUyWiBCdXNjaGVsICQKKyAqCisgKiBDb3B5cmlnaHQgqSAyMDA5IEJlcnRyaWsgU2lra2VuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInN5c3RlbS5oIgorI2luY2x1ZGUgImtlcm5lbC5oIgorCisvKiAgUzVMODcwMiBkcml2ZXIgZm9yIHRoZSBrZXJuZWwgdGltZXIKKworICAgIFRpbWVyIEIgaXMgY29uZmlndXJlZCBhcyBhIDEwIGtIeiB0aW1lcgorICovCisKK3ZvaWQgSU5UX1RJTUVSQih2b2lkKQoreworICAgIC8qIGNsZWFyIGludGVycnVwdCAqLworICAgIFRCQ09OID0gVEJDT047CisKKyAgICBjYWxsX3RpY2tfdGFza3MoKTsgIC8qIFJ1biB0aHJvdWdoIHRoZSBsaXN0IG9mIHRpY2sgdGFza3MgKi8KK30KKwordm9pZCB0aWNrX3N0YXJ0KHVuc2lnbmVkIGludCBpbnRlcnZhbF9pbl9tcykKK3sKKyAgICBpbnQgY3ljbGVzID0gMTAgKiBpbnRlcnZhbF9pbl9tczsKKyAgICAKKyAgICAvKiBjb25maWd1cmUgdGltZXIgZm9yIDEwIGtIeiAqLworICAgIFRCQ01EID0gKDEgPDwgMSk7ICAgLyogVEJfQ0xSICovCisgICAgVEJQUkUgPSAzMzcgLSAxOyAgICAvKiBwcmVzY2FsZXIgKi8KKyAgICBUQkNPTiA9ICgwIDw8IDEzKSB8IC8qIFRCX0lOVDFfRU4gKi8KKyAgICAgICAgICAgICgxIDw8IDEyKSB8IC8qIFRCX0lOVDBfRU4gKi8KKyAgICAgICAgICAgICgwIDw8IDExKSB8IC8qIFRCX1NUQVJUICovCisgICAgICAgICAgICAoMiA8PCA4KSB8ICAvKiBUQl9DUyA9IFBDTEsgLyAxNiAqLworICAgICAgICAgICAgKDAgPDwgNCk7ICAgLyogVEJfTU9ERV9TRUwgPSBpbnRlcnZhbCBtb2RlICovCisgICAgVEJEQVRBMCA9IGN5Y2xlczsgICAvKiBzZXQgaW50ZXJ2YWwgcGVyaW9kICovCisgICAgVEJDTUQgPSAoMSA8PCAwKTsgICAvKiBUQl9FTiAqLworCisgICAgLyogZW5hYmxlIHRpbWVyIGludGVycnVwdCAqLworICAgIFZJQzBJTlRFTkFCTEUgPSAxIDw8IElSUV9USU1FUjsKK30KKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL3BjbS1zNWw4NzAyLmMgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvcGNtLXM1bDg3MDIuYwppbmRleCBjM2RmNzdmLi42NDYxNDE4IDEwMDY0NAotLS0gYS9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvcGNtLXM1bDg3MDIuYworKysgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvcGNtLXM1bDg3MDIuYwpAQCAtMSwyMjggKzEsMjI4IEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLg0KLSAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXw0KLSAqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLw0KLSAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8DQotICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcDQotICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvDQotICogJElkOiBwY20tczVsODcwMC5jIDI4NjAwIDIwMTAtMTEtMTQgMTk6NDk6MjBaIEJ1c2NoZWwgJA0KLSAqDQotICogQ29weXJpZ2h0IMKpIDIwMTEgTWljaGFlbCBTcGFybWFubg0KLSAqDQotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQotICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDINCi0gKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCi0gKg0KLSAqIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCi0gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqDQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotI2luY2x1ZGUgPHN0cmluZy5oPg0KLQ0KLSNpbmNsdWRlICJjb25maWcuaCINCi0jaW5jbHVkZSAic3lzdGVtLmgiDQotI2luY2x1ZGUgImF1ZGlvLmgiDQotI2luY2x1ZGUgInM1bDg3MDIuaCINCi0jaW5jbHVkZSAicGFuaWMuaCINCi0jaW5jbHVkZSAiYXVkaW9ody5oIg0KLSNpbmNsdWRlICJwY20uaCINCi0jaW5jbHVkZSAicGNtLWludGVybmFsLmgiDQotI2luY2x1ZGUgInBjbV9zYW1wci5oIg0KLSNpbmNsdWRlICJtbXUtYXJtLmgiDQotI2luY2x1ZGUgInBjbS10YXJnZXQuaCINCi0NCi1zdGF0aWMgdm9sYXRpbGUgaW50IGxvY2tlZCA9IDA7DQotc3RhdGljIGNvbnN0IGludCB6ZXJvc2FtcGxlID0gMDsNCi1zdGF0aWMgdW5zaWduZWQgY2hhciBkYmxidWZbMl1bUENNX1dBVEVSTUFSSyAqIDRdOw0KLXN0YXRpYyBpbnQgYWN0aXZlX2RibGJ1ZjsNCi1zdHJ1Y3QgZG1hX2xsaSBwY21fbGxpW1BDTV9MTElDT1VOVF0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxNikpKTsNCi1zdGF0aWMgc3RydWN0IGRtYV9sbGkqIGxhc3RsbGk7DQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGFwdHI7DQotc2l6ZV90IHBjbV9yZW1haW5pbmc7DQotc2l6ZV90IHBjbV9jaHVua3NpemU7DQotDQotLyogTWFzayB0aGUgRE1BIGludGVycnVwdCAqLw0KLXZvaWQgcGNtX3BsYXlfbG9jayh2b2lkKQ0KLXsNCi0gICAgaWYgKGxvY2tlZCsrID09IDApIHsNCi0gICAgICAgIC8vVE9ETzogVXJnaCwgSSBkb24ndCBsaWtlIHRoYXQgYXQgYWxsLi4uDQotICAgICAgICBWSUMwSU5URU5DTEVBUiA9IDEgPDwgSVJRX0RNQUMwOw0KLSAgICB9DQotfQ0KLQ0KLS8qIFVubWFzayB0aGUgRE1BIGludGVycnVwdCBpZiBlbmFibGVkICovDQotdm9pZCBwY21fcGxheV91bmxvY2sodm9pZCkNCi17DQotICAgIGlmICgtLWxvY2tlZCA9PSAwKSB7DQotICAgICAgICBWSUMwSU5URU5BQkxFID0gMSA8PCBJUlFfRE1BQzA7DQotICAgIH0NCi19DQotDQotdm9pZCBJTlRfRE1BQzBDMCh2b2lkKSBJQ09ERV9BVFRSOw0KLXZvaWQgSU5UX0RNQUMwQzAodm9pZCkNCi17DQotICAgIERNQUMwSU5UVENDTFIgPSAxOw0KLSAgICBpZiAoIXBjbV9yZW1haW5pbmcpDQotICAgIHsNCi0gICAgICAgIHBjbV9wbGF5X2dldF9tb3JlX2NhbGxiYWNrKCh2b2lkKiopJmRhdGFwdHIsICZwY21fcmVtYWluaW5nKTsNCi0gICAgICAgIHBjbV9jaHVua3NpemUgPSBwY21fcmVtYWluaW5nOw0KLSAgICB9DQotICAgIGlmICghcGNtX3JlbWFpbmluZykNCi0gICAgew0KLSAgICAgICAgcGNtX2xsaS0+bmV4dGxsaSA9IE5VTEw7DQotICAgICAgICBwY21fbGxpLT5jb250cm9sID0gMHg3NTI0OTAwMDsNCi0gICAgICAgIGNsZWFuX2RjYWNoZSgpOw0KLSAgICAgICAgcmV0dXJuOw0KLSAgICB9DQotICAgIHVpbnQzMl90IGxhc3RzaXplID0gTUlOKFBDTV9XQVRFUk1BUksgKiA0LCBwY21fcmVtYWluaW5nIC8gMiArIDEpICYgfjE7DQotICAgIHBjbV9yZW1haW5pbmcgLT0gbGFzdHNpemU7DQotICAgIGlmIChwY21fcmVtYWluaW5nKSBsYXN0bGxpID0gJnBjbV9sbGlbQVJSQVlMRU4ocGNtX2xsaSkgLSAxXTsNCi0gICAgZWxzZSBsYXN0bGxpID0gcGNtX2xsaTsNCi0gICAgdWludDMyX3QgY2h1bmtzaXplID0gTUlOKFBDTV9DSFVOS1NJWkUgKiA0IC0gbGFzdHNpemUsIHBjbV9yZW1haW5pbmcpOw0KLSAgICBpZiAocGNtX3JlbWFpbmluZyA+IGNodW5rc2l6ZSAmJiBjaHVua3NpemUgPiBwY21fcmVtYWluaW5nIC0gUENNX1dBVEVSTUFSSyAqIDgpDQotICAgICAgICBjaHVua3NpemUgPSBwY21fcmVtYWluaW5nIC0gUENNX1dBVEVSTUFSSyAqIDg7DQotICAgIHBjbV9yZW1haW5pbmcgLT0gY2h1bmtzaXplOw0KLSAgICBib29sIGxhc3QgPSAhY2h1bmtzaXplOw0KLSAgICBpbnQgaSA9IDA7DQotICAgIHdoaWxlIChjaHVua3NpemUpDQotICAgIHsNCi0gICAgICAgIHVpbnQzMl90IHRoaXNsbGkgPSBNSU4oUENNX0xMSU1BWCAqIDQsIGNodW5rc2l6ZSk7DQotICAgICAgICBjaHVua3NpemUgLT0gdGhpc2xsaTsNCi0gICAgICAgIHBjbV9sbGlbaV0uc3JjYWRkciA9ICh2b2lkKilkYXRhcHRyOw0KLSAgICAgICAgcGNtX2xsaVtpXS5kc3RhZGRyID0gKHZvaWQqKSgoaW50KSZJMlNUWERCMCk7DQotICAgICAgICBwY21fbGxpW2ldLm5leHRsbGkgPSBjaHVua3NpemUgPyAmcGNtX2xsaVtpICsgMV0gOiBsYXN0bGxpOw0KLSAgICAgICAgcGNtX2xsaVtpXS5jb250cm9sID0gKGNodW5rc2l6ZSA/IDB4NzUyNDkwMDAgOiAweGY1MjQ5MDAwKSB8ICh0aGlzbGxpIC8gMik7DQotICAgICAgICBkYXRhcHRyICs9IHRoaXNsbGk7DQotICAgICAgICBpKys7DQotICAgIH0NCi0gICAgaWYgKCFwY21fcmVtYWluaW5nKQ0KLSAgICB7DQotICAgICAgICBtZW1jcHkoZGJsYnVmW2FjdGl2ZV9kYmxidWZdLCBkYXRhcHRyLCBsYXN0c2l6ZSk7DQotICAgICAgICBsYXN0bGxpLT5zcmNhZGRyID0gZGJsYnVmW2FjdGl2ZV9kYmxidWZdOw0KLSAgICAgICAgYWN0aXZlX2RibGJ1ZiBePSAxOw0KLSAgICB9DQotICAgIGVsc2UgbGFzdGxsaS0+c3JjYWRkciA9IGRhdGFwdHI7DQotICAgIGxhc3RsbGktPmRzdGFkZHIgPSAodm9pZCopKChpbnQpJkkyU1RYREIwKTsNCi0gICAgbGFzdGxsaS0+bmV4dGxsaSA9IGxhc3QgPyBOVUxMIDogcGNtX2xsaTsNCi0gICAgbGFzdGxsaS0+Y29udHJvbCA9IChsYXN0ID8gMHhmNTI0OTAwMCA6IDB4NzUyNDkwMDApIHwgKGxhc3RzaXplIC8gMik7DQotICAgIGRhdGFwdHIgKz0gbGFzdHNpemU7DQotICAgIGNsZWFuX2RjYWNoZSgpOw0KLSAgICBpZiAoIShETUFDMEMwQ09ORklHICYgMSkgJiYgKHBjbV9sbGlbMF0uY29udHJvbCAmIDB4ZmZmKSkNCi0gICAgew0KLSAgICAgICAgRE1BQzBDMExMSSA9IHBjbV9sbGlbMF07DQotICAgICAgICBETUFDMEMwQ09ORklHID0gMHg4YTgxOw0KLSAgICB9DQotICAgIGVsc2UgRE1BQzBDME5FWFRMTEkgPSBwY21fbGxpOw0KLQ0KLSAgICBwY21fcGxheV9kbWFfc3RhcnRlZF9jYWxsYmFjaygpOw0KLX0NCi0NCi12b2lkIHBjbV9wbGF5X2RtYV9zdGFydChjb25zdCB2b2lkKiBhZGRyLCBzaXplX3Qgc2l6ZSkNCi17DQotICAgIGRhdGFwdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciopYWRkcjsNCi0gICAgcGNtX3JlbWFpbmluZyA9IHNpemU7DQotICAgIEkyU1RYQ09NID0gMHhlOw0KLSAgICBETUFDMENPTkZJRyB8PSA0Ow0KLSAgICBJTlRfRE1BQzBDMCgpOw0KLX0NCi0NCi12b2lkIHBjbV9wbGF5X2RtYV9zdG9wKHZvaWQpDQotew0KLSAgICBETUFDMEMwQ09ORklHID0gMHg4YTgwOw0KLSAgICBJMlNUWENPTSA9IDB4YTsNCi19DQotDQotLyogcGF1c2UgcGxheWJhY2sgYnkgZGlzYWJsaW5nIExSQ0sgKi8NCi12b2lkIHBjbV9wbGF5X2RtYV9wYXVzZShib29sIHBhdXNlKQ0KLXsNCi0gICAgaWYgKHBhdXNlKSBJMlNUWENPTSB8PSAxOw0KLSAgICBlbHNlICBJMlNUWENPTSAmPSB+MTsNCi19DQotDQotdm9pZCBwY21fcGxheV9kbWFfaW5pdCh2b2lkKQ0KLXsNCi0gICAgUFdSQ09OKDApICY9IH4oMSA8PCA0KTsNCi0gICAgUFdSQ09OKDEpICY9IH4oMSA8PCA3KTsNCi0gICAgSTJTNDAgPSAweDExMDsNCi0gICAgSTJTVFhDT04gPSAweGIxMDAwNTk7DQotICAgIEkyU0NMS0NPTiA9IDE7DQotICAgIFZJQzBJTlRFTkFCTEUgPSAxIDw8IElSUV9ETUFDMDsNCi0NCi0gICAgYXVkaW9od19wcmVpbml0KCk7DQotfQ0KLQ0KLXZvaWQgcGNtX3BsYXlfZG1hX3Bvc3Rpbml0KHZvaWQpDQotew0KLSAgICBhdWRpb2h3X3Bvc3Rpbml0KCk7DQotfQ0KLQ0KLXZvaWQgcGNtX2RtYV9hcHBseV9zZXR0aW5ncyh2b2lkKQ0KLXsNCi19DQotDQotc2l6ZV90IHBjbV9nZXRfYnl0ZXNfd2FpdGluZyh2b2lkKQ0KLXsNCi0gICAgaW50IGJ5dGVzID0gcGNtX3JlbWFpbmluZzsNCi0gICAgY29uc3Qgc3RydWN0IGRtYV9sbGkqIGxsaSA9IChjb25zdCBzdHJ1Y3QgZG1hX2xsaSopKChpbnQpJkRNQUMwQzBMTEkpOw0KLSAgICB3aGlsZSAobGxpKQ0KLSAgICB7DQotICAgICAgICBieXRlcyArPSAobGxpLT5jb250cm9sICYgMHhmZmYpICogMjsNCi0gICAgICAgIGlmIChsbGkgPT0gbGFzdGxsaSkgYnJlYWs7DQotICAgICAgICBsbGkgPSBsbGktPm5leHRsbGk7DQotICAgIH0NCi0gICAgcmV0dXJuIGJ5dGVzOw0KLX0NCi0NCi1jb25zdCB2b2lkKiBwY21fcGxheV9kbWFfZ2V0X3BlYWtfYnVmZmVyKGludCAqY291bnQpDQotew0KLSAgICAqY291bnQgPSAoRE1BQzBDMExMSS5jb250cm9sICYgMHhmZmYpICogMjsNCi0gICAgcmV0dXJuICh2b2lkKikoKCh1aW50MzJfdClETUFDMEMwTExJLnNyY2FkZHIpICYgfjMpOw0KLX0NCi0NCi0jaWZkZWYgSEFWRV9QQ01fRE1BX0FERFJFU1MNCi12b2lkICogcGNtX2RtYV9hZGRyKHZvaWQgKmFkZHIpDQotew0KLSAgICByZXR1cm4gYWRkcjsNCi19DQotI2VuZGlmDQotDQotDQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiogUmVjb3JkaW5nIERNQSB0cmFuc2Zlcg0KLSAqKi8NCi0jaWZkZWYgSEFWRV9SRUNPUkRJTkcNCi12b2lkIHBjbV9yZWNfbG9jayh2b2lkKQ0KLXsNCi19DQotDQotdm9pZCBwY21fcmVjX3VubG9jayh2b2lkKQ0KLXsNCi19DQotDQotdm9pZCBwY21fcmVjX2RtYV9zdG9wKHZvaWQpDQotew0KLX0NCi0NCi12b2lkIHBjbV9yZWNfZG1hX3N0YXJ0KHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKQ0KLXsNCi0gICAgKHZvaWQpYWRkcjsNCi0gICAgKHZvaWQpc2l6ZTsNCi19DQotDQotdm9pZCBwY21fcmVjX2RtYV9jbG9zZSh2b2lkKQ0KLXsNCi19DQotDQotDQotdm9pZCBwY21fcmVjX2RtYV9pbml0KHZvaWQpDQotew0KLX0NCi0NCi0NCi1jb25zdCB2b2lkICogcGNtX3JlY19kbWFfZ2V0X3BlYWtfYnVmZmVyKHZvaWQpDQotew0KLSAgICByZXR1cm4gTlVMTDsNCi19DQotDQotI2VuZGlmIC8qIEhBVkVfUkVDT1JESU5HICovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLgorICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisgKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8KKyAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8CisgKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLworICogJElkOiBwY20tczVsODcwMC5jIDI4NjAwIDIwMTAtMTEtMTQgMTk6NDk6MjBaIEJ1c2NoZWwgJAorICoKKyAqIENvcHlyaWdodCDCqSAyMDExIE1pY2hhZWwgU3Bhcm1hbm4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJzeXN0ZW0uaCIKKyNpbmNsdWRlICJhdWRpby5oIgorI2luY2x1ZGUgInM1bDg3MDIuaCIKKyNpbmNsdWRlICJwYW5pYy5oIgorI2luY2x1ZGUgImF1ZGlvaHcuaCIKKyNpbmNsdWRlICJwY20uaCIKKyNpbmNsdWRlICJwY20taW50ZXJuYWwuaCIKKyNpbmNsdWRlICJwY21fc2FtcHIuaCIKKyNpbmNsdWRlICJtbXUtYXJtLmgiCisjaW5jbHVkZSAicGNtLXRhcmdldC5oIgorCitzdGF0aWMgdm9sYXRpbGUgaW50IGxvY2tlZCA9IDA7CitzdGF0aWMgY29uc3QgaW50IHplcm9zYW1wbGUgPSAwOworc3RhdGljIHVuc2lnbmVkIGNoYXIgZGJsYnVmWzJdW1BDTV9XQVRFUk1BUksgKiA0XTsKK3N0YXRpYyBpbnQgYWN0aXZlX2RibGJ1ZjsKK3N0cnVjdCBkbWFfbGxpIHBjbV9sbGlbUENNX0xMSUNPVU5UXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkpOworc3RhdGljIHN0cnVjdCBkbWFfbGxpKiBsYXN0bGxpOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGFwdHI7CitzaXplX3QgcGNtX3JlbWFpbmluZzsKK3NpemVfdCBwY21fY2h1bmtzaXplOworCisvKiBNYXNrIHRoZSBETUEgaW50ZXJydXB0ICovCit2b2lkIHBjbV9wbGF5X2xvY2sodm9pZCkKK3sKKyAgICBpZiAobG9ja2VkKysgPT0gMCkgeworICAgICAgICAvL1RPRE86IFVyZ2gsIEkgZG9uJ3QgbGlrZSB0aGF0IGF0IGFsbC4uLgorICAgICAgICBWSUMwSU5URU5DTEVBUiA9IDEgPDwgSVJRX0RNQUMwOworICAgIH0KK30KKworLyogVW5tYXNrIHRoZSBETUEgaW50ZXJydXB0IGlmIGVuYWJsZWQgKi8KK3ZvaWQgcGNtX3BsYXlfdW5sb2NrKHZvaWQpCit7CisgICAgaWYgKC0tbG9ja2VkID09IDApIHsKKyAgICAgICAgVklDMElOVEVOQUJMRSA9IDEgPDwgSVJRX0RNQUMwOworICAgIH0KK30KKwordm9pZCBJTlRfRE1BQzBDMCh2b2lkKSBJQ09ERV9BVFRSOwordm9pZCBJTlRfRE1BQzBDMCh2b2lkKQoreworICAgIERNQUMwSU5UVENDTFIgPSAxOworICAgIGlmICghcGNtX3JlbWFpbmluZykKKyAgICB7CisgICAgICAgIHBjbV9wbGF5X2dldF9tb3JlX2NhbGxiYWNrKCh2b2lkKiopJmRhdGFwdHIsICZwY21fcmVtYWluaW5nKTsKKyAgICAgICAgcGNtX2NodW5rc2l6ZSA9IHBjbV9yZW1haW5pbmc7CisgICAgfQorICAgIGlmICghcGNtX3JlbWFpbmluZykKKyAgICB7CisgICAgICAgIHBjbV9sbGktPm5leHRsbGkgPSBOVUxMOworICAgICAgICBwY21fbGxpLT5jb250cm9sID0gMHg3NTI0OTAwMDsKKyAgICAgICAgY2xlYW5fZGNhY2hlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdWludDMyX3QgbGFzdHNpemUgPSBNSU4oUENNX1dBVEVSTUFSSyAqIDQsIHBjbV9yZW1haW5pbmcgLyAyICsgMSkgJiB+MTsKKyAgICBwY21fcmVtYWluaW5nIC09IGxhc3RzaXplOworICAgIGlmIChwY21fcmVtYWluaW5nKSBsYXN0bGxpID0gJnBjbV9sbGlbQVJSQVlMRU4ocGNtX2xsaSkgLSAxXTsKKyAgICBlbHNlIGxhc3RsbGkgPSBwY21fbGxpOworICAgIHVpbnQzMl90IGNodW5rc2l6ZSA9IE1JTihQQ01fQ0hVTktTSVpFICogNCAtIGxhc3RzaXplLCBwY21fcmVtYWluaW5nKTsKKyAgICBpZiAocGNtX3JlbWFpbmluZyA+IGNodW5rc2l6ZSAmJiBjaHVua3NpemUgPiBwY21fcmVtYWluaW5nIC0gUENNX1dBVEVSTUFSSyAqIDgpCisgICAgICAgIGNodW5rc2l6ZSA9IHBjbV9yZW1haW5pbmcgLSBQQ01fV0FURVJNQVJLICogODsKKyAgICBwY21fcmVtYWluaW5nIC09IGNodW5rc2l6ZTsKKyAgICBib29sIGxhc3QgPSAhY2h1bmtzaXplOworICAgIGludCBpID0gMDsKKyAgICB3aGlsZSAoY2h1bmtzaXplKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgdGhpc2xsaSA9IE1JTihQQ01fTExJTUFYICogNCwgY2h1bmtzaXplKTsKKyAgICAgICAgY2h1bmtzaXplIC09IHRoaXNsbGk7CisgICAgICAgIHBjbV9sbGlbaV0uc3JjYWRkciA9ICh2b2lkKilkYXRhcHRyOworICAgICAgICBwY21fbGxpW2ldLmRzdGFkZHIgPSAodm9pZCopKChpbnQpJkkyU1RYREIwKTsKKyAgICAgICAgcGNtX2xsaVtpXS5uZXh0bGxpID0gY2h1bmtzaXplID8gJnBjbV9sbGlbaSArIDFdIDogbGFzdGxsaTsKKyAgICAgICAgcGNtX2xsaVtpXS5jb250cm9sID0gKGNodW5rc2l6ZSA/IDB4NzUyNDkwMDAgOiAweGY1MjQ5MDAwKSB8ICh0aGlzbGxpIC8gMik7CisgICAgICAgIGRhdGFwdHIgKz0gdGhpc2xsaTsKKyAgICAgICAgaSsrOworICAgIH0KKyAgICBpZiAoIXBjbV9yZW1haW5pbmcpCisgICAgeworICAgICAgICBtZW1jcHkoZGJsYnVmW2FjdGl2ZV9kYmxidWZdLCBkYXRhcHRyLCBsYXN0c2l6ZSk7CisgICAgICAgIGxhc3RsbGktPnNyY2FkZHIgPSBkYmxidWZbYWN0aXZlX2RibGJ1Zl07CisgICAgICAgIGFjdGl2ZV9kYmxidWYgXj0gMTsKKyAgICB9CisgICAgZWxzZSBsYXN0bGxpLT5zcmNhZGRyID0gZGF0YXB0cjsKKyAgICBsYXN0bGxpLT5kc3RhZGRyID0gKHZvaWQqKSgoaW50KSZJMlNUWERCMCk7CisgICAgbGFzdGxsaS0+bmV4dGxsaSA9IGxhc3QgPyBOVUxMIDogcGNtX2xsaTsKKyAgICBsYXN0bGxpLT5jb250cm9sID0gKGxhc3QgPyAweGY1MjQ5MDAwIDogMHg3NTI0OTAwMCkgfCAobGFzdHNpemUgLyAyKTsKKyAgICBkYXRhcHRyICs9IGxhc3RzaXplOworICAgIGNsZWFuX2RjYWNoZSgpOworICAgIGlmICghKERNQUMwQzBDT05GSUcgJiAxKSAmJiAocGNtX2xsaVswXS5jb250cm9sICYgMHhmZmYpKQorICAgIHsKKyAgICAgICAgRE1BQzBDMExMSSA9IHBjbV9sbGlbMF07CisgICAgICAgIERNQUMwQzBDT05GSUcgPSAweDhhODE7CisgICAgfQorICAgIGVsc2UgRE1BQzBDME5FWFRMTEkgPSBwY21fbGxpOworCisgICAgcGNtX3BsYXlfZG1hX3N0YXJ0ZWRfY2FsbGJhY2soKTsKK30KKwordm9pZCBwY21fcGxheV9kbWFfc3RhcnQoY29uc3Qgdm9pZCogYWRkciwgc2l6ZV90IHNpemUpCit7CisgICAgZGF0YXB0ciA9IChjb25zdCB1bnNpZ25lZCBjaGFyKilhZGRyOworICAgIHBjbV9yZW1haW5pbmcgPSBzaXplOworICAgIEkyU1RYQ09NID0gMHhlOworICAgIERNQUMwQ09ORklHIHw9IDQ7CisgICAgSU5UX0RNQUMwQzAoKTsKK30KKwordm9pZCBwY21fcGxheV9kbWFfc3RvcCh2b2lkKQoreworICAgIERNQUMwQzBDT05GSUcgPSAweDhhODA7CisgICAgSTJTVFhDT00gPSAweGE7Cit9CisKKy8qIHBhdXNlIHBsYXliYWNrIGJ5IGRpc2FibGluZyBMUkNLICovCit2b2lkIHBjbV9wbGF5X2RtYV9wYXVzZShib29sIHBhdXNlKQoreworICAgIGlmIChwYXVzZSkgSTJTVFhDT00gfD0gMTsKKyAgICBlbHNlICBJMlNUWENPTSAmPSB+MTsKK30KKwordm9pZCBwY21fcGxheV9kbWFfaW5pdCh2b2lkKQoreworICAgIFBXUkNPTigwKSAmPSB+KDEgPDwgNCk7CisgICAgUFdSQ09OKDEpICY9IH4oMSA8PCA3KTsKKyAgICBJMlM0MCA9IDB4MTEwOworICAgIEkyU1RYQ09OID0gMHhiMTAwMDU5OworICAgIEkyU0NMS0NPTiA9IDE7CisgICAgVklDMElOVEVOQUJMRSA9IDEgPDwgSVJRX0RNQUMwOworCisgICAgYXVkaW9od19wcmVpbml0KCk7Cit9CisKK3ZvaWQgcGNtX3BsYXlfZG1hX3Bvc3Rpbml0KHZvaWQpCit7CisgICAgYXVkaW9od19wb3N0aW5pdCgpOworfQorCit2b2lkIHBjbV9kbWFfYXBwbHlfc2V0dGluZ3Modm9pZCkKK3sKK30KKworc2l6ZV90IHBjbV9nZXRfYnl0ZXNfd2FpdGluZyh2b2lkKQoreworICAgIGludCBieXRlcyA9IHBjbV9yZW1haW5pbmc7CisgICAgY29uc3Qgc3RydWN0IGRtYV9sbGkqIGxsaSA9IChjb25zdCBzdHJ1Y3QgZG1hX2xsaSopKChpbnQpJkRNQUMwQzBMTEkpOworICAgIHdoaWxlIChsbGkpCisgICAgeworICAgICAgICBieXRlcyArPSAobGxpLT5jb250cm9sICYgMHhmZmYpICogMjsKKyAgICAgICAgaWYgKGxsaSA9PSBsYXN0bGxpKSBicmVhazsKKyAgICAgICAgbGxpID0gbGxpLT5uZXh0bGxpOworICAgIH0KKyAgICByZXR1cm4gYnl0ZXM7Cit9CisKK2NvbnN0IHZvaWQqIHBjbV9wbGF5X2RtYV9nZXRfcGVha19idWZmZXIoaW50ICpjb3VudCkKK3sKKyAgICAqY291bnQgPSAoRE1BQzBDMExMSS5jb250cm9sICYgMHhmZmYpICogMjsKKyAgICByZXR1cm4gKHZvaWQqKSgoKHVpbnQzMl90KURNQUMwQzBMTEkuc3JjYWRkcikgJiB+Myk7Cit9CisKKyNpZmRlZiBIQVZFX1BDTV9ETUFfQUREUkVTUwordm9pZCAqIHBjbV9kbWFfYWRkcih2b2lkICphZGRyKQoreworICAgIHJldHVybiBhZGRyOworfQorI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKiBSZWNvcmRpbmcgRE1BIHRyYW5zZmVyCisgKiovCisjaWZkZWYgSEFWRV9SRUNPUkRJTkcKK3ZvaWQgcGNtX3JlY19sb2NrKHZvaWQpCit7Cit9CisKK3ZvaWQgcGNtX3JlY191bmxvY2sodm9pZCkKK3sKK30KKwordm9pZCBwY21fcmVjX2RtYV9zdG9wKHZvaWQpCit7Cit9CisKK3ZvaWQgcGNtX3JlY19kbWFfc3RhcnQodm9pZCAqYWRkciwgc2l6ZV90IHNpemUpCit7CisgICAgKHZvaWQpYWRkcjsKKyAgICAodm9pZClzaXplOworfQorCit2b2lkIHBjbV9yZWNfZG1hX2Nsb3NlKHZvaWQpCit7Cit9CisKKwordm9pZCBwY21fcmVjX2RtYV9pbml0KHZvaWQpCit7Cit9CisKKworY29uc3Qgdm9pZCAqIHBjbV9yZWNfZG1hX2dldF9wZWFrX2J1ZmZlcih2b2lkKQoreworICAgIHJldHVybiBOVUxMOworfQorCisjZW5kaWYgLyogSEFWRV9SRUNPUkRJTkcgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9wY20tdGFyZ2V0LmggYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvcGNtLXRhcmdldC5oCmluZGV4IDFiMTQ5YTYuLmFlZmI2NGUgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9wY20tdGFyZ2V0LmgKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL3BjbS10YXJnZXQuaApAQCAtMSw0MCArMSw0MCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0gKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18NCi0gKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0gKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXA0KLSAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSAqICRJZDogc3lzdGVtLXRhcmdldC5oIDI4NzkxIDIwMTAtMTItMTEgMDk6Mzk6MzNaIEJ1c2NoZWwgJA0KLSAqDQotICogQ29weXJpZ2h0IChDKSAyMDEwIGJ5IE1pY2hhZWwgU3Bhcm1hbm4NCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyDQotICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICoNCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZDQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKg0KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLSNpZm5kZWYgX19QQ01fVEFSR0VUX0hfXw0KLSNkZWZpbmUgX19QQ01fVEFSR0VUX0hfXw0KLQ0KLQ0KLS8qIFM1TDg3MDIgUENNIGRyaXZlciB0dW5hYmxlczogKi8NCi0jZGVmaW5lIFBDTV9MTElNQVggKDIwNDcpICAgICAvKiBNYXhpbXVtIG51bWJlciBvZiBzYW1wbGVzIHBlciBMTEkgKi8NCi0jZGVmaW5lIFBDTV9DSFVOS1NJWkUgKDEwNzQ3KSAvKiBNYXhpbXVtIG51bWJlciBvZiBzYW1wbGVzIHRvIGhhbmRsZSB3aXRoIG9uZSBJUlEgKi8NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAoYmlnZ2VyIGNodW5rcyB3aWxsIGJlIHNlZ21lbnRlZCBpbnRlcm5hbGx5KSAgICAgKi8NCi0jZGVmaW5lIFBDTV9XQVRFUk1BUksgKDUxMikgICAvKiBOdW1iZXIgb2YgcmVtYWluaW5nIHNhbXBsZXMgdG8gc2NoZWR1bGUgSVJRIGF0ICovDQotDQotDQotI2RlZmluZSBQQ01fTExJQ09VTlQgKChQQ01fQ0hVTktTSVpFIC0gUENNX1dBVEVSTUFSSyArIFBDTV9MTElNQVggLSAxKSAvIFBDTV9MTElNQVggKyAxKQ0KLQ0KLQ0KLWV4dGVybiBzdHJ1Y3QgZG1hX2xsaSBwY21fbGxpW1BDTV9MTElDT1VOVF07DQotZXh0ZXJuIHNpemVfdCBwY21fcmVtYWluaW5nOw0KLWV4dGVybiBzaXplX3QgcGNtX2NodW5rc2l6ZTsNCi0NCi0NCi0jZW5kaWYgLyogX19QQ01fVEFSR0VUX0hfXyAqLw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4KKyAqICAgT3BlbiAgICAgIFxfX19fX18gICBcIF9fX18gICBfX19fIHwgIHwgX1xfIHxfXyAgIF9fX19fX18gIF9fXworICogICBTb3VyY2UgICAgIHwgICAgICAgXy8vICBfIFxfLyBfX19cfCAgfC8gL3wgX18gXCAvICBfIFwgIFwvICAvCisgKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAorICogICBGaXJtd2FyZSAgIHxfX19ffF8gIC9cX19fXy8gXF9fXyAgPl9ffF8gXHxfX18gIC9cX19fXy9fXy9cXyBcCisgKiAgICAgICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgXC8gICAgIFwvICAgIFwvICAgICAgICAgICAgXC8KKyAqICRJZDogc3lzdGVtLXRhcmdldC5oIDI4NzkxIDIwMTAtMTItMTEgMDk6Mzk6MzNaIEJ1c2NoZWwgJAorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBieSBNaWNoYWVsIFNwYXJtYW5uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfX1BDTV9UQVJHRVRfSF9fCisjZGVmaW5lIF9fUENNX1RBUkdFVF9IX18KKworCisvKiBTNUw4NzAyIFBDTSBkcml2ZXIgdHVuYWJsZXM6ICovCisjZGVmaW5lIFBDTV9MTElNQVggKDIwNDcpICAgICAvKiBNYXhpbXVtIG51bWJlciBvZiBzYW1wbGVzIHBlciBMTEkgKi8KKyNkZWZpbmUgUENNX0NIVU5LU0laRSAoMTA3NDcpIC8qIE1heGltdW0gbnVtYmVyIG9mIHNhbXBsZXMgdG8gaGFuZGxlIHdpdGggb25lIElSUSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKGJpZ2dlciBjaHVua3Mgd2lsbCBiZSBzZWdtZW50ZWQgaW50ZXJuYWxseSkgICAgICovCisjZGVmaW5lIFBDTV9XQVRFUk1BUksgKDUxMikgICAvKiBOdW1iZXIgb2YgcmVtYWluaW5nIHNhbXBsZXMgdG8gc2NoZWR1bGUgSVJRIGF0ICovCisKKworI2RlZmluZSBQQ01fTExJQ09VTlQgKChQQ01fQ0hVTktTSVpFIC0gUENNX1dBVEVSTUFSSyArIFBDTV9MTElNQVggLSAxKSAvIFBDTV9MTElNQVggKyAxKQorCisKK2V4dGVybiBzdHJ1Y3QgZG1hX2xsaSBwY21fbGxpW1BDTV9MTElDT1VOVF07CitleHRlcm4gc2l6ZV90IHBjbV9yZW1haW5pbmc7CitleHRlcm4gc2l6ZV90IHBjbV9jaHVua3NpemU7CisKKworI2VuZGlmIC8qIF9fUENNX1RBUkdFVF9IX18gKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9zeXN0ZW0tdGFyZ2V0LmggYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvc3lzdGVtLXRhcmdldC5oCmluZGV4IDMwZTUzYWQuLjc5OWVmYjcgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi9zeXN0ZW0tdGFyZ2V0LmgKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL3N5c3RlbS10YXJnZXQuaApAQCAtMSw0NyArMSw0NyBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4NCi0gKiAgIE9wZW4gICAgICBcX19fX19fICAgXCBfX19fICAgX19fXyB8ICB8IF9cXyB8X18gICBfX19fX19fICBfX18NCi0gKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0gKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPA0KLSAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXA0KLSAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSAqICRJZDogc3lzdGVtLXRhcmdldC5oIDI4NzkxIDIwMTAtMTItMTEgMDk6Mzk6MzNaIEJ1c2NoZWwgJA0KLSAqDQotICogQ29weXJpZ2h0IChDKSAyMDA3IGJ5IERhdmUgQ2hhcG1hbg0KLSAqDQotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQotICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDINCi0gKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCi0gKg0KLSAqIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkNCi0gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqDQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotI2lmbmRlZiBTWVNURU1fVEFSR0VUX0gNCi0jZGVmaW5lIFNZU1RFTV9UQVJHRVRfSA0KLQ0KLSNpbmNsdWRlICJzeXN0ZW0tYXJtLmgiDQotI2luY2x1ZGUgIm1tdS1hcm0uaCINCi0NCi0jZGVmaW5lIENQVUZSRVFfU0xFRVAgICAgICAzMjc2OA0KLSNkZWZpbmUgQ1BVRlJFUV9NQVggICAgIDIxNjAwMDAwMA0KLSNkZWZpbmUgQ1BVRlJFUV9ERUZBVUxUIDEwODAwMDAwMA0KLSNkZWZpbmUgQ1BVRlJFUV9OT1JNQUwgIDEwODAwMDAwMA0KLQ0KLSNkZWZpbmUgU1RPUkFHRV9XQU5UU19BTElHTg0KLQ0KLSNkZWZpbmUgaW5sKGEpICAgICgqKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKGEpKQ0KLSNkZWZpbmUgb3V0bChhLGIpICgqKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKGIpID0gKGEpKQ0KLSNkZWZpbmUgaW5iKGEpICAgICgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKGEpKQ0KLSNkZWZpbmUgb3V0YihhLGIpICgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKGIpID0gKGEpKQ0KLSNkZWZpbmUgaW53KGEpICAgICgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0KikgKGEpKQ0KLSNkZWZpbmUgb3V0dyhhLGIpICgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0KikgKGIpID0gKGEpKQ0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCB1ZGVsYXkodW5zaWduZWQgdXNlY3MpDQotew0KLSAgICB1bnNpZ25lZCBzdG9wID0gVVNFQ19USU1FUiArIHVzZWNzOw0KLSAgICB3aGlsZSAoVElNRV9CRUZPUkUoVVNFQ19USU1FUiwgc3RvcCkpOw0KLX0NCi0NCi0jZW5kaWYgLyogU1lTVEVNX1RBUkdFVF9IICovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLgorICogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisgKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8KKyAqICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8CisgKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyAqICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLworICogJElkOiBzeXN0ZW0tdGFyZ2V0LmggMjg3OTEgMjAxMC0xMi0xMSAwOTozOTozM1ogQnVzY2hlbCAkCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3IGJ5IERhdmUgQ2hhcG1hbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgU1lTVEVNX1RBUkdFVF9ICisjZGVmaW5lIFNZU1RFTV9UQVJHRVRfSAorCisjaW5jbHVkZSAic3lzdGVtLWFybS5oIgorI2luY2x1ZGUgIm1tdS1hcm0uaCIKKworI2RlZmluZSBDUFVGUkVRX1NMRUVQICAgICAgMzI3NjgKKyNkZWZpbmUgQ1BVRlJFUV9NQVggICAgIDIxNjAwMDAwMAorI2RlZmluZSBDUFVGUkVRX0RFRkFVTFQgMTA4MDAwMDAwCisjZGVmaW5lIENQVUZSRVFfTk9STUFMICAxMDgwMDAwMDAKKworI2RlZmluZSBTVE9SQUdFX1dBTlRTX0FMSUdOCisKKyNkZWZpbmUgaW5sKGEpICAgICgqKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKGEpKQorI2RlZmluZSBvdXRsKGEsYikgKCoodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoYikgPSAoYSkpCisjZGVmaW5lIGluYihhKSAgICAoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChhKSkKKyNkZWZpbmUgb3V0YihhLGIpICgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKGIpID0gKGEpKQorI2RlZmluZSBpbncoYSkgICAgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQqKSAoYSkpCisjZGVmaW5lIG91dHcoYSxiKSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCopIChiKSA9IChhKSkKKworc3RhdGljIGlubGluZSB2b2lkIHVkZWxheSh1bnNpZ25lZCB1c2VjcykKK3sKKyAgICB1bnNpZ25lZCBzdG9wID0gVVNFQ19USU1FUiArIHVzZWNzOworICAgIHdoaWxlIChUSU1FX0JFRk9SRShVU0VDX1RJTUVSLCBzdG9wKSk7Cit9CisKKyNlbmRpZiAvKiBTWVNURU1fVEFSR0VUX0ggKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi90aW1lci1zNWw4NzAyLmMgYi9maXJtd2FyZS90YXJnZXQvYXJtL3M1bDg3MDIvdGltZXItczVsODcwMi5jCmluZGV4IGZiNTZhOWYuLjYxZDRkNTkgMTAwNjQ0Ci0tLSBhL2Zpcm13YXJlL3RhcmdldC9hcm0vczVsODcwMi90aW1lci1zNWw4NzAyLmMKKysrIGIvZmlybXdhcmUvdGFyZ2V0L2FybS9zNWw4NzAyL3RpbWVyLXM1bDg3MDIuYwpAQCAtMSw5NCArMSw5NCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSogICAgICAgICAgICAgX19fX19fX19fXyAgICAgICAgICAgICAgIF9fICAgX19fLg0KLSogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fDQotKiAgIFNvdXJjZSAgICAgfCAgICAgICBfLy8gIF8gXF8vIF9fX1x8ICB8LyAvfCBfXyBcIC8gIF8gXCAgXC8gIC8NCi0qICAgSnVrZWJveCAgICB8ICAgIHwgICAoICA8Xz4gKSAgXF9fX3wgICAgPCB8IFxfXCAoICA8Xz4gPiA8ICA8DQotKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwNCi0qICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICBcLyAgICAgXC8gICAgXC8gICAgICAgICAgICBcLw0KLSogJElkOiB0aW1lci1zNWw4NzAwLmMgMjMxMDMgMjAwOS0xMC0xMSAxMTozNToxNFogdGhlc2V2ZW4gJA0KLSoNCi0qIENvcHlyaWdodCAoQykgMjAwOSBCZXJ0cmlrIFNpa2tlbg0KLSoNCi0qIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0qIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQotKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMg0KLSogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotKg0KLSogVGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQ0KLSogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0qDQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi0NCi0jaW5jbHVkZSAiY29uZmlnLmgiDQotDQotI2luY2x1ZGUgImludHR5cGVzLmgiDQotI2luY2x1ZGUgInM1bDg3MDIuaCINCi0jaW5jbHVkZSAic3lzdGVtLmgiDQotI2luY2x1ZGUgInRpbWVyLmgiDQotDQotLy9UT0RPOiBUaGlzIG5lZWRzIGNhbGlicmF0aW9uIG9uY2Ugd2UgZmlndXJlIG91dCB0aGUgY2xvY2tpbmcNCi0NCi12b2lkIElOVF9USU1FUkModm9pZCkNCi17DQotICAgIC8qIGNsZWFyIGludGVycnVwdCAqLw0KLSAgICBUQ0NPTiA9IFRDQ09OOw0KLSAgICANCi0gICAgaWYgKHBmbl90aW1lciAhPSBOVUxMKSB7DQotICAgICAgICBwZm5fdGltZXIoKTsNCi0gICAgfQ0KLX0NCi0NCi1ib29sIHRpbWVyX3NldChsb25nIGN5Y2xlcywgYm9vbCBzdGFydCkNCi17DQotICAgIHN0YXRpYyBjb25zdCBpbnQgY3NfdGFibGVbXSA9IHsxLCAyLCA0LCA2fTsNCi0gICAgaW50IHByZXNjYWxlLCBjczsNCi0gICAgbG9uZyBjb3VudDsNCi0NCi0gICAgLyogc3RvcCBhbmQgY2xlYXIgdGltZXIgKi8NCi0gICAgVENDTUQgPSAoMSA8PCAxKTsgICAvKiBURF9DTFIgKi8NCi0NCi0gICAgLyogb3B0aW9uYWxseSB1bnJlZ2lzdGVyIGFueSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgdGltZXIgdXNlciAqLw0KLSAgICBpZiAoc3RhcnQpIHsNCi0gICAgICAgIGlmIChwZm5fdW5yZWdpc3RlciAhPSBOVUxMKSB7DQotICAgICAgICAgICAgcGZuX3VucmVnaXN0ZXIoKTsNCi0gICAgICAgICAgICBwZm5fdW5yZWdpc3RlciA9IE5VTEw7DQotICAgICAgICB9DQotICAgIH0NCi0NCi0gICAgLyogc2NhbGUgdGhlIGNvdW50IGRvd24gd2l0aCB0aGUgY2xvY2sgc2VsZWN0ICovDQotICAgIGZvciAoY3MgPSAwOyBjcyA8IDQ7IGNzKyspIHsNCi0gICAgICAgIGNvdW50ID0gY3ljbGVzID4+IGNzX3RhYmxlW2NzXTsNCi0gICAgICAgIGlmICgoY291bnQgPCA2NTUzNikgfHwgKGNzID09IDMpKSB7DQotICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICB9DQotICAgIH0NCi0gICAgDQotICAgIC8qIHNjYWxlIHRoZSBjb3VudCBkb3duIHdpdGggdGhlIHByZXNjYWxlciAqLw0KLSAgICBwcmVzY2FsZSA9IDE7DQotICAgIHdoaWxlIChjb3VudCA+PSA2NTUzNikgew0KLSAgICAgICAgY291bnQgPj49IDE7DQotICAgICAgICBwcmVzY2FsZSA8PD0gMTsNCi0gICAgfQ0KLQ0KLSAgICAvKiBjb25maWd1cmUgdGltZXIgKi8NCi0gICAgVENDT04gPSAoMSA8PCAxMikgfCAgICAgLyogVERfSU5UMF9FTiAqLw0KLSAgICAgICAgICAgIChjcyA8PCA4KSB8ICAgICAvKiBUU19DUyAqLw0KLSAgICAgICAgICAgICgwIDw8IDQpOyAgICAgICAvKiBURF9NT0RFX1NFTCwgMCA9IGludGVydmFsIG1vZGUgKi8NCi0gICAgVENQUkUgPSBwcmVzY2FsZSAtIDE7DQotICAgIFRDREFUQTAgPSBjb3VudDsNCi0gICAgVENDTUQgPSAoMSA8PCAwKTsgICAgICAgLyogVERfRU5BQkxFICovDQotICAgIA0KLSAgICByZXR1cm4gdHJ1ZTsNCi19DQotDQotYm9vbCB0aW1lcl9zdGFydCh2b2lkKQ0KLXsNCi0gICAgVENDTUQgPSAoMSA8PCAwKTsgICAgICAgLyogVERfRU5BQkxFICovDQotICAgIHJldHVybiB0cnVlOw0KLX0NCi0NCi12b2lkIHRpbWVyX3N0b3Aodm9pZCkNCi17DQotICAgIFRDQ01EID0gKDAgPDwgMCk7ICAgICAgIC8qIFREX0VOQUJMRSAqLw0KLX0NCi0NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgICAgICBfXyAgIF9fXy4KKyogICBPcGVuICAgICAgXF9fX19fXyAgIFwgX19fXyAgIF9fX18gfCAgfCBfXF8gfF9fICAgX19fX19fXyAgX19fCisqICAgU291cmNlICAgICB8ICAgICAgIF8vLyAgXyBcXy8gX19fXHwgIHwvIC98IF9fIFwgLyAgXyBcICBcLyAgLworKiAgIEp1a2Vib3ggICAgfCAgICB8ICAgKCAgPF8+ICkgIFxfX198ICAgIDwgfCBcX1wgKCAgPF8+ID4gPCAgPAorKiAgIEZpcm13YXJlICAgfF9fX198XyAgL1xfX19fLyBcX19fICA+X198XyBcfF9fXyAgL1xfX19fL19fL1xfIFwKKyogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCisqICRJZDogdGltZXItczVsODcwMC5jIDIzMTAzIDIwMDktMTAtMTEgMTE6MzU6MTRaIHRoZXNldmVuICQKKyoKKyogQ29weXJpZ2h0IChDKSAyMDA5IEJlcnRyaWsgU2lra2VuCisqCisqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisqCisqIFRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKKyogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgImludHR5cGVzLmgiCisjaW5jbHVkZSAiczVsODcwMi5oIgorI2luY2x1ZGUgInN5c3RlbS5oIgorI2luY2x1ZGUgInRpbWVyLmgiCisKKy8vVE9ETzogVGhpcyBuZWVkcyBjYWxpYnJhdGlvbiBvbmNlIHdlIGZpZ3VyZSBvdXQgdGhlIGNsb2NraW5nCisKK3ZvaWQgSU5UX1RJTUVSQyh2b2lkKQoreworICAgIC8qIGNsZWFyIGludGVycnVwdCAqLworICAgIFRDQ09OID0gVENDT047CisgICAgCisgICAgaWYgKHBmbl90aW1lciAhPSBOVUxMKSB7CisgICAgICAgIHBmbl90aW1lcigpOworICAgIH0KK30KKworYm9vbCB0aW1lcl9zZXQobG9uZyBjeWNsZXMsIGJvb2wgc3RhcnQpCit7CisgICAgc3RhdGljIGNvbnN0IGludCBjc190YWJsZVtdID0gezEsIDIsIDQsIDZ9OworICAgIGludCBwcmVzY2FsZSwgY3M7CisgICAgbG9uZyBjb3VudDsKKworICAgIC8qIHN0b3AgYW5kIGNsZWFyIHRpbWVyICovCisgICAgVENDTUQgPSAoMSA8PCAxKTsgICAvKiBURF9DTFIgKi8KKworICAgIC8qIG9wdGlvbmFsbHkgdW5yZWdpc3RlciBhbnkgcHJldmlvdXNseSByZWdpc3RlcmVkIHRpbWVyIHVzZXIgKi8KKyAgICBpZiAoc3RhcnQpIHsKKyAgICAgICAgaWYgKHBmbl91bnJlZ2lzdGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHBmbl91bnJlZ2lzdGVyKCk7CisgICAgICAgICAgICBwZm5fdW5yZWdpc3RlciA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBzY2FsZSB0aGUgY291bnQgZG93biB3aXRoIHRoZSBjbG9jayBzZWxlY3QgKi8KKyAgICBmb3IgKGNzID0gMDsgY3MgPCA0OyBjcysrKSB7CisgICAgICAgIGNvdW50ID0gY3ljbGVzID4+IGNzX3RhYmxlW2NzXTsKKyAgICAgICAgaWYgKChjb3VudCA8IDY1NTM2KSB8fCAoY3MgPT0gMykpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIHNjYWxlIHRoZSBjb3VudCBkb3duIHdpdGggdGhlIHByZXNjYWxlciAqLworICAgIHByZXNjYWxlID0gMTsKKyAgICB3aGlsZSAoY291bnQgPj0gNjU1MzYpIHsKKyAgICAgICAgY291bnQgPj49IDE7CisgICAgICAgIHByZXNjYWxlIDw8PSAxOworICAgIH0KKworICAgIC8qIGNvbmZpZ3VyZSB0aW1lciAqLworICAgIFRDQ09OID0gKDEgPDwgMTIpIHwgICAgIC8qIFREX0lOVDBfRU4gKi8KKyAgICAgICAgICAgIChjcyA8PCA4KSB8ICAgICAvKiBUU19DUyAqLworICAgICAgICAgICAgKDAgPDwgNCk7ICAgICAgIC8qIFREX01PREVfU0VMLCAwID0gaW50ZXJ2YWwgbW9kZSAqLworICAgIFRDUFJFID0gcHJlc2NhbGUgLSAxOworICAgIFRDREFUQTAgPSBjb3VudDsKKyAgICBUQ0NNRCA9ICgxIDw8IDApOyAgICAgICAvKiBURF9FTkFCTEUgKi8KKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCB0aW1lcl9zdGFydCh2b2lkKQoreworICAgIFRDQ01EID0gKDEgPDwgMCk7ICAgICAgIC8qIFREX0VOQUJMRSAqLworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIHRpbWVyX3N0b3Aodm9pZCkKK3sKKyAgICBUQ0NNRCA9ICgwIDw8IDApOyAgICAgICAvKiBURF9FTkFCTEUgKi8KK30KKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGFyZ2V0L3NoL2FyY2hvcy9tYXNjb2RlYy1hcmNob3MuYyBiL2Zpcm13YXJlL3RhcmdldC9zaC9hcmNob3MvbWFzY29kZWMtYXJjaG9zLmMKaW5kZXggM2Y5MzIxNi4uMWViNmUxMCAxMDA2NDQKLS0tIGEvZmlybXdhcmUvdGFyZ2V0L3NoL2FyY2hvcy9tYXNjb2RlYy1hcmNob3MuYworKysgYi9maXJtd2FyZS90YXJnZXQvc2gvYXJjaG9zL21hc2NvZGVjLWFyY2hvcy5jCkBAIC01LDcgKzUsNyBAQAogICogICBKdWtlYm94ICAgIHwgICAgfCAgICggIDxfPiApICBcX19ffCAgICA8IHwgXF9cICggIDxfPiA+IDwgIDwKICAqICAgRmlybXdhcmUgICB8X19fX3xfICAvXF9fX18vIFxfX18gID5fX3xfIFx8X19fICAvXF9fX18vX18vXF8gXAogICogICAgICAgICAgICAgICAgICAgICBcLyAgICAgICAgICAgIFwvICAgICBcLyAgICBcLyAgICAgICAgICAgIFwvCi0gKiAkSWQ6IG1hcy5jIDE4ODA3IDIwMDgtMTAtMTQgMTE6MTI6MjBaIHphZ29yICQKKyAqICRJZCQKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIgYnkgTGludXMgTmllbHNlbiBGZWx0emluZwogICoKZGlmZiAtLWdpdCBhL3JidXRpbC9lMjAwcnBhdGNoZXIvZTIwMHJwYXRjaGVyLnJjIGIvcmJ1dGlsL2UyMDBycGF0Y2hlci9lMjAwcnBhdGNoZXIucmMKaW5kZXggZGFlNDNiYy4uNGQ4MDQ0MiAxMDA2NDQKLS0tIGEvcmJ1dGlsL2UyMDBycGF0Y2hlci9lMjAwcnBhdGNoZXIucmMKKysrIGIvcmJ1dGlsL2UyMDBycGF0Y2hlci9lMjAwcnBhdGNoZXIucmMKQEAgLTEgKzEgQEAKLTEgMjQgTU9WRUFCTEUgUFVSRSAiZTIwMHJwYXRjaGVyLm1hbmlmZXN0Ig0KKzEgMjQgTU9WRUFCTEUgUFVSRSAiZTIwMHJwYXRjaGVyLm1hbmlmZXN0IgpkaWZmIC0tZ2l0IGEvcmJ1dGlsL2lwb2RwYXRjaGVyL2lwb2RwYXRjaGVyLnJjIGIvcmJ1dGlsL2lwb2RwYXRjaGVyL2lwb2RwYXRjaGVyLnJjCmluZGV4IDM2ODgyNmUuLmU0NDBiNTEgMTAwNjQ0Ci0tLSBhL3JidXRpbC9pcG9kcGF0Y2hlci9pcG9kcGF0Y2hlci5yYworKysgYi9yYnV0aWwvaXBvZHBhdGNoZXIvaXBvZHBhdGNoZXIucmMKQEAgLTEgKzEgQEAKLTEgMjQgTU9WRUFCTEUgUFVSRSAiaXBvZHBhdGNoZXIubWFuaWZlc3QiDQorMSAyNCBNT1ZFQUJMRSBQVVJFICJpcG9kcGF0Y2hlci5tYW5pZmVzdCIKZGlmZiAtLWdpdCBhL3JidXRpbC9zYW5zYXBhdGNoZXIvc2Fuc2FwYXRjaGVyLnJjIGIvcmJ1dGlsL3NhbnNhcGF0Y2hlci9zYW5zYXBhdGNoZXIucmMKaW5kZXggNzA0MDYzNy4uMjZiYjhmZSAxMDA2NDQKLS0tIGEvcmJ1dGlsL3NhbnNhcGF0Y2hlci9zYW5zYXBhdGNoZXIucmMKKysrIGIvcmJ1dGlsL3NhbnNhcGF0Y2hlci9zYW5zYXBhdGNoZXIucmMKQEAgLTEgKzEgQEAKLTEgMjQgTU9WRUFCTEUgUFVSRSAic2Fuc2FwYXRjaGVyLm1hbmlmZXN0Ig0KKzEgMjQgTU9WRUFCTEUgUFVSRSAic2Fuc2FwYXRjaGVyLm1hbmlmZXN0IgpkaWZmIC0tZ2l0IGEvdXRpbHMvTVRQL3NlbmRmaXJtLm1hbmlmZXN0IGIvdXRpbHMvTVRQL3NlbmRmaXJtLm1hbmlmZXN0CmluZGV4IDMyNGM3MDcuLjMwN2I2YzIgMTAwNjQ0Ci0tLSBhL3V0aWxzL01UUC9zZW5kZmlybS5tYW5pZmVzdAorKysgYi91dGlscy9NVFAvc2VuZGZpcm0ubWFuaWZlc3QKQEAgLTEsOCArMSw4IEBACi08P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCcgc3RhbmRhbG9uZT0neWVzJz8+DQotPGFzc2VtYmx5IHhtbG5zPSd1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOmFzbS52MScgbWFuaWZlc3RWZXJzaW9uPScxLjAnPg0KLSAgPGRlcGVuZGVuY3k+DQotICAgIDxkZXBlbmRlbnRBc3NlbWJseT4NCi0gICAgICA8YXNzZW1ibHlJZGVudGl0eSB0eXBlPSd3aW4zMicgbmFtZT0nTWljcm9zb2Z0LlZDODAuQ1JUJyB2ZXJzaW9uPSc4LjAuNTA3MjcuNzYyJyBwcm9jZXNzb3JBcmNoaXRlY3R1cmU9J3g4NicgcHVibGljS2V5VG9rZW49JzFmYzhiM2I5YTFlMThlM2InIC8+DQotICAgIDwvZGVwZW5kZW50QXNzZW1ibHk+DQotICA8L2RlcGVuZGVuY3k+DQotPC9hc3NlbWJseT4NCis8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCcgc3RhbmRhbG9uZT0neWVzJz8+Cis8YXNzZW1ibHkgeG1sbnM9J3VybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206YXNtLnYxJyBtYW5pZmVzdFZlcnNpb249JzEuMCc+CisgIDxkZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbnRBc3NlbWJseT4KKyAgICAgIDxhc3NlbWJseUlkZW50aXR5IHR5cGU9J3dpbjMyJyBuYW1lPSdNaWNyb3NvZnQuVkM4MC5DUlQnIHZlcnNpb249JzguMC41MDcyNy43NjInIHByb2Nlc3NvckFyY2hpdGVjdHVyZT0neDg2JyBwdWJsaWNLZXlUb2tlbj0nMWZjOGIzYjlhMWUxOGUzYicgLz4KKyAgICA8L2RlcGVuZGVudEFzc2VtYmx5PgorICA8L2RlcGVuZGVuY3k+Cis8L2Fzc2VtYmx5PgpkaWZmIC0tZ2l0IGEvdXRpbHMvdGNjdG9vbC90Y2N0b29sLXdpbmRvd3MudHh0IGIvdXRpbHMvdGNjdG9vbC90Y2N0b29sLXdpbmRvd3MudHh0CmluZGV4IGQxMTZiZmUuLmYxOWUyYjAgMTAwNjQ0Ci0tLSBhL3V0aWxzL3RjY3Rvb2wvdGNjdG9vbC13aW5kb3dzLnR4dAorKysgYi91dGlscy90Y2N0b29sL3RjY3Rvb2wtd2luZG93cy50eHQKQEAgLTEsMzEgKzEsMzEgQEAKLXRjY3Rvb2wgZm9yIFdpbmRvd3MNCi0tLS0tLS0tLS0tLS0tLS0tLS0tDQotDQotSW5zdGFsbGF0aW9uDQotLS0tLS0tLS0tLS0tDQotDQotV2hlbiB5b3UgZmlyc3QgYXR0YWNoIHlvdXIgZGV2aWNlIGluIFVTQiBib290IG1vZGUgdG8geW91ciBjb21wdXRlciwNCi1XaW5kb3dzIHNob3VsZCBkaXNwbGF5IHRoZSBGb3VuZCBOZXcgSGFyZHdhcmUgV2l6YXJkLg0KLQ0KLUlmIHRoaXMgZG9lc24ndCBhcHBlYXIsIGFuZCBpZiB5b3UgaGF2ZSBwcmV2aW91c2x5IHVzZWQgYSBmaXJtd2FyZQ0KLXJlY292ZXJ5IHRvb2wgd2l0aCB5b3VyIGRldmljZSwgeW91IHdpbGwgbmVlZCB0byB1bmluc3RhbGwgdGhlIFVTQg0KLWRyaXZlciB1c2VkIGJ5IHRoYXQgYXBwbGljYXRpb24uDQotDQotR28gaW50byBDb250cm9sIFBhbmVsIC0+IFN5c3RlbSAtPiBIYXJkd2FyZSAtPiBEZXZpY2UgTWFuYWdlciwgdGhlbg0KLWNsaWNrIG9uIFVuaXZlcnNhbCBTZXJpYWwgQnVzIENvbnRyb2xsZXJzLCBsb29rIGZvciBzb21ldGhpbmcgbGlrZQ0KLSJUZWxlY2hpcHMgVENDNzd4IFZUQyBVU0IgRHJpdmVyIiwgcmlnaHQtY2xpY2sgb24gaXQgYW5kIHNlbGVjdA0KLVVuaW5zdGFsbC4NCi0NCi1BZnRlciBkb2luZyB0aGlzLCBkaXNjb25uZWN0IGFuZCByZWNvbm5lY3QgeW91ciBkZXZpY2UgYW5kIHRoZSBGb3VuZA0KLU5ldyBIYXJkd2FyZSBXaXphcmQgc2hvdWxkIGFwcGVhci4NCi0NCi1TZWxlY3QgIk5vLCBub3QgdGhpcyB0aW1lIiB0byB0aGUgcXVlc3Rpb24gYWJvdXQgY29ubmVjdGluZyB0byBXaW5kb3dzDQotVXBkYXRlLCBhbmQgc2VsZWN0ICJJbnN0YWxsIGZyb20gYSBsaXN0IG9yIHNwZWNpZmljIGxvY2F0aW9uDQotKEFkdmFuY2VkKSIgb24gdGhlIG5leHQgc2NyZWVuLg0KLQ0KLU9uIHRoZSBuZXh0IHNjcmVlbiwgc2VsZWN0ICJTZWFyY2ggZm9yIHRoZSBiZXN0IGRyaXZlciBpbiB0aGVzZQ0KLWxvY2F0aW9ucyIsIHVuc2VsZWN0ICJTZWFyY2ggcmVtb3ZhYmxlIG1lZGlhIiwgc2VsZWN0ICJJbmNsdWRlIHRoaXMNCi1sb2NhdGlvbiBpbiB0aGUgc2VhcmNoOiIgYW5kIGJyb3dzZSB0byB0aGUgdGNjdG9vbC1kcml2ZXItd2luMzINCi1mb2xkZXIuDQotDQotWW91IHNob3VsZCBub3cgYmUgYWJsZSB0byBydW4gdGNjdG9vbC5leGUNCit0Y2N0b29sIGZvciBXaW5kb3dzCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0luc3RhbGxhdGlvbgorLS0tLS0tLS0tLS0tCisKK1doZW4geW91IGZpcnN0IGF0dGFjaCB5b3VyIGRldmljZSBpbiBVU0IgYm9vdCBtb2RlIHRvIHlvdXIgY29tcHV0ZXIsCitXaW5kb3dzIHNob3VsZCBkaXNwbGF5IHRoZSBGb3VuZCBOZXcgSGFyZHdhcmUgV2l6YXJkLgorCitJZiB0aGlzIGRvZXNuJ3QgYXBwZWFyLCBhbmQgaWYgeW91IGhhdmUgcHJldmlvdXNseSB1c2VkIGEgZmlybXdhcmUKK3JlY292ZXJ5IHRvb2wgd2l0aCB5b3VyIGRldmljZSwgeW91IHdpbGwgbmVlZCB0byB1bmluc3RhbGwgdGhlIFVTQgorZHJpdmVyIHVzZWQgYnkgdGhhdCBhcHBsaWNhdGlvbi4KKworR28gaW50byBDb250cm9sIFBhbmVsIC0+IFN5c3RlbSAtPiBIYXJkd2FyZSAtPiBEZXZpY2UgTWFuYWdlciwgdGhlbgorY2xpY2sgb24gVW5pdmVyc2FsIFNlcmlhbCBCdXMgQ29udHJvbGxlcnMsIGxvb2sgZm9yIHNvbWV0aGluZyBsaWtlCisiVGVsZWNoaXBzIFRDQzc3eCBWVEMgVVNCIERyaXZlciIsIHJpZ2h0LWNsaWNrIG9uIGl0IGFuZCBzZWxlY3QKK1VuaW5zdGFsbC4KKworQWZ0ZXIgZG9pbmcgdGhpcywgZGlzY29ubmVjdCBhbmQgcmVjb25uZWN0IHlvdXIgZGV2aWNlIGFuZCB0aGUgRm91bmQKK05ldyBIYXJkd2FyZSBXaXphcmQgc2hvdWxkIGFwcGVhci4KKworU2VsZWN0ICJObywgbm90IHRoaXMgdGltZSIgdG8gdGhlIHF1ZXN0aW9uIGFib3V0IGNvbm5lY3RpbmcgdG8gV2luZG93cworVXBkYXRlLCBhbmQgc2VsZWN0ICJJbnN0YWxsIGZyb20gYSBsaXN0IG9yIHNwZWNpZmljIGxvY2F0aW9uCisoQWR2YW5jZWQpIiBvbiB0aGUgbmV4dCBzY3JlZW4uCisKK09uIHRoZSBuZXh0IHNjcmVlbiwgc2VsZWN0ICJTZWFyY2ggZm9yIHRoZSBiZXN0IGRyaXZlciBpbiB0aGVzZQorbG9jYXRpb25zIiwgdW5zZWxlY3QgIlNlYXJjaCByZW1vdmFibGUgbWVkaWEiLCBzZWxlY3QgIkluY2x1ZGUgdGhpcworbG9jYXRpb24gaW4gdGhlIHNlYXJjaDoiIGFuZCBicm93c2UgdG8gdGhlIHRjY3Rvb2wtZHJpdmVyLXdpbjMyCitmb2xkZXIuCisKK1lvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gcnVuIHRjY3Rvb2wuZXhlCmRpZmYgLS1naXQgYS91dGlscy90aGVtZWVkaXRvci9xdGZpbmRyZXBsYWNlZGlhbG9nL2ZpbmRyZXBsYWNlX2dsb2JhbC5oIGIvdXRpbHMvdGhlbWVlZGl0b3IvcXRmaW5kcmVwbGFjZWRpYWxvZy9maW5kcmVwbGFjZV9nbG9iYWwuaAppbmRleCBiZTcxYmZmLi44YjRiMmE4IDEwMDY0NAotLS0gYS91dGlscy90aGVtZWVkaXRvci9xdGZpbmRyZXBsYWNlZGlhbG9nL2ZpbmRyZXBsYWNlX2dsb2JhbC5oCisrKyBiL3V0aWxzL3RoZW1lZWRpdG9yL3F0ZmluZHJlcGxhY2VkaWFsb2cvZmluZHJlcGxhY2VfZ2xvYmFsLmgKQEAgLTEsMjEgKzEsMjEgQEAKLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDA5ICBMb3JlbnpvIEJldHRpbmkgPGh0dHA6Ly93d3cubG9yZW56b2JldHRpbmkuaXQ+DQotICogU2VlIENPUFlJTkcgZmlsZSB0aGF0IGNvbWVzIHdpdGggdGhpcyBkaXN0cmlidXRpb24NCi0gKi8NCi0NCi0jaWZuZGVmIEZJTkRSRVBMQUNFX0dMT0JBTF9IDQotI2RlZmluZSBGSU5EUkVQTEFDRV9HTE9CQUxfSA0KLQ0KLSNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPg0KLQ0KLSNpZm5kZWYgRklORFJFUExBQ0VfTk9MSUIgDQotI2lmIGRlZmluZWQoRklORFJFUExBQ0VfTElCUkFSWSkNCi0jICBkZWZpbmUgRklORFJFUExBQ0VTSEFSRURfRVhQT1JUIFFfREVDTF9FWFBPUlQNCi0jZWxzZQ0KLSMgIGRlZmluZSBGSU5EUkVQTEFDRVNIQVJFRF9FWFBPUlQgUV9ERUNMX0lNUE9SVA0KLSNlbmRpZg0KLSNlbHNlDQotI2RlZmluZSBGSU5EUkVQTEFDRVNIQVJFRF9FWFBPUlQNCi0jZW5kaWYNCi0NCi0jZW5kaWYgLy8gRklORFJFUExBQ0VfR0xPQkFMX0gNCisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5ICBMb3JlbnpvIEJldHRpbmkgPGh0dHA6Ly93d3cubG9yZW56b2JldHRpbmkuaXQ+CisgKiBTZWUgQ09QWUlORyBmaWxlIHRoYXQgY29tZXMgd2l0aCB0aGlzIGRpc3RyaWJ1dGlvbgorICovCisKKyNpZm5kZWYgRklORFJFUExBQ0VfR0xPQkFMX0gKKyNkZWZpbmUgRklORFJFUExBQ0VfR0xPQkFMX0gKKworI2luY2x1ZGUgPFF0Q29yZS9xZ2xvYmFsLmg+CisKKyNpZm5kZWYgRklORFJFUExBQ0VfTk9MSUIgCisjaWYgZGVmaW5lZChGSU5EUkVQTEFDRV9MSUJSQVJZKQorIyAgZGVmaW5lIEZJTkRSRVBMQUNFU0hBUkVEX0VYUE9SVCBRX0RFQ0xfRVhQT1JUCisjZWxzZQorIyAgZGVmaW5lIEZJTkRSRVBMQUNFU0hBUkVEX0VYUE9SVCBRX0RFQ0xfSU1QT1JUCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIEZJTkRSRVBMQUNFU0hBUkVEX0VYUE9SVAorI2VuZGlmCisKKyNlbmRpZiAvLyBGSU5EUkVQTEFDRV9HTE9CQUxfSApkaWZmIC0tZ2l0IGEvdXRpbHMvdGhlbWVlZGl0b3IvcXRmaW5kcmVwbGFjZWRpYWxvZy9maW5kcmVwbGFjZWRpYWxvZy51aSBiL3V0aWxzL3RoZW1lZWRpdG9yL3F0ZmluZHJlcGxhY2VkaWFsb2cvZmluZHJlcGxhY2VkaWFsb2cudWkKaW5kZXggNzQ5ODRiMy4uM2JjODM3ZSAxMDA2NDQKLS0tIGEvdXRpbHMvdGhlbWVlZGl0b3IvcXRmaW5kcmVwbGFjZWRpYWxvZy9maW5kcmVwbGFjZWRpYWxvZy51aQorKysgYi91dGlscy90aGVtZWVkaXRvci9xdGZpbmRyZXBsYWNlZGlhbG9nL2ZpbmRyZXBsYWNlZGlhbG9nLnVpCkBAIC0xLDMyICsxLDMyIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KLTx1aSB2ZXJzaW9uPSI0LjAiPg0KLSA8Y2xhc3M+RmluZFJlcGxhY2VEaWFsb2c8L2NsYXNzPg0KLSA8d2lkZ2V0IGNsYXNzPSJRRGlhbG9nIiBuYW1lPSJGaW5kUmVwbGFjZURpYWxvZyI+DQotICA8cHJvcGVydHkgbmFtZT0iZ2VvbWV0cnkiPg0KLSAgIDxyZWN0Pg0KLSAgICA8eD4wPC94Pg0KLSAgICA8eT4wPC95Pg0KLSAgICA8d2lkdGg+MzQyPC93aWR0aD4NCi0gICAgPGhlaWdodD4xNDA8L2hlaWdodD4NCi0gICA8L3JlY3Q+DQotICA8L3Byb3BlcnR5Pg0KLSAgPHByb3BlcnR5IG5hbWU9IndpbmRvd1RpdGxlIj4NCi0gICA8c3RyaW5nPkZpbmQvUmVwbGFjZTwvc3RyaW5nPg0KLSAgPC9wcm9wZXJ0eT4NCi0gIDxsYXlvdXQgY2xhc3M9IlFHcmlkTGF5b3V0IiBuYW1lPSJncmlkTGF5b3V0Ij4NCi0gICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCI+DQotICAgIDx3aWRnZXQgY2xhc3M9IkZpbmRSZXBsYWNlRm9ybSIgbmFtZT0iZmluZFJlcGxhY2VGb3JtIiBuYXRpdmU9InRydWUiLz4NCi0gICA8L2l0ZW0+DQotICA8L2xheW91dD4NCi0gPC93aWRnZXQ+DQotIDxjdXN0b213aWRnZXRzPg0KLSAgPGN1c3RvbXdpZGdldD4NCi0gICA8Y2xhc3M+RmluZFJlcGxhY2VGb3JtPC9jbGFzcz4NCi0gICA8ZXh0ZW5kcz5RV2lkZ2V0PC9leHRlbmRzPg0KLSAgIDxoZWFkZXIgbG9jYXRpb249Imdsb2JhbCI+ZmluZHJlcGxhY2Vmb3JtLmg8L2hlYWRlcj4NCi0gICA8Y29udGFpbmVyPjE8L2NvbnRhaW5lcj4NCi0gIDwvY3VzdG9td2lkZ2V0Pg0KLSA8L2N1c3RvbXdpZGdldHM+DQotIDxyZXNvdXJjZXMvPg0KLSA8Y29ubmVjdGlvbnMvPg0KLTwvdWk+DQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx1aSB2ZXJzaW9uPSI0LjAiPgorIDxjbGFzcz5GaW5kUmVwbGFjZURpYWxvZzwvY2xhc3M+CisgPHdpZGdldCBjbGFzcz0iUURpYWxvZyIgbmFtZT0iRmluZFJlcGxhY2VEaWFsb2ciPgorICA8cHJvcGVydHkgbmFtZT0iZ2VvbWV0cnkiPgorICAgPHJlY3Q+CisgICAgPHg+MDwveD4KKyAgICA8eT4wPC95PgorICAgIDx3aWR0aD4zNDI8L3dpZHRoPgorICAgIDxoZWlnaHQ+MTQwPC9oZWlnaHQ+CisgICA8L3JlY3Q+CisgIDwvcHJvcGVydHk+CisgIDxwcm9wZXJ0eSBuYW1lPSJ3aW5kb3dUaXRsZSI+CisgICA8c3RyaW5nPkZpbmQvUmVwbGFjZTwvc3RyaW5nPgorICA8L3Byb3BlcnR5PgorICA8bGF5b3V0IGNsYXNzPSJRR3JpZExheW91dCIgbmFtZT0iZ3JpZExheW91dCI+CisgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCI+CisgICAgPHdpZGdldCBjbGFzcz0iRmluZFJlcGxhY2VGb3JtIiBuYW1lPSJmaW5kUmVwbGFjZUZvcm0iIG5hdGl2ZT0idHJ1ZSIvPgorICAgPC9pdGVtPgorICA8L2xheW91dD4KKyA8L3dpZGdldD4KKyA8Y3VzdG9td2lkZ2V0cz4KKyAgPGN1c3RvbXdpZGdldD4KKyAgIDxjbGFzcz5GaW5kUmVwbGFjZUZvcm08L2NsYXNzPgorICAgPGV4dGVuZHM+UVdpZGdldDwvZXh0ZW5kcz4KKyAgIDxoZWFkZXIgbG9jYXRpb249Imdsb2JhbCI+ZmluZHJlcGxhY2Vmb3JtLmg8L2hlYWRlcj4KKyAgIDxjb250YWluZXI+MTwvY29udGFpbmVyPgorICA8L2N1c3RvbXdpZGdldD4KKyA8L2N1c3RvbXdpZGdldHM+CisgPHJlc291cmNlcy8+CisgPGNvbm5lY3Rpb25zLz4KKzwvdWk+CmRpZmYgLS1naXQgYS91dGlscy90aGVtZWVkaXRvci9xdGZpbmRyZXBsYWNlZGlhbG9nL2ZpbmRyZXBsYWNlZm9ybS51aSBiL3V0aWxzL3RoZW1lZWRpdG9yL3F0ZmluZHJlcGxhY2VkaWFsb2cvZmluZHJlcGxhY2Vmb3JtLnVpCmluZGV4IGFjYzA1NWMuLmE2OGUxMjAgMTAwNjQ0Ci0tLSBhL3V0aWxzL3RoZW1lZWRpdG9yL3F0ZmluZHJlcGxhY2VkaWFsb2cvZmluZHJlcGxhY2Vmb3JtLnVpCisrKyBiL3V0aWxzL3RoZW1lZWRpdG9yL3F0ZmluZHJlcGxhY2VkaWFsb2cvZmluZHJlcGxhY2Vmb3JtLnVpCkBAIC0xLDIwNCArMSwyMDQgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPHVpIHZlcnNpb249IjQuMCI+DQotIDxjbGFzcz5GaW5kUmVwbGFjZUZvcm08L2NsYXNzPg0KLSA8d2lkZ2V0IGNsYXNzPSJRV2lkZ2V0IiBuYW1lPSJGaW5kUmVwbGFjZUZvcm0iPg0KLSAgPHByb3BlcnR5IG5hbWU9Imdlb21ldHJ5Ij4NCi0gICA8cmVjdD4NCi0gICAgPHg+MDwveD4NCi0gICAgPHk+MDwveT4NCi0gICAgPHdpZHRoPjQ4Mzwvd2lkdGg+DQotICAgIDxoZWlnaHQ+Mjg4PC9oZWlnaHQ+DQotICAgPC9yZWN0Pg0KLSAgPC9wcm9wZXJ0eT4NCi0gIDxwcm9wZXJ0eSBuYW1lPSJ3aW5kb3dUaXRsZSI+DQotICAgPHN0cmluZz5Gb3JtPC9zdHJpbmc+DQotICA8L3Byb3BlcnR5Pg0KLSAgPGxheW91dCBjbGFzcz0iUUdyaWRMYXlvdXQiIG5hbWU9ImdyaWRMYXlvdXQiPg0KLSAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIwIj4NCi0gICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0XzUiPg0KLSAgICAgPGl0ZW0+DQotICAgICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0XzIiPg0KLSAgICAgICA8aXRlbT4NCi0gICAgICAgIDxsYXlvdXQgY2xhc3M9IlFHcmlkTGF5b3V0IiBuYW1lPSJncmlkTGF5b3V0XzMiPg0KLSAgICAgICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIwIj4NCi0gICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJsYWJlbCI+DQotICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+DQotICAgICAgICAgICAgPHN0cmluZz4mYW1wO0ZpbmQ6PC9zdHJpbmc+DQotICAgICAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1ZGR5Ij4NCi0gICAgICAgICAgICA8Y3N0cmluZz50ZXh0VG9GaW5kPC9jc3RyaW5nPg0KLSAgICAgICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICAgICAgPC93aWRnZXQ+DQotICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIxIj4NCi0gICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxpbmVFZGl0IiBuYW1lPSJ0ZXh0VG9GaW5kIi8+DQotICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgIDxpdGVtIHJvdz0iMSIgY29sdW1uPSIwIj4NCi0gICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJyZXBsYWNlTGFiZWwiPg0KLSAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgICAgIDxzdHJpbmc+UiZhbXA7ZXBsYWNlIHdpdGg6PC9zdHJpbmc+DQotICAgICAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1ZGR5Ij4NCi0gICAgICAgICAgICA8Y3N0cmluZz50ZXh0VG9SZXBsYWNlPC9jc3RyaW5nPg0KLSAgICAgICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICAgICAgPC93aWRnZXQ+DQotICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgIDxpdGVtIHJvdz0iMSIgY29sdW1uPSIxIj4NCi0gICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxpbmVFZGl0IiBuYW1lPSJ0ZXh0VG9SZXBsYWNlIi8+DQotICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgPC9sYXlvdXQ+DQotICAgICAgIDwvaXRlbT4NCi0gICAgICA8L2xheW91dD4NCi0gICAgIDwvaXRlbT4NCi0gICAgIDxpdGVtPg0KLSAgICAgIDx3aWRnZXQgY2xhc3M9IlFMYWJlbCIgbmFtZT0iZXJyb3JMYWJlbCI+DQotICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4NCi0gICAgICAgIDxzdHJpbmc+ZXJyb3JMYWJlbDwvc3RyaW5nPg0KLSAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgIDwvd2lkZ2V0Pg0KLSAgICAgPC9pdGVtPg0KLSAgICAgPGl0ZW0+DQotICAgICAgPGxheW91dCBjbGFzcz0iUUhCb3hMYXlvdXQiIG5hbWU9Imhvcml6b250YWxMYXlvdXQiPg0KLSAgICAgICA8aXRlbT4NCi0gICAgICAgIDx3aWRnZXQgY2xhc3M9IlFHcm91cEJveCIgbmFtZT0iZ3JvdXBCb3giPg0KLSAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0aXRsZSI+DQotICAgICAgICAgIDxzdHJpbmc+RCZhbXA7aXJlY3Rpb248L3N0cmluZz4NCi0gICAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dF8zIj4NCi0gICAgICAgICAgPGl0ZW0+DQotICAgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRUmFkaW9CdXR0b24iIG5hbWU9ImRvd25SYWRpb0J1dHRvbiI+DQotICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgICAgICA8c3RyaW5nPiZhbXA7RG93bjwvc3RyaW5nPg0KLSAgICAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNoZWNrZWQiPg0KLSAgICAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPg0KLSAgICAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgICA8L3dpZGdldD4NCi0gICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgICA8aXRlbT4NCi0gICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFSYWRpb0J1dHRvbiIgbmFtZT0idXBSYWRpb0J1dHRvbiI+DQotICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgICAgICA8c3RyaW5nPiZhbXA7VXA8L3N0cmluZz4NCi0gICAgICAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgICAgICAgPC93aWRnZXQ+DQotICAgICAgICAgIDwvaXRlbT4NCi0gICAgICAgICA8L2xheW91dD4NCi0gICAgICAgIDwvd2lkZ2V0Pg0KLSAgICAgICA8L2l0ZW0+DQotICAgICAgIDxpdGVtPg0KLSAgICAgICAgPHdpZGdldCBjbGFzcz0iUUdyb3VwQm94IiBuYW1lPSJncm91cEJveF8yIj4NCi0gICAgICAgICA8cHJvcGVydHkgbmFtZT0idGl0bGUiPg0KLSAgICAgICAgICA8c3RyaW5nPiZhbXA7T3B0aW9uczwvc3RyaW5nPg0KLSAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0XzQiPg0KLSAgICAgICAgICA8aXRlbT4NCi0gICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDaGVja0JveCIgbmFtZT0iY2FzZUNoZWNrQm94Ij4NCi0gICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+DQotICAgICAgICAgICAgIDxzdHJpbmc+JmFtcDtDYXNlIHNlbnNpdGl2ZTwvc3RyaW5nPg0KLSAgICAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgICA8L3dpZGdldD4NCi0gICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgICA8aXRlbT4NCi0gICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDaGVja0JveCIgbmFtZT0id2hvbGVDaGVja0JveCI+DQotICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgICAgICA8c3RyaW5nPiZhbXA7V2hvbGUgd29yZHMgb25seTwvc3RyaW5nPg0KLSAgICAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgICA8L3dpZGdldD4NCi0gICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgICA8aXRlbT4NCi0gICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDaGVja0JveCIgbmFtZT0icmVnZXhDaGVja0JveCI+DQotICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRvb2xUaXAiPg0KLSAgICAgICAgICAgICA8c3RyaW5nPiZsdDshRE9DVFlQRSBIVE1MIFBVQkxJQyAmcXVvdDstLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4mcXVvdDsgJnF1b3Q7aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9zdHJpY3QuZHRkJnF1b3Q7Jmd0Ow0KLSZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OyZsdDttZXRhIG5hbWU9JnF1b3Q7cXJpY2h0ZXh0JnF1b3Q7IGNvbnRlbnQ9JnF1b3Q7MSZxdW90OyAvJmd0OyZsdDtzdHlsZSB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7Jmd0Ow0KLXAsIGxpIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9DQotJmx0Oy9zdHlsZSZndDsmbHQ7L2hlYWQmZ3Q7Jmx0O2JvZHkgc3R5bGU9JnF1b3Q7IGZvbnQtZmFtaWx5OidTYW5zJzsgZm9udC1zaXplOjEwcHQ7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7JnF1b3Q7Jmd0Ow0KLSZsdDtwIHN0eWxlPSZxdW90OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IG1hcmdpbi1sZWZ0OjBweDsgbWFyZ2luLXJpZ2h0OjBweDsgLXF0LWJsb2NrLWluZGVudDowOyB0ZXh0LWluZGVudDowcHg7JnF1b3Q7Jmd0O3doZXRoZXIgdGhlIHRleHQgdG8gc2VhcmNoIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4mbHQ7L3AmZ3Q7DQotJmx0O3Agc3R5bGU9JnF1b3Q7LXF0LXBhcmFncmFwaC10eXBlOmVtcHR5OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IG1hcmdpbi1sZWZ0OjBweDsgbWFyZ2luLXJpZ2h0OjBweDsgLXF0LWJsb2NrLWluZGVudDowOyB0ZXh0LWluZGVudDowcHg7JnF1b3Q7Jmd0OyZsdDsvcCZndDsNCi0mbHQ7cCBzdHlsZT0mcXVvdDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi1yaWdodDowcHg7IC1xdC1ibG9jay1pbmRlbnQ6MDsgdGV4dC1pbmRlbnQ6MHB4OyZxdW90OyZndDtZb3UgbWF5IHdhbnQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIHN5bnRheCBvZiByZWd1bGFyIGV4cHJlc3Npb25zOiZsdDsvcCZndDsNCi0mbHQ7cCBzdHlsZT0mcXVvdDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi1yaWdodDowcHg7IC1xdC1ibG9jay1pbmRlbnQ6MDsgdGV4dC1pbmRlbnQ6MHB4OyZxdW90OyZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9kb2MudHJvbGx0ZWNoLmNvbS9xcmVnZXhwLmh0bWwmcXVvdDsmZ3Q7Jmx0O3NwYW4gc3R5bGU9JnF1b3Q7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBjb2xvcjojMDAwMGZmOyZxdW90OyZndDtodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXJlZ2V4cC5odG1sJmx0Oy9zcGFuJmd0OyZsdDsvYSZndDsmbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDs8L3N0cmluZz4NCi0gICAgICAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4NCi0gICAgICAgICAgICAgPHN0cmluZz5SJmFtcDtlZ3VsYXIgRXhwcmVzc2lvbjwvc3RyaW5nPg0KLSAgICAgICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgICAgICA8L3dpZGdldD4NCi0gICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgIDwvbGF5b3V0Pg0KLSAgICAgICAgPC93aWRnZXQ+DQotICAgICAgIDwvaXRlbT4NCi0gICAgICA8L2xheW91dD4NCi0gICAgIDwvaXRlbT4NCi0gICAgPC9sYXlvdXQ+DQotICAgPC9pdGVtPg0KLSAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIxIj4NCi0gICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0Ij4NCi0gICAgIDxwcm9wZXJ0eSBuYW1lPSJsZWZ0TWFyZ2luIj4NCi0gICAgICA8bnVtYmVyPjEwPC9udW1iZXI+DQotICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgPGl0ZW0+DQotICAgICAgPHdpZGdldCBjbGFzcz0iUVB1c2hCdXR0b24iIG5hbWU9ImZpbmRCdXR0b24iPg0KLSAgICAgICA8cHJvcGVydHkgbmFtZT0iZW5hYmxlZCI+DQotICAgICAgICA8Ym9vbD5mYWxzZTwvYm9vbD4NCi0gICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgPHN0cmluZz4mYW1wO0ZpbmQ8L3N0cmluZz4NCi0gICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICA8L3dpZGdldD4NCi0gICAgIDwvaXRlbT4NCi0gICAgIDxpdGVtPg0KLSAgICAgIDx3aWRnZXQgY2xhc3M9IlFQdXNoQnV0dG9uIiBuYW1lPSJjbG9zZUJ1dHRvbiI+DQotICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4NCi0gICAgICAgIDxzdHJpbmc+JmFtcDtDbG9zZTwvc3RyaW5nPg0KLSAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgIDwvd2lkZ2V0Pg0KLSAgICAgPC9pdGVtPg0KLSAgICAgPGl0ZW0+DQotICAgICAgPHdpZGdldCBjbGFzcz0iUVB1c2hCdXR0b24iIG5hbWU9InJlcGxhY2VCdXR0b24iPg0KLSAgICAgICA8cHJvcGVydHkgbmFtZT0iZW5hYmxlZCI+DQotICAgICAgICA8Ym9vbD5mYWxzZTwvYm9vbD4NCi0gICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPg0KLSAgICAgICAgPHN0cmluZz4mYW1wO1JlcGxhY2U8L3N0cmluZz4NCi0gICAgICAgPC9wcm9wZXJ0eT4NCi0gICAgICA8L3dpZGdldD4NCi0gICAgIDwvaXRlbT4NCi0gICAgIDxpdGVtPg0KLSAgICAgIDx3aWRnZXQgY2xhc3M9IlFQdXNoQnV0dG9uIiBuYW1lPSJyZXBsYWNlQWxsQnV0dG9uIj4NCi0gICAgICAgPHByb3BlcnR5IG5hbWU9ImVuYWJsZWQiPg0KLSAgICAgICAgPGJvb2w+ZmFsc2U8L2Jvb2w+DQotICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4NCi0gICAgICAgIDxzdHJpbmc+UmVwbGFjZSAmYW1wO0FsbDwvc3RyaW5nPg0KLSAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgIDwvd2lkZ2V0Pg0KLSAgICAgPC9pdGVtPg0KLSAgICAgPGl0ZW0+DQotICAgICAgPHNwYWNlciBuYW1lPSJ2ZXJ0aWNhbFNwYWNlciI+DQotICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcmllbnRhdGlvbiI+DQotICAgICAgICA8ZW51bT5RdDo6VmVydGljYWw8L2VudW0+DQotICAgICAgIDwvcHJvcGVydHk+DQotICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaXplSGludCIgc3Rkc2V0PSIwIj4NCi0gICAgICAgIDxzaXplPg0KLSAgICAgICAgIDx3aWR0aD4yMDwvd2lkdGg+DQotICAgICAgICAgPGhlaWdodD40MDwvaGVpZ2h0Pg0KLSAgICAgICAgPC9zaXplPg0KLSAgICAgICA8L3Byb3BlcnR5Pg0KLSAgICAgIDwvc3BhY2VyPg0KLSAgICAgPC9pdGVtPg0KLSAgICA8L2xheW91dD4NCi0gICA8L2l0ZW0+DQotICA8L2xheW91dD4NCi0gPC93aWRnZXQ+DQotIDx0YWJzdG9wcz4NCi0gIDx0YWJzdG9wPnRleHRUb0ZpbmQ8L3RhYnN0b3A+DQotICA8dGFic3RvcD50ZXh0VG9SZXBsYWNlPC90YWJzdG9wPg0KLSAgPHRhYnN0b3A+ZG93blJhZGlvQnV0dG9uPC90YWJzdG9wPg0KLSAgPHRhYnN0b3A+dXBSYWRpb0J1dHRvbjwvdGFic3RvcD4NCi0gIDx0YWJzdG9wPmNhc2VDaGVja0JveDwvdGFic3RvcD4NCi0gIDx0YWJzdG9wPndob2xlQ2hlY2tCb3g8L3RhYnN0b3A+DQotICA8dGFic3RvcD5yZWdleENoZWNrQm94PC90YWJzdG9wPg0KLSAgPHRhYnN0b3A+ZmluZEJ1dHRvbjwvdGFic3RvcD4NCi0gIDx0YWJzdG9wPmNsb3NlQnV0dG9uPC90YWJzdG9wPg0KLSA8L3RhYnN0b3BzPg0KLSA8cmVzb3VyY2VzLz4NCi0gPGNvbm5lY3Rpb25zLz4NCi08L3VpPg0KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8dWkgdmVyc2lvbj0iNC4wIj4KKyA8Y2xhc3M+RmluZFJlcGxhY2VGb3JtPC9jbGFzcz4KKyA8d2lkZ2V0IGNsYXNzPSJRV2lkZ2V0IiBuYW1lPSJGaW5kUmVwbGFjZUZvcm0iPgorICA8cHJvcGVydHkgbmFtZT0iZ2VvbWV0cnkiPgorICAgPHJlY3Q+CisgICAgPHg+MDwveD4KKyAgICA8eT4wPC95PgorICAgIDx3aWR0aD40ODM8L3dpZHRoPgorICAgIDxoZWlnaHQ+Mjg4PC9oZWlnaHQ+CisgICA8L3JlY3Q+CisgIDwvcHJvcGVydHk+CisgIDxwcm9wZXJ0eSBuYW1lPSJ3aW5kb3dUaXRsZSI+CisgICA8c3RyaW5nPkZvcm08L3N0cmluZz4KKyAgPC9wcm9wZXJ0eT4KKyAgPGxheW91dCBjbGFzcz0iUUdyaWRMYXlvdXQiIG5hbWU9ImdyaWRMYXlvdXQiPgorICAgPGl0ZW0gcm93PSIwIiBjb2x1bW49IjAiPgorICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dF81Ij4KKyAgICAgPGl0ZW0+CisgICAgICA8bGF5b3V0IGNsYXNzPSJRVkJveExheW91dCIgbmFtZT0idmVydGljYWxMYXlvdXRfMiI+CisgICAgICAgPGl0ZW0+CisgICAgICAgIDxsYXlvdXQgY2xhc3M9IlFHcmlkTGF5b3V0IiBuYW1lPSJncmlkTGF5b3V0XzMiPgorICAgICAgICAgPGl0ZW0gcm93PSIwIiBjb2x1bW49IjAiPgorICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFMYWJlbCIgbmFtZT0ibGFiZWwiPgorICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICA8c3RyaW5nPiZhbXA7RmluZDo8L3N0cmluZz4KKyAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1ZGR5Ij4KKyAgICAgICAgICAgIDxjc3RyaW5nPnRleHRUb0ZpbmQ8L2NzdHJpbmc+CisgICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgICA8L2l0ZW0+CisgICAgICAgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMSI+CisgICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxpbmVFZGl0IiBuYW1lPSJ0ZXh0VG9GaW5kIi8+CisgICAgICAgICA8L2l0ZW0+CisgICAgICAgICA8aXRlbSByb3c9IjEiIGNvbHVtbj0iMCI+CisgICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJyZXBsYWNlTGFiZWwiPgorICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICA8c3RyaW5nPlImYW1wO2VwbGFjZSB3aXRoOjwvc3RyaW5nPgorICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iYnVkZHkiPgorICAgICAgICAgICAgPGNzdHJpbmc+dGV4dFRvUmVwbGFjZTwvY3N0cmluZz4KKyAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgIDwvaXRlbT4KKyAgICAgICAgIDxpdGVtIHJvdz0iMSIgY29sdW1uPSIxIj4KKyAgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRTGluZUVkaXQiIG5hbWU9InRleHRUb1JlcGxhY2UiLz4KKyAgICAgICAgIDwvaXRlbT4KKyAgICAgICAgPC9sYXlvdXQ+CisgICAgICAgPC9pdGVtPgorICAgICAgPC9sYXlvdXQ+CisgICAgIDwvaXRlbT4KKyAgICAgPGl0ZW0+CisgICAgICA8d2lkZ2V0IGNsYXNzPSJRTGFiZWwiIG5hbWU9ImVycm9yTGFiZWwiPgorICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPHN0cmluZz5lcnJvckxhYmVsPC9zdHJpbmc+CisgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgIDwvd2lkZ2V0PgorICAgICA8L2l0ZW0+CisgICAgIDxpdGVtPgorICAgICAgPGxheW91dCBjbGFzcz0iUUhCb3hMYXlvdXQiIG5hbWU9Imhvcml6b250YWxMYXlvdXQiPgorICAgICAgIDxpdGVtPgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRR3JvdXBCb3giIG5hbWU9Imdyb3VwQm94Ij4KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0aXRsZSI+CisgICAgICAgICAgPHN0cmluZz5EJmFtcDtpcmVjdGlvbjwvc3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dF8zIj4KKyAgICAgICAgICA8aXRlbT4KKyAgICAgICAgICAgPHdpZGdldCBjbGFzcz0iUVJhZGlvQnV0dG9uIiBuYW1lPSJkb3duUmFkaW9CdXR0b24iPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICAgICAgIDxzdHJpbmc+JmFtcDtEb3duPC9zdHJpbmc+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNoZWNrZWQiPgorICAgICAgICAgICAgIDxib29sPnRydWU8L2Jvb2w+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgPGl0ZW0+CisgICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFSYWRpb0J1dHRvbiIgbmFtZT0idXBSYWRpb0J1dHRvbiI+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICAgPHN0cmluZz4mYW1wO1VwPC9zdHJpbmc+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICA8L2xheW91dD4KKyAgICAgICAgPC93aWRnZXQ+CisgICAgICAgPC9pdGVtPgorICAgICAgIDxpdGVtPgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRR3JvdXBCb3giIG5hbWU9Imdyb3VwQm94XzIiPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRpdGxlIj4KKyAgICAgICAgICA8c3RyaW5nPiZhbXA7T3B0aW9uczwvc3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dF80Ij4KKyAgICAgICAgICA8aXRlbT4KKyAgICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUNoZWNrQm94IiBuYW1lPSJjYXNlQ2hlY2tCb3giPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICAgICAgIDxzdHJpbmc+JmFtcDtDYXNlIHNlbnNpdGl2ZTwvc3RyaW5nPgorICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgICAgPC9pdGVtPgorICAgICAgICAgIDxpdGVtPgorICAgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRQ2hlY2tCb3giIG5hbWU9Indob2xlQ2hlY2tCb3giPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICAgICAgIDxzdHJpbmc+JmFtcDtXaG9sZSB3b3JkcyBvbmx5PC9zdHJpbmc+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgPGl0ZW0+CisgICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDaGVja0JveCIgbmFtZT0icmVnZXhDaGVja0JveCI+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9vbFRpcCI+CisgICAgICAgICAgICAgPHN0cmluZz4mbHQ7IURPQ1RZUEUgSFRNTCBQVUJMSUMgJnF1b3Q7LS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOJnF1b3Q7ICZxdW90O2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvc3RyaWN0LmR0ZCZxdW90OyZndDsKKyZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OyZsdDttZXRhIG5hbWU9JnF1b3Q7cXJpY2h0ZXh0JnF1b3Q7IGNvbnRlbnQ9JnF1b3Q7MSZxdW90OyAvJmd0OyZsdDtzdHlsZSB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7Jmd0OworcCwgbGkgeyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH0KKyZsdDsvc3R5bGUmZ3Q7Jmx0Oy9oZWFkJmd0OyZsdDtib2R5IHN0eWxlPSZxdW90OyBmb250LWZhbWlseTonU2Fucyc7IGZvbnQtc2l6ZToxMHB0OyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyZxdW90OyZndDsKKyZsdDtwIHN0eWxlPSZxdW90OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IG1hcmdpbi1sZWZ0OjBweDsgbWFyZ2luLXJpZ2h0OjBweDsgLXF0LWJsb2NrLWluZGVudDowOyB0ZXh0LWluZGVudDowcHg7JnF1b3Q7Jmd0O3doZXRoZXIgdGhlIHRleHQgdG8gc2VhcmNoIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4mbHQ7L3AmZ3Q7CismbHQ7cCBzdHlsZT0mcXVvdDstcXQtcGFyYWdyYXBoLXR5cGU6ZW1wdHk7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgbWFyZ2luLWxlZnQ6MHB4OyBtYXJnaW4tcmlnaHQ6MHB4OyAtcXQtYmxvY2staW5kZW50OjA7IHRleHQtaW5kZW50OjBweDsmcXVvdDsmZ3Q7Jmx0Oy9wJmd0OworJmx0O3Agc3R5bGU9JnF1b3Q7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgbWFyZ2luLWxlZnQ6MHB4OyBtYXJnaW4tcmlnaHQ6MHB4OyAtcXQtYmxvY2staW5kZW50OjA7IHRleHQtaW5kZW50OjBweDsmcXVvdDsmZ3Q7WW91IG1heSB3YW50IHRvIHRha2UgYSBsb29rIGF0IHRoZSBzeW50YXggb2YgcmVndWxhciBleHByZXNzaW9uczombHQ7L3AmZ3Q7CismbHQ7cCBzdHlsZT0mcXVvdDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi1yaWdodDowcHg7IC1xdC1ibG9jay1pbmRlbnQ6MDsgdGV4dC1pbmRlbnQ6MHB4OyZxdW90OyZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9kb2MudHJvbGx0ZWNoLmNvbS9xcmVnZXhwLmh0bWwmcXVvdDsmZ3Q7Jmx0O3NwYW4gc3R5bGU9JnF1b3Q7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBjb2xvcjojMDAwMGZmOyZxdW90OyZndDtodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vcXJlZ2V4cC5odG1sJmx0Oy9zcGFuJmd0OyZsdDsvYSZndDsmbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDs8L3N0cmluZz4KKyAgICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICAgPHN0cmluZz5SJmFtcDtlZ3VsYXIgRXhwcmVzc2lvbjwvc3RyaW5nPgorICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgICAgPC9pdGVtPgorICAgICAgICAgPC9sYXlvdXQ+CisgICAgICAgIDwvd2lkZ2V0PgorICAgICAgIDwvaXRlbT4KKyAgICAgIDwvbGF5b3V0PgorICAgICA8L2l0ZW0+CisgICAgPC9sYXlvdXQ+CisgICA8L2l0ZW0+CisgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMSI+CisgICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0Ij4KKyAgICAgPHByb3BlcnR5IG5hbWU9ImxlZnRNYXJnaW4iPgorICAgICAgPG51bWJlcj4xMDwvbnVtYmVyPgorICAgICA8L3Byb3BlcnR5PgorICAgICA8aXRlbT4KKyAgICAgIDx3aWRnZXQgY2xhc3M9IlFQdXNoQnV0dG9uIiBuYW1lPSJmaW5kQnV0dG9uIj4KKyAgICAgICA8cHJvcGVydHkgbmFtZT0iZW5hYmxlZCI+CisgICAgICAgIDxib29sPmZhbHNlPC9ib29sPgorICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICA8c3RyaW5nPiZhbXA7RmluZDwvc3RyaW5nPgorICAgICAgIDwvcHJvcGVydHk+CisgICAgICA8L3dpZGdldD4KKyAgICAgPC9pdGVtPgorICAgICA8aXRlbT4KKyAgICAgIDx3aWRnZXQgY2xhc3M9IlFQdXNoQnV0dG9uIiBuYW1lPSJjbG9zZUJ1dHRvbiI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICA8c3RyaW5nPiZhbXA7Q2xvc2U8L3N0cmluZz4KKyAgICAgICA8L3Byb3BlcnR5PgorICAgICAgPC93aWRnZXQ+CisgICAgIDwvaXRlbT4KKyAgICAgPGl0ZW0+CisgICAgICA8d2lkZ2V0IGNsYXNzPSJRUHVzaEJ1dHRvbiIgbmFtZT0icmVwbGFjZUJ1dHRvbiI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9ImVuYWJsZWQiPgorICAgICAgICA8Ym9vbD5mYWxzZTwvYm9vbD4KKyAgICAgICA8L3Byb3BlcnR5PgorICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPHN0cmluZz4mYW1wO1JlcGxhY2U8L3N0cmluZz4KKyAgICAgICA8L3Byb3BlcnR5PgorICAgICAgPC93aWRnZXQ+CisgICAgIDwvaXRlbT4KKyAgICAgPGl0ZW0+CisgICAgICA8d2lkZ2V0IGNsYXNzPSJRUHVzaEJ1dHRvbiIgbmFtZT0icmVwbGFjZUFsbEJ1dHRvbiI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9ImVuYWJsZWQiPgorICAgICAgICA8Ym9vbD5mYWxzZTwvYm9vbD4KKyAgICAgICA8L3Byb3BlcnR5PgorICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPHN0cmluZz5SZXBsYWNlICZhbXA7QWxsPC9zdHJpbmc+CisgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgIDwvd2lkZ2V0PgorICAgICA8L2l0ZW0+CisgICAgIDxpdGVtPgorICAgICAgPHNwYWNlciBuYW1lPSJ2ZXJ0aWNhbFNwYWNlciI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9Im9yaWVudGF0aW9uIj4KKyAgICAgICAgPGVudW0+UXQ6OlZlcnRpY2FsPC9lbnVtPgorICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgPHByb3BlcnR5IG5hbWU9InNpemVIaW50IiBzdGRzZXQ9IjAiPgorICAgICAgICA8c2l6ZT4KKyAgICAgICAgIDx3aWR0aD4yMDwvd2lkdGg+CisgICAgICAgICA8aGVpZ2h0PjQwPC9oZWlnaHQ+CisgICAgICAgIDwvc2l6ZT4KKyAgICAgICA8L3Byb3BlcnR5PgorICAgICAgPC9zcGFjZXI+CisgICAgIDwvaXRlbT4KKyAgICA8L2xheW91dD4KKyAgIDwvaXRlbT4KKyAgPC9sYXlvdXQ+CisgPC93aWRnZXQ+CisgPHRhYnN0b3BzPgorICA8dGFic3RvcD50ZXh0VG9GaW5kPC90YWJzdG9wPgorICA8dGFic3RvcD50ZXh0VG9SZXBsYWNlPC90YWJzdG9wPgorICA8dGFic3RvcD5kb3duUmFkaW9CdXR0b248L3RhYnN0b3A+CisgIDx0YWJzdG9wPnVwUmFkaW9CdXR0b248L3RhYnN0b3A+CisgIDx0YWJzdG9wPmNhc2VDaGVja0JveDwvdGFic3RvcD4KKyAgPHRhYnN0b3A+d2hvbGVDaGVja0JveDwvdGFic3RvcD4KKyAgPHRhYnN0b3A+cmVnZXhDaGVja0JveDwvdGFic3RvcD4KKyAgPHRhYnN0b3A+ZmluZEJ1dHRvbjwvdGFic3RvcD4KKyAgPHRhYnN0b3A+Y2xvc2VCdXR0b248L3RhYnN0b3A+CisgPC90YWJzdG9wcz4KKyA8cmVzb3VyY2VzLz4KKyA8Y29ubmVjdGlvbnMvPgorPC91aT4KZGlmZiAtLWdpdCBhL3V0aWxzL3RoZW1lZWRpdG9yL3RoZW1lZWRpdG9yLnJjIGIvdXRpbHMvdGhlbWVlZGl0b3IvdGhlbWVlZGl0b3IucmMKaW5kZXggN2Q1ODhjYi4uNjI3MmIzNSAxMDA2NDQKLS0tIGEvdXRpbHMvdGhlbWVlZGl0b3IvdGhlbWVlZGl0b3IucmMKKysrIGIvdXRpbHMvdGhlbWVlZGl0b3IvdGhlbWVlZGl0b3IucmMKQEAgLTEgKzEgQEAKLUVESVRPUl9JQ09OICAgICAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc291cmNlcy93aW5kb3dpY29uLmljbyINCitFRElUT1JfSUNPTiAgICAgICAgICAgICAgIElDT04gICAgRElTQ0FSREFCTEUgICAgICJyZXNvdXJjZXMvd2luZG93aWNvbi5pY28iCg==