MjAwNy0wNS0xMyAgUmVsZWFzZSBNYW5hZ2VyCgoJKiBHQ0MgNC4yLjAgcmVsZWFzZWQuCgoyMDA3LTAyLTI2ICBCcm9va3MgTW9zZXMgIDxicm9va3MubW9zZXNAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWVsYW5nLnRleGk6IFN0YW5kYXJkaXplIHRpdGxlIHBhZ2UsIHJlbW92ZSB2ZXJzaW9uIG51bWJlcgoJZnJvbSBjb3B5cmlnaHQgcGFnZS4KCjIwMDYtMTAtMTAgIEJyb29rcyBNb3NlcyAgPGJtb3Nlc0BzdGFuZm9yZC5lZHU+CgoJKiBNYWtlLWxhbmcuaW46IEFkZGVkICJ0cmVlbGFuZy5wZGYiIHRhcmdldCBzdXBwb3J0LgoKMjAwNi0wNy0yOCAgVm9sa2VyIFJlaWNoZWx0ICA8cmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZT4KCgkqIE1ha2UtbGFuZy5pbjogVXNlICQoSEVBREVSX0gpIGluc3RlYWQgb2YgaGVhZGVyLmggaW4gZGVwZW5kZW5jaWVzLgoKMjAwNi0wNi0xNyAgS2FybCBCZXJyeSAgPGthcmxAZ251Lm9yZz4KCgkqIHRyZWVsYW5nLnRleGkgKEBkaXJjYXRlZ29yeSk6IFVzZSAiU29mdHdhcmUgZGV2ZWxvcG1lbnQiCglpbnN0ZWFkIG9mICJQcm9ncmFtbWluZyIsIGZvbGxvd2luZyB0aGUgRnJlZSBTb2Z0d2FyZSBEaXJlY3RvcnkuCgoyMDA2LTA2LTA2ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIE1ha2UtbGFuZy5pbjogUmVuYW1lIHRvIGdjY19odG1sZGlyIHRvIGJ1aWxkX2h0bWxkaXIgdG8gYXZvaWQKCWluc3RhbGxpbmcgZHVyaW5nIGJ1aWxkLgoKMjAwNi0wNS0yMyAgQ2FybG9zIE8nRG9uZWxsICA8Y2FybG9zQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW46IFJlbmFtZSBodG1sZGlyIHRvIGdjY19odG1sZGlyLgoKMjAwNi0wNS0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGRyaXZlci8yNjg4NQoJKiBNYWtlLWxhbmcuaW4gKGd0cmVlbGFuZyQoZXhlZXh0KSk6IFJlcGxhY2UgZ2NjLm8gd2l0aAoJJChHQ0NfT0JKUykuCgoyMDA2LTA1LTE0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWVsYW5nL3RyZWV0cmVlLm8pOiBBZGQgZGVwZW5kZW5jeSBvbgoJJChUQVJHRVRfSCkuCgoyMDA2LTA0LTIyICBNYXR0aGlhcyBLbG9zZSAgPGRva29AZGViaWFuLm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcuY2hlY2spOiBEb24ndCBzZXQgYW5kIHBhc3MgVFJBTlNGT1JNLgoKMjAwNi0wMy0yOSAgQ2FybG9zIE8nRG9uZWxsICA8Y2Fyb3NAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbjogUmVuYW1lIGRvY2RpciB0byBnY2NfZG9jZGlyLgoKMjAwNi0wMi0yMCBSYWZhZWwgwXZpbGEgZGUgRXNw7W5kb2xhIDxyYWZhZWwuZXNwaW5kb2xhQGdtYWlsLmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoLnBob255KTogUmVtb3ZlIFRSRUVMQU5HLgoJKFRSRUVMQU5HKTogUmVtb3ZlLgoKMjAwNi0wMS0yMSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzcGVjLmMgKGxhbmdfc3BlY2lmaWNfZHJpdmVyKTogVXBkYXRlIGNvcHlyaWdodCBub3RpY2UgZGF0ZS4KCjIwMDYtMDEtMTYgIFJhZmFlbCDBdmlsYSBkZSBFc3DtbmRvbGEgPHJhZmFlbC5lc3BpbmRvbGFAZ21haWwuY29tPgoKCSogc3BlYy5jIChsYW5nX3NwZWNpZmljX3NwZWNfZnVuY3Rpb25zKTogUmVtb3ZlLgoKMjAwNS0xMi0yOCAgUmFmYWVsIMF2aWxhIGRlIEVzcO1uZG9sYSAgPHJhZmFlbC5lc3BpbmRvbGFAZ21haWwuY29tPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5kaXN0ZGlyKTogUmVtb3ZlLgoKMjAwNS0xMi0wNyAgUmFmYWVsIMF2aWxhIGRlIEVzcO1uZG9sYSAgPHJhZmFlbC5lc3BpbmRvbGFAZ21haWwuY29tPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5hbGwuYnVpbGQsIHRyZWVsYW5nLmluc3RhbGwtbm9ybWFsKTogUmVtb3ZlLgoKMjAwNS0xMi0wNyAgUmFmYWVsIMF2aWxhIGRlIEVzcO1uZG9sYSAgPHJhZmFlbC5lc3BpbmRvbGFAZ21haWwuY29tPgoKCSogTWFrZS1sYW5nLmluOiBSZW1vdmUgYWxsIGRlcGVuZGVuY2llcyBvbiBzLWd0eXBlLgoKMjAwNS0xMi0wNSAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhlckBzdXNlLmRlPgoKCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2lmX3N0YXJ0LCB0cmVlX2NvZGVfY3JlYXRlX3ZhcmlhYmxlLAoJdHJlZV9jb2RlX2dlbmVyYXRlX3JldHVybiwgdHJlZV9jb2RlX2dldF9leHByZXNzaW9uLAoJdHJlZV9jb2RlX2FkZF9wYXJhbWV0ZXIpOiBVc2UgZm9sZF9jb252ZXJ0IHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNS0xMS0wNyAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIHRyZWVsYW5nLzI0MDY2CgkqIHRyZWV0cmVlLmMgKExBTkdfSE9PS1NfQVRUUklCVVRFX1RBQkxFKTogU2V0IHRvCgl0cmVlbGFuZ19hdHRyaWJ1dGVfdGFibGUuCgkoaGFuZGxlX2F0dHJpYnV0ZSk6IE5ldyBmdW5jdGlvbi4KCSh0cmVlbGFuZ19hdHRyaWJ1dGVfdGFibGUpOiBOZXcgYXR0cmlidXRlIHRhYmxlLgoKMjAwNS0wOS0yMyAgUmFmYWVsIMOBdmlsYSBkZSBFc3DDrW5kb2xhICA8cmFmYWVsLmVzcGluZG9sYUBnbWFpbC5jb20+CgoJKiBwYXJzZS55IDogQ2hhbmdlZCBwb2ludGVyIGRlY2xhcmF0aW9uIGZyb20gInR5cGUqIHZhciIgdG8gInR5cGUgKnZhciIKCVJlbW92ZWQgdHJhaWxpbmcgc3BhY2UuICBXcmFwIGxvbmcgbGluZXMuCgoyMDA1LTA5LTIzICBSYWZhZWwgw4F2aWxhIGRlIEVzcMOtbmRvbGEgIDxyYWZhZWwuZXNwaW5kb2xhQGdtYWlsLmNvbT4KCgkqIHBhcnNlLnkgOiAgRml4ZWQgdHdvIGNvbXBpbGUgd2FybmluZ3MgaW4gImVycm9yIiBhbmQgIndhcm5pbmciCglpbnZvY2F0aW9ucy4gIFJlbW92ZWQgdHJhaWxpbmcgcGVyaW9kcyBpbiBtZXNzYWdlcy4gIERlY2FwaXRhbGl6ZWQgdGhlCglmaXJzdCB3b3JkIG9mIGVhY2guCgoyMDA1LTA4LTA3ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiB0cmVlLWNvbnZlcnQuYyAoY29udmVydCk6IFVzZSBmb2xkX2J1aWxkMSBpbnN0ZWFkIG9mCglmb2xkIChidWlsZDEuCgoyMDA1LTA4LTA2ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgdHJlZWxhbmcvMjMwNzIKCSogTWFrZS1sYW5nLmluOiBSZW1vdmUgb2xkIHRlc3RpbmcgY3J1ZnQuCgoyMDA1LTA2LTI1ICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogYWxsIGZpbGVzOiBVcGRhdGUgRlNGIGFkZHJlc3MgaW4gY29weXJpZ2h0IGhlYWRlcnMuCgoyMDA1LTA2LTE1ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBwYXJzZS55IChmdW5jdGlvbl9pbnZvY2F0aW9uKTogUmV2ZXJzZSBwYXJhbWV0ZXIgbGlzdC4KCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2dldF9leHByZXNzaW9uKTogRG9uJ3QgcmV2ZXJzZSBwYXJhbWV0ZXIgbGlzdC4KCjIwMDUtMDYtMTIgIFJhZmFlbCA/dmlsYSBkZSBFc3A/bmRvbGEgICA8cmFmYWVsLmVzcGluZG9sYUBnbWFpbC5jb20+CgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfZ2V0X2V4cHJlc3Npb24pOiBDYWxsIGJ1aWxkX2Z1bmN0aW9uX2NhbGxfZXhwcgoJdG8gYnVpbGQgZnVuY3Rpb24gY2FsbHMuCgoyMDA1LTA1LTMxICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiB0cmVlbGFuZy9sZXgubCwgdHJlZWxhbmcvcGFyc2UueTogRG9uJ3QgaW5jbHVkZSBlcnJvcnMuaCBhbmQKCWluY2x1ZGUgdG9wbGV2LmguCgkqIHRyZWVsYW5nL01ha2UtbGFuZy5pbjogVXBkYXRlcyBkZXBlbmRlbmNpZXMuCgoyMDA1LTA1LTAyICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlbGFuZy8yMTM0NQoJKiBwYXJzZS55IChwYXJhbWV0ZXJzX29wdCk6IEFkZCBzZW1pY29sb24gYXQgdGhlIGVuZC4KCjIwMDUtMDQtMjkgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KCgkqIHRyZWV0cmVlLmMgKHBvcGxldmVsKTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIGJ1aWxkX2Jsb2NrLgoKMjAwNS0wNC0yMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55OiBBZGp1c3Qgd2FybmluZygpIGNhbGxlcnMuCgoyMDA1LTA0LTExICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBsYW5nLm9wdDogUmVmZXIgdG8gdGhlIEdDQyBpbnRlcm5hbHMgZG9jdW1lbnRhdGlvbiBpbnN0ZWFkIG9mIGMub3B0LgoKMjAwNS0wNC0wMSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdHJlZWxhbmcvMjA2MDQKCSogbGFuZy1zcGVjLmM6IFNpbXBsaWZ5IEB0cmVlbGFuZyB0byB3aGF0IHRoZSBvdGhlcgoJbGFuZ3VhZ2VzIGRvLgoKMjAwNS0wNC0wMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWVsYW5nL3RyZWVsYW5nLnRleGk6IEZpeCB0eXBvcy4KCSogdHJlZWxhbmcvdHJlZXRyZWUuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA1LTAzLTIzICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWV0cmVlLmMgKExBTkdfSE9PS1NfVFJVVEhWQUxVRV9DT05WRVJTSU9OLAoJdHJlZV9sYW5nX3RydXRodmFsdWVfY29udmVyc2lvbik6IFJlbW92ZS4KCSogdHJlZS1jb252ZXJ0LmM6IERvbid0IGNhbGwgdHJ1dGh2YWx1ZV9jb252ZXJzaW9uLgoKMjAwNS0wMy0yMiAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2lmX3N0YXJ0KTogVXNlIGZvbGRfYnVpbGROLgoJKHRyZWVfY29kZV9jcmVhdGVfdmFyaWFibGUpOiBMaWtld2lzZS4KCSh0cmVlX2NvZGVfZ2VuZXJhdGVfcmV0dXJuKTogTGlrZXdpc2UuCgkodHJlZV9jb2RlX2dldF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkodHJlZV9jb2RlX2FkZF9wYXJhbWV0ZXIpOiBMaWtld2lzZS4KCjIwMDUtMDMtMjIgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIHRyZWVsYW5nLmggKHN0cnVjdCBwYXJhbWV0ZXJfcGFydCk6IFNraXAgV0hFUkVfVE9fUFVUX1ZBUl9UUkVFCglkdXJpbmcgR0MuCgoyMDA1LTAzLTE1ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChURVhJX1RSRUVMQU5HX0ZJTEVTKTogQWRkIGdjYy12ZXJzLnRleGkuCgoyMDA1LTAzLTA2ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgb3RoZXIvMjAzMjYKCSogTWFrZS1sYW5nLmluIChndHJlZWxhbmcsIHRyZWVsYW5nL3NwZWMubyk6IE5ldyB0YXJnZXRzLgoJKiBzcGVjLmM6IE5ldyBmaWxlLgoKMjAwNS0wMi0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWVsYW5nLnRleGk6IEZpeCBhIHR5cG8uCgoyMDA1LTAyLTI2ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBwYXJzZS55IChmdW5jdGlvbl9pbnZvY2F0aW9uLCB2YXJpYWJsZS1yZWYsIG1ha2VfcGx1c19leHByZXNzaW9uKToKCVBhc3MgbG9jYXRpb24gdG8gdHJlZV9jb2RlX2dldF9leHByZXNzaW9uLgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfZ2VuZXJhdGVfcmV0dXJuKTogU2V0IEVYUFJfTE9DVVMgb24gcmV0dmFsLgoJKHRyZWVfY29kZV9nZXRfZXhwcmVzc2lvbik6IFdyYXAgdmFyaWFibGUgcmVmZXJlbmNlcyBpbiBOT1BfRVhQUnMgYW5kCglzZXQgRVhQUl9MT0NBVElPTiBvbiByZXQxLgoJKiB0cmVldHJlZS5oICh0cmVlX2NvZGVfZ2V0X2V4cHJlc3Npb24pOiBUYWtlIHRoZSBsb2NhdGlvbiBvZiB0aGUKCWV4cHJlc3Npb24gYXMgYW4gYXJndW1lbnQuCgoyMDA1LTAyLTI2ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiB0cmVlbGFuZy50ZXhpOiBUcmVlbGFuZyBkb2VzIGhhdmUgd2FybmluZ3MuCgkqIHRyZWV0cmVlLmMgKHRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25fcHJvdG90eXBlKTogRG9uJ3Qgc2V0CglUUkVFX1VTRUQgYW5kIHNldCBUUkVFX1BVQkxJQywgREVDTF9FWFRFUk5BTCwgYW5kIFRSRUVfU1RBVElDCglhcyBmZXcgdGltZXMgYXMgbmVlZGVkIG9uIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCSh0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX2luaXRpYWwpOiBEb24ndCBzZXQgVFJFRV9VU0VELAoJVFJFRV9BRERSRVNTQUJMRSwgYnV0IHNldCBUUkVFX1NUQVRJQyBvbiB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgkodHJlZV9jb2RlX2NyZWF0ZV92YXJpYWJsZSk6IERvbid0IHNldCBUUkVFX1VTRUQgb24gVkFSX0RFQ0wuCgkodHJlZV9jb2RlX2dldF9leHByZXNzaW9uKTogU2V0IFRSRUVfVVNFRCBmb3IgdmFyaWFibGUgcmVmZXJlbmNlcwoJYW5kIGZ1bmN0aW9uIGNhbGxzLgoKMjAwNS0wMi0yNiAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCSogcGFyc2UueTogRG8gY29tcGFyaXNvbnMgYXMgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGV4cHJlc3Npb24uCgkqIHRyZWV0cmVlLmMgKHRyZWVfY29kZV9nZXRfaW50ZWdlcl92YWx1ZSk6IEJ1aWxkIGludGVnZXIgY29uc3RhbnRzCgl3aXRoIHRoZSBwcm9wZXIgdHlwZS4KCjIwMDUtMDItMjYgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbjogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZS4KCSogbGFuZy1zcGVjcy5oOiBBbHdheXMgcGFzcyAtZHVtcGJhc2UgdG8gdHJlZTEuCgoyMDA1LTAyLTI1ICBKYW1lcyBBLiBNb3Jycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCSogdHJlZWxhbmcudGV4aTogUmVtb3ZlIGV4dHJhIGNvbnRyaWJ1dGlvbiBub3RpY2UuCglTcGxpdCB1cCBzb21lIHJ1bi1vbiBzZW50ZW5jZXMuICBEb2N1bWVudCBmdW5jdGlvbiBwYXJhbWV0ZXJzCglhcyBvcHRpb25hbC4gIEluZGljYXRlIGF1dG9tYXRpYyB2YXJpYWJsZXMgY2FuIG5vdyBiZSBhdCBhbnkgc2NvcGUuCglNZW50aW9uIGxpdGVyYWxzIGFyZSBvbmx5IHNpZ25lZCBpZiB0aGV5IGFyZSBwcmVjZWRlZCBieSBhIHVuYXJ5CglwbHVzIG9yIG1pbnVzLiAgQ2xhcmlmeSBpbnRlcm9wZXJhYmlsaXR5IHdpdGggQy4KCjIwMDUtMDItMjUgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIHRyZWVsYW5nLnRleGk6IEZpeCB3aGl0ZXNwYWNpbmcuCgoyMDA1LTAyLTI0ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgb3RoZXIvMTk4OTYKCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2NyZWF0ZV92YXJpYWJsZSk6IEluaXRpYWxpemUgREVDTF9FWFRFUk5BTCwKCVRSRUVfUFVCTElDLCBhbmQgVFJFRV9TVEFUSUMgZm9yIHZhcl9kZWNsIHRvIHplcm8uICBEb24ndCBjYWxsCglyZXN0X29mX2RlY2xfY29tcGlsYXRpb24gb24gc3RhdGljIHZhcmlhYmxlcy4KCShwdXNoZGVjbCk6IFB1dCBERUNMX0VYUFJzIGludG8gdGhlIGN1cnJlbnQgQklORF9FWFBSIGZvciBhdXRvbWF0aWMKCXZhcmlhYmxlcy4KCjIwMDUtMDItMjQgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCglQUiBvdGhlci8xOTg5NwoJKiBwYXJzZS55OiAoZnVuY3Rpb25fcHJvdG90eXBlKTogQWNjZXB0IEVYVEVSTkFMX1JFRkVSRU5DRV9TVE9SQUdFLgoJTW92ZSBmdW5jdGlvbiBwYXJhbWV0ZXJzIGNoZWNrIGZyb20gLi4uCgkoZnVuY3Rpb24pOiAuLi5IZXJlLiAgVXBkYXRlIGNhbGwgdG8gdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9pbml0aWFsLgoJKGZ1bmN0aW9uX2ludm9jYXRpb24pOiBVc2UgZXhwcmVzc2lvbnNfd2l0aF9jb21tYXNfb3B0IGluc3RlYWQgb2YKCWV4cHJlc3Npb25zX3dpdGhfY29tbWFzLgoJKGV4cHJlc3Npb25zX3dpdGhfY29tbWFzX29wdCk6IE5ldyBydWxlLgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX3Byb3RvdHlwZSk6IENyZWF0ZSBQQVJNX0RFQ0xzCglmb3IgZnVuY3Rpb24gcGFyYW1ldGVycy4KCSh0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX2luaXRpYWwpOiBSZW1vdmUgUEFSTVMgcGFyYW1ldGVyLgoJRG9uJ3QgY3JlYXRlIFBBUk1fREVDTHMgZm9yIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgkqIHRyZWV0cmVlLmggKHRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25faW5pdGlhbCk6IFJlbW92ZSBQQVJNUwoJcGFyYW1ldGVyLgoKMjAwNS0wMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHBhcnNlLnk6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAyLTEzICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiB0cmVldHJlZS5jICh0cmVlX2xhbmdfdHlwZV9mb3JfbW9kZSk6IFJldHVybiBOVUxMX1RSRUUgZm9yIGFsbCBub24KCXNjYWxhciBpbnRlZ2VyIHR5cGVzLgoKMjAwNS0wMi0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWV0cmVlLmMgKHRyZWVsYW5nX2luaXRfZGVjbF9wcm9jZXNzaW5nKTogQ2FsbAoJYnVpbGRfY29tbW9uX2J1aWx0aW5fbm9kZXMuCgoyMDA1LTAyLTA2ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWVsYW5nLnRleGk6IERvbid0IHVzZSBsb2NhbCB0cmVlbGFuZyB2ZXJzaW9uIG51bWJlci4gIERvbid0CglnaXZlIGxhc3QgdXBkYXRlIGRhdGUuCgoyMDA1LTAyLTAxICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBsZXgubDogVW5kZWYgTElORU1BUF9QT1NJVElPTl9GT1JfQ09MVU1OIGJlZm9yZSBkZWZpbmluZyBpdC4KCjIwMDUtMDItMDEgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIHBhcnNlLnk6IFJlZm9ybWF0IGNvbW1lbnRzLgoJKiB0cmVldHJlZS5jOiBMaWtld2lzZS4KCSogdHJlZXRyZWUuaDogTGlrZXdpc2UuCgoyMDA0LTEwLTI0ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfZ2VuZXJhdGVfcmV0dXJuKTogV3JhcCBwYXJhbSBkZWNsYXJhdGlvbiBpbgoJRU5BQkxFX0NIRUNLSU5HLgoKMjAwNC0xMC0wNSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnk6IEFkZCBsaXN0IG9mIGRpYWdub3N0aWMgbWVzc2FnZXMgdG8gaW5zdWxhdGUKCXRyYW5zbGF0aW9uIHRlbXBsYXRlIGZyb20gdmVyc2lvbiBvZiB5YWNjL2Jpc29uIHVzZWQgdG8KCWNvbXBpbGUgdGhlIGdyYW1tYXIuCgoyMDA0LTEwLTAyICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgb3RoZXIvMTc3NjIKCSogbGV4Lmw6IEluY2x1ZGUgaW5wdXQuaCBhbmQgZXJyb3JzLmgKCShsaW5lbm8pOiBOZXcgdmFyaWFibGUuCgkoTElORU1BUF9QT1NJVElPTl9GT1JfQ09MVU1OKTogRGVmaW5lIGFzIG5vb3Agd2hlbiBVU0VfTUFQUEVEX0xPQ0FUSU9OCglpcyBub3QgZGVmaW5lZC4KCVNldCBjb2x1bW4gcG9zaXRpb24gd2l0aCBMSU5FTUFQX1BPU0lUSU9OX0ZPUl9DT0xVTU4uCglVc2UgZXJyb3IgaW5zdGVhZCBvZiBmcHJpbnRmLgoJU2V0IGlucHV0X2xvY2F0aW9uIHdpdGggdGhlIHZhbHVlIHJldHVybmVkIGJ5IGxpbmVtYXBfc3RhcnRfbGluZSB3aGVuCglVU0VfTUFQUEVEX0xPQ0FUSU9OIGlzIGRlZmluZWQuCgkoZHVtcF9sZXhfdmFsdWUpOiBVc2UgTE9DQVRJT05fTElORS4KCSogcGFyc2UueTogSW5jbHVkZSBlcnJvcnMuaC4KCVVzZSBlcnJvciBhbmQgd2FybmluZyBpbnN0ZWFkIG9mIGZwcmludGYuCgkocmV0dXJuKTogTW92ZSBleHAgdG8gcnVsZSBzY29wZSBhbmQgYWx3YXlzIHNldCB0byAkMi4gIFRlc3QgYWdhaW5zdAoJZXhwIGluc3RlYWQgb2YgJDIuCgkoaW5pdCk6IFNldCAkJCB0byAkMi4KCShwcmludF90b2tlbik6IFVzZSBMT0NBVElPTl9MSU5FLgoJKiB0cmVlMS5jICh0cmVlbGFuZ19pbml0KTogQ2FsbCB0cmVlbGFuZ19pbml0X2RlY2xfcHJvY2Vzc2luZyBsYXN0LgoJQ2FsbCBsaW5lbWFwX2FkZCB0byBzZXQgaW5wdXRfZmlsZW5hbWUgd2hlbiBVU0VfTUFQUEVEX0xPQ0FUSU9OIGlzCglkZWZpbmVkLgoJKHRyZWVsYW5nX3BhcnNlX2ZpbGUpOiBBbHdheXMgc3RhcnQgYXQgbGluZSBvbmUuCglSZW5hbWUgaW5wdXRfZmlsZW5hbWUgdG8gbWFpbl9pbnB1dF9maWxlbmFtZSB3aGVuIFVTRV9NQVBQRURfTE9DQVRJT04gaXMKCWRlZmluZWQuCglMZWF2ZSBtYWluX2lucHV0X2ZpbGVuYW1lIHdoZW4gZG9uZSBwYXJzaW5nIHRoZSBpbnB1dC4KCShpbnNlcnRfdHJlZV9uYW1lKTogVXNlIGVycm9yIGluc3RlYWQgb2YgZnByaW50Zi4KCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2dldF9leHByZXNzaW9uKTogV3JhcCBsb25nIGxpbmUuCgkodHJlZV9tYXJrX2FkZHJlc3NhYmxlKTogVXNlICVxRCB0byBwcmludCBvdXQgREVDTHMuCgoyMDA0LTEwLTAyICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBwYXJzZS55OiBVc2UgZ2NjX2Fzc2VydCBhbmQgZ2NjX3VucmVhY2hhYmxlIGluc3RlYWQgb2YgYWJvcnQuCgkqIHRyZWUxLmM6IExpa2V3aXNlLgoJKiB0cmVldHJlZS5jOiBMaWtld2lzZS4KCjIwMDQtMTAtMDIgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIGxleC5sOiBSZW1vdmUgcmFuZG9tIHdoaXRlc3BhY2UuCgkqIHBhcnNlLnk6IFJlZm9ybWF0IGNvcHlyaWdodCBub3RpY2UuICBJbmRlbnQgZGVjbGFyYXRpb25zLgoJV3JhcCBsb25nIGxpbmVzLCB1bndyYXAgc2hvcnQgbGluZXMuCgkqIHRyZWUxLmM6IFJlZm9ybWF0IGNvcHlyaWdodCBub3RpY2UuICBXcmFwIGxvbmcgbGluZXMuCglSZW1vdmUgcmFuZG9tIHdoaXRlc3BhY2UuCgkobG9va3VwX3RyZWVfbmFtZSk6IFVzZSBMT0NBVElPTl9MSU5FLgoJKiB0cmVldHJlZS5jOiBSZWZvcm1hdCBjb3B5cmlnaHQgbm90aWNlLiAgV3JhcCBsb25nIGxpbmVzLgoJUmVtb3ZlIHJhbmRvbSB3aGl0ZXNwYWNlLgoKMjAwNC0xMC0wMSAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCSogcGFyc2UueSAoRUxTRSk6IFNldCB0b2sgdG8gJDEuCgkqIHRyZWVsYW5nLnRleGk6IFdyYXAgY29tbWVudHMgaW4gQHJ7fS4gIEluZGVudCBleGFtcGxlIGNvbW1lbnRzLgoJVXNlIGdjYyB3aGVuIHJlZmVyaW5nIHRvIHRoZSBjb21tYW5kIGxpbmUgb3Igd2Vic2l0ZS4gIFVwZGF0ZSBmdW5jdGlvbgoJZGVmaW5pdGlvbi4KCjIwMDQtMTAtMDEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIHRyZWV0cmVlLmMgKHRyZWVsYW5kX2V4cGFuZF9mdW5jdGlvbik6IFVwZGF0ZSBjYWxsIG9mCgl0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24uCgoyMDA0LTA5LTE3ICBKZWZmcmV5IEQuIE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoJICAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVldHJlZS5jOiBVcGRhdGUgZm9yIG5ldyB0cmVlLWNsYXNzIGVudW1lcmF0aW9uIGNvbnN0YW50cy4KCjIwMDQtMDktMTUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWVsYW5nLXdhcm4pOiBTZXQgdG8gJChTVFJJQ1RfV0FSTikuCgoyMDA0LTA4LTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2dldF9pbnRlZ2VyX3ZhbHVlKTogRml4IGJ1aWxkX2ludF9jc3QgY2FsbC4KCjIwMDQtMDgtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlbGFuZy90cmVldHJlZS5jICh0cmVlbGFuZ19pbml0X2RlY2xfcHJvY2Vzc2luZyk6IEFkanVzdAoJYnVpbGRfY29tbW9uX3RyZWVfbm9kZXMgY2FsbC4KCjIwMDQtMDgtMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfZ2V0X2ludGVnZXJfdmFsdWUpOiBVc2UgYnVpbGRfaW50X2NzdC4KCjIwMDQtMDctMzEgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoVFJFRV9CRV9MSUJTKTogUmVtb3ZlLgoJKHRyZWUxKTogRGVwZW5kIG9uIEJBQ0tFTkQgYW5kIExJQkRFUFMuICBVc2UgQkFDS0VORCBhbmQgTElCUyBpbnN0ZWFkCglvZiBUUkVFX0JFX0xJQlMuCgkqIHBhcnNlLnk6IEFkZCB2YXJpYWJsZV9kZWZzX29wdCBiZWZvcmUgc3RhdGVtZW50c19vcHQuCglVc2UgdHJlZV9jb2RlX2dldF90eXBlIGluc3RlYWQgb2YgZ2V0X3R5cGVfZm9yX251bWVyaWNfdHlwZS4KCVJlZm9ybWF0IGxvbmcgbGluZXMuCgkocGFyYW1ldGVyc19vcHQpOiBOZXcgcnVsZS4KCShmdW5jdGlvbl9wcm90b3R5cGUpOiBVc2UgcGFyYW1ldGVyc19vcHQuCgkocmV0dXJuKTogUmVtb3ZlIGNhbGxzIHRvIHByaW50X3Rva2VuIGluIGVycm9yIGNhc2VzLiAgVXNlIFZPSURfVFlQRS4KCShjaGVja190eXBlX21hdGNoKTogVXNlIFZPSURfVFlQRS4KCSogbGV4LmwgKHVwZGF0ZV9saW5lbm9fY2hhcm5vKTogRW5zdXJlIElOUFVUX0xJTkUgc3RhcnRzIGF0IDEuCgkqIHRyZWUxLmM6IEluY2x1ZGUgdmVyc2lvbi5oIGFuZCBjZ3JhcGguaAoJKHRyZWVsYW5nX3BhcnNlX2ZpbGUpOiBDYWxsIGNncmFwaF9maW5hbGl6ZV9jb21waWxhdGlvbl91bml0IGFuZAoJY2dyYXBoX29wdGltaXplLgoJKiB0cmVlbGFuZy5oIChpdGVtKTogUmVtb3ZlIGV4dHJhbmVvdXMgR1RZLgoJKiB0cmVldHJlZS5oIChnZXRfdHlwZV9mb3JfbnVtZXJpY190eXBlKTogUmVtb3ZlLgoJKiB0cmVldHJlZS5jOiBJbmNsdWRlIHRyZWUtZHVtcC5oLCB0cmVlLWl0ZXJhdG9yLmgsIHRyZWUtZ2ltcGxlLmgsCglmdW5jdGlvbi5oLCBhbmQgY2dyYXBoLmguICBEb24ndCBpbmNsdWRlIHJ0bC5oCgkoa2VlcF9sZXZlbF9wKTogUmVtb3ZlLgoJKHRyZWVfcHVzaF9hdG9taWNfdHlwZV9kZWNsKTogUmVtb3ZlLgoJKGdldF90eXBlX2Zvcl9udW1lcmljX3R5cGUpOiBSZW1vdmUuCgkodHJlZV9jb2RlX2dldF9udW1lcmljX3R5cGUpOiBSZW1vdmUuCgkoZ2xvYmFsX2JpbmRpbmdzX3ApOiBNYWtlIHN0YXRpYy4KCShnZXRkZWNscyk6IExpa2V3aXNlLgoJKGluc2VydF9ibG9jayk6IExpa2V3aXNlLgoJKHRyZWVfY29kZV9pZl9zdGFydCk6IENyZWF0ZSBhIENPTkRfRVhQUiBhbmQgYWRkIGl0IHRvIHRoZSB0cmVlCglpbnN0ZWFkIG9mIGNyZWF0aW5nIHJ0bC4KCSh0cmVlX2NvZGVfaWZfZWxzZSk6IENyZWF0ZSBhIEJJTkRfRVhQUiBpZiBhbnkgdmFyaWFibGVzIHdlcmUgY3JlYXRlZAoJaW4gdGhlIGlmIHN0YXRlbWVudC4KCSh0cmVlX2NvZGVfZW5kX2lmKTogTGlrZXdpc2UuCgkodHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9wcm90b3R5cGUpOiBVc2UgdHJlZV9jb2RlX2dldF90eXBlLgoJRG9uJ3QgdXNlIFNFVF9ERUNMX0FTU0VNQkxFUl9OQU1FLgoJKHRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25faW5pdGlhbCk6IFNldCBERUNMX0FSVElGSUNJQUwgYW5kCglERUNMX0lHTk9SSU5HX1Agb24gUkVTVUxUX0RFQ0wuICBVc2UgdHJlZV9jb2RlX2dldF90eXBlLiAgRG9uJ3QgY2FsbAoJbGF5b3V0X2RlY2wgb24gUkVTVUxUX0RFQ0wuICBEb24ndCBjYWxsIHJ0bCBleHBhbmQgZnVuY3Rpb25zLgoJKHRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25fd3JhcHVwKTogRG9uJ3QgY2FsbCBydGwgZXhwYW5kIGZ1bmN0aW9ucy4KCUNyZWF0ZSBhIEJJTkRfRVhQUiBmb3IgZWFjaCBmdW5jdGlvbi4gIER1bXAgb3JpZ2luYWwgYW5kIGdpbXBsaWZpZWQKCWNvcGllcyBvZiB0aGUgZnVuY3Rpb24gdHJlZS4gIEdpbXBsaWZ5IGZ1bmN0aW9uLgoJKHRyZWVfY29kZV9jcmVhdGVfdmFyaWFibGUpOiBVc2UgdHJlZV9jb2RlX2dldF90eXBlLiAgRG9uJ3QgY2FsbAoJbGF5b3V0X2RlY2wgb3IgZXhwYW5kX2RlY2wuICBGb2xkIENPTlZFUlRfRVhQUnMuCgkodHJlZV9jb2RlX2dlbmVyYXRlX3JldHVybik6IEZvbGQgQ09OVkVSVF9FWFBScyBhbmQgTU9ESUZZX0VYUFJzLgoJQWRkIFJFVFVSTl9FWFBSIHRvIHRoZSBjdXJyZW50IHN0YXRlbWVudCBsaXN0LiAgRG9uJ3QgY2FsbCBydGwgZXhwYW5kCglmdW5jdGlvbnMuCgkodHJlZV9jb2RlX291dHB1dF9leHByZXNzaW9uX3N0YXRlbWVudCk6IEFwcGVuZCBDT0RFIHRvIGN1cnJlbnQKCXN0YXRlbWVudCBsaXN0LgoJKHRyZWVfY29kZV9nZXRfZXhwcmVzc2lvbik6IEZvbGQgZXhwcmVzc2lvbnMuICBCdWlsZCBhIHBvaW50ZXIgdG8KCWEgRlVOQ1RJT05fVFlQRSBpbnRlYWQgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbnMgcmV0dXJuIHR5cGUuCgkoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBBZGQgc3RhdGVtZW50IGxpc3QgU1RNVFMuCgkoZ2V0c3RtdGxpc3QpOiBOZXcgRnVuY3Rpb24uCgkocHVzaGxldmVsKTogTWFrZSBzdGF0aWMuICBBbGxvY2F0ZSBhbiBlbXB0eSBzdGF0ZW1lbnQgbGlzdC4KCShwb3BsZXZlbCk6IE1ha2Ugc3RhdGljLiAgRG9uJ3QgY2xlYXIgQkxPQ0tfTk9ERSdzIEJMT0NLX1ZBUlMuCglEb24ndCB1c2UgREVDTF9BU1NFTUJMRVJfTkFNRS4KCSh0cmVlX3B1c2hfdHlwZV9kZWNsKTogU2V0IFRZUEVfTkFNRSBvZiBUWVBFX05PREUgdG8gSUQuCgkodHJlZWxhbmdfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEZWZpbmUgYmFzaWMgdHlwZXMgYWZ0ZXIgdW51c2VkIHR5cGVzLgoJRG9uJ3QgY2FsbCB0cmVlX3B1c2hfYXRvbWljX3R5cGVfZGVjbC4KCShidWlsdGluX2Z1bmN0aW9uKTogRG9uJ3QgY2FsbCBtYWtlX2RlY2xfcnRsLgoJKHRyZWVsYW5nX2V4cGFuZF9mdW5jdGlvbikuIE5ldyBGdW5jdGlvbi4KCjIwMDQtMDctMTEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogdHJlZXRyZWUuYyAoc2V0X2Jsb2NrKTogUmVtb3ZlLgoJKHN0cnVjdCBiaW5kaW5nX2xldmVsKTogUmVtb3ZlIGJsb2NrX2NyZWF0ZWRfYnlfYmFja19lbmQuCgkoY2xlYXJfYmluZGluZ19sZXZlbCk6IExpa2V3aXNlLgoJKHRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25faW5pdGlhbCwKCXRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25fd3JhcHVwKTogQ2FsbCBwdXNobGV2ZWwgYW5kIHBvcGxldmVsCglkaXJlY3RseSByYXRoZXIgdGhhbiB0aHJvdWdoIGhvb2tzLgoJKHBvcGxldmVsKTogRG9uJ3QgaGFuZGxlIGJsb2NrX2NyZWF0ZWRfYnlfYmFja19lbmQuCgoyMDA0LTA0LTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZXRyZWUuYyAodHJlZV9tYXJrX2FkZHJlc3NhYmxlKTogIERvbid0IHB1dF92YXJfaW50b19zdGFjay4KCjIwMDQtMDMtMzEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0cmVldHJlZS5jICh0cmVlX2xhbmdfc2lnbmVkX29yX3Vuc2lnbmVkX3R5cGUpOiBVc2UgVFlQRV9VTlNJR05FRCwKCW5vdCBUUkVFX1VOU0lHTkVELgoKMjAwNC0wMy0yMSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlbGFuZy50ZXhpOiBVcGRhdGUgbGluayB0byAiRysrIGFuZCBHQ0MiLgoKMjAwNC0wMi0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmctd2Fybik6IEFkZCAtV25vLXZhcmlhZGljLW1hY3Jvcy4KCjIwMDQtMDEtMzAgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlLWxhbmcuaW4gKGRvYy90cmVlbGFuZy5kdmkpOiBVc2UgJChhYnNfZG9jZGlyKS4KCjIwMDQtMDEtMjAgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlLWxhbmcuaW46IFJlcGxhY2UgJChkb2NkaXIpIHdpdGggZG9jLgoJKHRyZWVsYW5nLmluZm8sIHRyZWVsYW5nLnNyY2luZm8pOiBOZXcgcnVsZXMuCgkodHJlZWxhbmcubWFuLCB0cmVlbGFuZy5tYW4pOiBEdW1teSBlbnRyaWVzLgoKMjAwNC0wMS0xNSAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoVFJFRV9HRU5FUkFURUQpOiBEZWxldGUgcmVmZXJlbmNlIHRvICQocGFyc2VkaXIpLgoJKHRyZWVsYW5nL3BhcnNlLm8sIHRyZWVsYW5nL2xleC5vKTogTG9vayBmb3Igc291cmNlcyBpbiBidWlsZAoJZGlyZWN0b3J5LiAgVXNlIGltcGxpY2l0IHJ1bGUuCgkodHJlZWxhbmcvcGFyc2UuYywgdHJlZWxhbmcvcGFyc2UuaCB0cmVlbGFuZy9sZXguYyk6IEFsd2F5cyBidWlsZCBpbgoJZG9jIGRpcmVjdG9yeS4KCSh0cmVlbGFuZy5zcmNleHRyYSk6IENvcHkgYWJvdmUgYmFjayB0byBzb3VyY2UgZGlyZWN0b3J5IGlmIHJlcXVlc3RlZC4KCjIwMDQtMDEtMDcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55ICh5eWVycm9yKTogTWFyayB0aGUgZGVmaW5pdGlvbiBzdGF0aWMuCgoyMDAzLTEyLTA0ICBKYW1lcyBBLiBNb3JyaXNvbiAgPGphMm1vcnJpQHV3YXRlcmxvby5jYT4KCgkqIGxleC5sOiBBZGQgXHQgYXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4KCSogdHJlZWxhbmcudGV4aSAoTGV4aWNhbCBTeW50YXgpOiBEb2N1bWVudCBhIHRhYiBhcyB3aGl0ZXNwYWNlLgoKCSogdHJlZWxhbmcudGV4aSAoV2hhdCBpcyBHTlUgVHJlZWxhbmc/KTogRml4IGEgdHlwby4KCShMZXhpY2FsIFN5bnRheCk6IENyZWF0ZSBhbiBpdGVtaXplIGxpc3Qgb2Yga2V5d29yZHMuICBBZGQgY29tbWFzIHRvCglwYXJhZ3JhcGggZGVmaW5pbmcgbmFtZXMuCgoyMDAzLTExLTI2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcudGFncyk6IENyZWF0ZSBUQUdTLnN1YiBmaWxlcyBpbiBlYWNoCglkaXJlY3RvcnkgYW5kIFRBR1MgZmlsZXMgdGhhdCBpbmNsdWRlIHRoZW0gZm9yIGVhY2ggZnJvbnQgZW5kLgoKMjAwMy0xMS0yMSAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIC5jdnNpZ25vcmU6IERlbGV0ZS4KCjIwMDMtMTEtMjAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5leHRyYWNsZWFuKTogRGVsZXRlLgoKMjAwMy0xMS0yMCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBNYWtlLWxhbmcuaW46IFJlbW92ZSBvYnNvbGV0ZSBjb21tZW50LgoKMjAwMy0xMS0wMyAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoZHZpKTogTW92ZSB0YXJnZXRzIHRvICQoZG9jb2JqZGlyKS4KCSh0cmVlbGFuZy5kdmkpOiBTaW1wbGlmeSBydWxlIGFuZCBhZGp1c3QgdGFyZ2V0LgoJKHRyZWVsYW5nLmluZm8pOiBTaW1wbGlmeSBydWxlLgoJKHBhcnNlLm8pOiBDb3JyZWN0IGRlcGVuZGVuY2llcy4KCShUUkVFX0VYRSk6IERlbGV0ZSBkb3VibGVkIHN1ZmZpeCBhcHBlbmQuCgoyMDAzLTEwLTIxICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5vKTogRGVwZW5kIG9uICQocGFyc2VkaXIpL3RyZWVsYW5nL3BhcnNlLmguCgkobGV4Lm8pOiBMaWtld2lzZS4KCjIwMDMtMTAtMjEgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlLWxhbmcuaW4gKHBhcnNlLm8pOiBIb25vciAkKHBhcnNlZGlyKS4KCShsZXgubyk6IExpa2V3aXNlLgoJKGxleC5jKTogTGlrZXdpc2UKCShwYXJzZS5jLCBwYXJzZS5oKTogTGlrZXdpc2UuCgkoJChkb2NvYmpkaXIpL3RyZWVsYW5nLmluZm8pOiBSZXBsYWNlICQoc3JjZGlyKS9kb2Mgd2l0aCAkKGRvY2RpcikuCgkoZHZpKTogTGlrZXdpc2UuCgoyMDAzLTEwLTIwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluICgkKGRvY29iamRpcikvdHJlZWxhbmcvdHJlZWxhbmcuaW5mbyk6IERlcGVuZCBvbgoJc3RtcC1kb2NvYmpkaXIuCgoJKiBNYWtlLWxhbmcuaW4gKGluZm8pOiBVc2UgZG9jb2JqZGlyLgoJKCQoc3JjZGlyKS90cmVlbGFuZy90cmVlbGFuZy5pbmZvKTogUmVwbGFjZSB3aXRoIC4uLgoJKCQoZG9jb2JqZGlyKS90cmVlbGFuZy90cmVlbGFuZy5pbmZvKTogLi4uIHRoaXMuCgkoaW5zdGFsbC1pbmZvKTogTmV3IHRhcmdldC4KCjIwMDMtMTAtMTIgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcuaW5zdGFsbC1pbmZvKTogUmVtb3ZlIHJlZmVyZW5jZSB0bwoJdHJlZWxhbmcuaW5mby4KCSh0cmVlbGFuZy4pOiBSZW1vdmVkLgoKMjAwMy0xMC0wNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcuaW5mbyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShpbmZvKTogLi4uIHRoaXMuCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcuZHZpKTogUmVwbGFjZSB3aXRoIC4uLgoJKGR2aSk6IC4uLiB0aGlzLgoKMjAwMy0wOS0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWV0cmVlLmM6IFJldmVydC4KCjIwMDMtMDktMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVldHJlZS5jOiBVcGRhdGUgZm9yIERFQ0xfU09VUkNFX0xPQ0FUSU9OIHJlbmFtZSBhbmQKCWNoYW5nZSB0byBjb25zdC4KCjIwMDMtMDctMjggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHRyZWV0cmVlLmM6IENvbnZlcnQgcmVtYWluaW5nIEsmUiBwcm90b3R5cGVzIHRvIElTTyBDOTAuCgkqIHRyZWUxLmM6IExpa2V3aXNlLgoJKiBwYXJzZS55OiBMaWtld2lzZS4KCSogdHJlZS1jb252ZXJ0LmM6IExpa2V3aXNlLgoKMjAwMy0wNy0xOSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogdHJlZXRyZWUuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoKMjAwMy0wNy0xNSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogbGFuZy1vcHRpb25zLmg6IFJlbW92ZS4KCSogbGFuZy5vcHQ6IERvY3VtZW50IHNvbWUgb3B0aW9ucy4gIFJlbW92ZSAtLWhlbHAuCgkqIHRyZWUxLmMgKHRyZWVsYW5nX2hhbmRsZV9vcHRpb24pOiBSZW1vdmUgT1BUX19oZWxwIGNhc2UuCgoyMDAzLTA3LTEyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWVsYW5nL3RyZWUtY29udmVydC5vKTogRGVwZW5kIG9uIFRNX0guCgoyMDAzLTA3LTEwICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBNYWtlLWxhbmcuaW46IFVwZGF0ZS4KCSogdHJlZTEuYzogRG9uJ3QgaW5jbHVkZSBjLWNvbW1vbi5oLgoJKGNfbGFuZ3VhZ2UpOiBSZW1vdmUuCgoyMDAzLTA3LTEwICBGZXJndXMgSGVuZGVyc29uICA8ZmpoQGNzLm11Lm96LmF1PgoJICAgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIHRyZWUtY29udmVydC5jOiBOZXcgZmlsZS4KCSogdHJlZXRyZWUuYzogRG9uJ3QgaW5jbHVkZSBjLXRyZWUuaC4gIEluY2x1ZGUgdGFyZ2V0LmguCgkoc3RydWN0IGxhbmdfaWRlbnRpZmllciwgdW5pb24gbGFuZ190cmVlX25vZGUsIHN0cnVjdCBsYW5nX3R5cGUsCglzdHJ1Y3QgbGFuZ19mdW5jdGlvbik6IE5ldywgbWluaW1hbCBsYW5ndWFnZS1zcGVjaWZpYyBkYXRhc3RydWN0cy4KCSh0cmVlX2xhbmdfdHJ1dGh2YWx1ZV9jb252ZXJzaW9uLCB0cmVlX21hcmtfYWRkcmVzc2FibGUsCgl0cmVlX2xhbmdfdHlwZV9mb3Jfc2l6ZSwgdHJlZV9sYW5nX3R5cGVfZm9yX21vZGUsCgl0cmVlX2xhbmdfdW5zaWduZWRfdHlwZSwgdHJlZV9sYW5nX3NpZ25lZF90eXBlLAoJdHJlZV9sYW5nX3NpZ25lZF9vcl91bnNpZ25lZCk6IE5ldyBmdW5jdGlvbnMuCgkoTEFOR19IT09LU18qKTogRG9uJ3QgdXNlIEMgZnJvbnQgZW5kIGxhbmdob29rcy4gIFVzZSBuZXcgZnVuY3Rpb25zLgoJKHB1c2hsZXZlbCwgcG9wbGV2ZWwsIGdsb2JhbF9iaW5kaW5nc19wLCBpbnNlcnRfYmxvY2ssIHNldF9ibG9jaywKCXB1c2hkZWNsLCBnZXRkZWNscywga2VwdF9sZXZlbF9wLCB0cmVlX3B1c2hfdHlwZV9kZWNsLAoJdHJlZV9wdXNoX2F0b21pY190eXBlX2RlY2wpOiBOZXcgZnVuY3Rpb25zLgoJKHN0cnVjdCByZXN3b3JkLCBzdHJ1Y3QgcmVzd29yZHMpOiBSZW1vdmUuCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlLiAgRG9uJ3QgZGVwZW5kIG9uIEMgZnJvbnQgZW5kIG9iamVjdHMuCgkqIGNvbmZpZy1sYW5nLmluOiBMaWtld2lzZS4KCjIwMDMtMDctMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlbGFuZy90cmVldHJlZS5jICh0cmVlX2NvZGVfaWZfc3RhcnQsIHRyZWVfY29kZV9pZl9lbHNlLAoJdHJlZV9jb2RlX2lmX2VuZCwgdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9pbml0aWFsLAoJdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl93cmFwdXAsIHRyZWVfY29kZV9nZW5lcmF0ZV9yZXR1cm4sCgl0cmVlX2NvZGVfb3V0cHV0X2V4cHJlc3Npb25fc3RhdGVtZW50KTogQWRqdXN0IGVtaXRfbGluZV9ub3RlCgljYWxscy4KCjIwMDMtMDctMDQgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTWFrZS1sYW5nLmluOiBSZXBsYWNlIFBXRCB3aXRoIFBXRF9DT01NQU5ELgoKMjAwMy0wNy0wMiAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogdHJlZTEuYyAodHJlZWxhbmdfaW5pdF9vcHRpb25zKTogVXBkYXRlIHByb3RvdHlwZS4KCSogdHJlZWxhbmcuaCAodHJlZWxhbmdfaW5pdF9vcHRpb25zKTogVXBkYXRlIHByb3RvdHlwZS4KCjIwMDMtMDctMDEgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlLgoJKiB0cmVlMS5jOiBJbmNsdWRlIGMtY29tbW9uLmguICBEZWZpbmUgY19sYW5ndWFnZS4KCjIwMDMtMDYtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX3dyYXB1cCk6IEFkanVzdAoJZXhwYW5kX2Z1bmN0aW9uX2VuZCBjYWxsLgoKMjAwMy0wNi0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWV0cmVlLmMgKGJ1aWxkX3N0bXQpOiBSZW1vdmUgVlBBUkFNUy4KCShwZWR3YXJuX2M5OSk6IExpa2V3aXNlLgoKMjAwMy0wNi0xNSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogbGFuZy5vcHQ6IERlY2xhcmUgVHJlZWxhbmcuICBVcGRhdGUuCgkqIHRyZWUxLmMgKHRyZWVsYW5nX2luaXRfb3B0aW9ucyk6IFVwZGF0ZS4KCjIwMDMtMDYtMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX2luaXRpYWwpOiBBZGp1c3QKCWluaXRfZnVuY3Rpb25fc3RhcnQgY2FsbC4KCjIwMDMtMDYtMTQgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlIHRvIHVzZSBvcHRpb25zLmMgYW5kIG9wdGlvbnMuaC4KCSogdHJlZTEuYzogSW5jbHVkZSBvcHRpb25zLmggbm90IHQtb3B0aW9ucy5oLgoJKHRyZWVsYW5nX2luaXRfb3B0aW9ucyk6IE5ldy4KCSh0cmVlbGFuZ19oYW5kbGVfb3B0aW9uKTogQWJvcnQgb24gdW5yZWNvZ25pemVkIHN3aXRjaC4KCSogdHJlZXRyZWUuYyAoTEFOR19IT09LU19JTklUX09QVElPTlMpOiBPdmVycmlkZS4KCSogdHJlZXRyZWUuaCAodHJlZWxhbmdfaW5pdF9vcHRpb25zKTogTmV3LgoKMjAwMy0wNi0xMiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogdHJlZXRyZWUuYzogUmVtb3ZlIGNsX29wdGlvbnMtY291bnQgYW5kIGNsX29wdGlvbnMuCgoyMDAzLTA2LTExICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBNYWtlLWxhbmcuaW46IFVwZGF0ZSBmb3Igb3B0aW9uIGhhbmRsaW5nLgoJKiBsYW5nLm9wdDogTmV3LgoJKiB0cmVlMS5jOiBJbmNsdWRlIG9wdHMuaCBhbmQgdC1vcHRpb25zLmguCgkodHJlZWxhbmdfZGVjb2RlX29wdGlvbik6IFJlbW92ZS4KCSh0cmVlbGFuZ19oYW5kbGVfb3B0aW9uKTogTmV3LgoJKiB0cmVldHJlZS5jIChMQU5HX0hPT0tTX0RFQ09ERV9PUFRJT04pOiBSZW1vdmUuCgkoTEFOR19IT09LU19IQU5ETEVfT1BUSU9OKTogT3ZlcnJpZGUuCgkqIHRyZWV0cmVlLmggKHRyZWVsYW5nX2RlY29kZV9vcHRpb24pOiBSZW1vdmUuCgkodHJlZWxhbmdfaGFuZGxlX29wdGlvbik6IE5ldy4KCjIwMDMtMDYtMDggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlLgoJKiB0cmVldHJlZS5jOiBJbmNsdWRlIG9wdHMuaC4gRGVmaW5lIGNsX29wdGlvbnNfY291bnQgYW5kIGNsX29wdGlvbnMuCgoyMDAzLTA2LTA4ICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCSogdHJlZXRyZWUuYyAoY19sZXgpOiBBZGQgZmFrZSByb3V0aW5lIHRvIHNhdGlzZnkgUlM2MDAwIGJhY2tlbmQuCgoyMDAzLTA2LTA1ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBNYWtlLWxhbmcuaW46ICBBZGQgc3VwcG9ydCBmb3Igc3RhZ2Vwcm9maWxlIGFuZCBzdGFnZWZlZWRiYWNrCgoyMDAzLTA1LTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZXRyZWUuYyAocmVzd29yZHMpOiBSZW1vdmUgX19ib3VuZGVkX18sIF9fdW5ib3VuZGVkX18uCgoyMDAzLTA1LTA5ICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCSogTWFrZS1sYW5nLmluIChUUkVFX0JFX0xJQlMpOiBBZGQgQ19UQVJHRVRfT0JKUyB0byBvYmplY3QgZmlsZXMKCXRvIGxpbmsgKG5lZWRlZCBieSBzb21lIGZyb250IGVuZHMgc3VjaCBhcyBQUEMpLgoKCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9pbml0aWFsKTogRml4IGxvbmcgbGluZS4KCUluaXRpYWxpemUgdHJlZV9jb2RlX2ludF9zaXplIGFuZCB0cmVlX2NvZGVfY2hhcl9zaXplIHRvCgltZWFuaW5nZnVsIHZhbHVlcy4KCSh0cmVlX2NvZGVfZ2V0X251bWVyaWNfdHlwZSk6IEFkZCBjaGVjayB0aGF0IHNpemUxIHBhcmFtZXRlciBpcwoJdmFsaWQuCgoJKiBwYXJzZS55OiBGaXggZXh0cmEgbG9uZyBsaW5lcyBpbiBwcm90b3R5cGVzLgoKCSogdHJlZWxhbmcuaDogRml4IGV4dHJhIGxvbmcgbGluZXMgaW4gbWFjcm8gZGVmaW5pdGlvbnMuCgoyMDAzLTA1LTA3ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluOiBTZXQgLVduby1lcnJvciBmb3IgdHJlZWxhbmcvbGV4Lm8uCgoyMDAzLTA1LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy90cmVlMS5vKTogRGVwZW5kcyBvbiBpbnB1dC5oCgkodHJlZWxhbmcvdHJlZXRyZWUubywgdHJlZWxhbmcvcGFyc2UubywgdHJlZWxhbmcvbGV4Lm8pOiBMaWtld2lzZS4KCSogdHJlZWxhbmcuaDogI2luY2x1ZGUgaW5wdXQuaC4KCShpbl9mbmFtZSk6IFJlbW92ZS4KCShzdHJ1Y3QgdG9rZW5fcGFydCk6IFJlbW92ZSBsaW5lbm8sIGFkZCBsb2NhdGlvbi4KCSogbGV4LmwgKG5leHRfdHJlZV9saW5lbm8pOiBSZW1vdmUuCgkodXBkYXRlX2xpbmVub19jaGFybm8pOiBBZGp1c3QuCgkoZHVtcF9sZXhfdmFsdWUpOiBBZGp1c3QuCgkqIHBhcnNlLnkgKHZhcmlhYmxlX2RlZiwgZnVuY3Rpb25fcHJvdG90eXBlLCBmdW5jdGlvbiwgc3RhdGVtZW50LAoJaWZfc3RhdGVtZW50LCByZXR1cm4sIGZ1bmN0aW9uX2ludm9jYXRpb24sIHZhcmlhYmxlX3JlZik6IEFkanVzdC4KCShwcmludF90b2tlbiwgeXllcnJvciwgZW5zdXJlX25vdF92b2lkKTogQWRqdXN0LgoJdHJlZTEuYyAoaW5fZm5hbWUpOiBSZW1vdmUuCgkodHJlZWxhbmdfaW5pdCk6IFNldHVwIGlucHV0X2xvY2F0aW9uLgoJKGxvb2t1cF90cmVlX25hbWUpOiBBZGp1c3QuCgkoaW5zZXJ0X3RyZWVfbmFtZSk6IEFkanVzdC4KCSogdHJlZXRyZWUuYyAodHJlZV9jb2RlX2lmX3N0YXJ0KTogUmVwbGFjZSBmaWxlbmFtZSBhbmQgbGluZW5vCglwYXJtcyB3aXRoIGxvYy4gQWRqdXN0LgoJKHRyZWVfY29kZV9pZl9lbHNlLCB0cmVlX2NvZGVfaWZfZW5kLAoJdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9wcm90b3R5cGUsCgl0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX2luaXRpYWwsCgl0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX3dyYXB1cCwgdHJlZV9jb2RlX2NyZWF0ZV92YXJpYWJsZSwKCXRyZWVfY29kZV9vdXRwdXRfZXhwcmVzc2lvbl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCSogdHJlZXRyZWUuaCAodHJlZV9jb2RlX2lmX3N0YXJ0KTogUmVwbGFjZSBmaWxlbmFtZSBhbmQgbGluZW5vCglwYXJtcyB3aXRoIGxvYy4KCSh0cmVlX2NvZGVfaWZfZWxzZSwgdHJlZV9jb2RlX2lmX2VuZCwKCXRyZWVfY29kZV9jcmVhdGVfZnVuY3Rpb25fcHJvdG90eXBlLAoJdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9pbml0aWFsLAoJdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl93cmFwdXAsIHRyZWVfY29kZV9jcmVhdGVfdmFyaWFibGUsCgl0cmVlX2NvZGVfb3V0cHV0X2V4cHJlc3Npb25fc3RhdGVtZW50KTogTGlrZXdpc2UuCgoyMDAzLTA1LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZTEuYyAodHJlZWxhbmdfaW5pdCk6IFJlbmFtZSBsaW5lbm8gdG8gaW5wdXRfbGluZS4KCjIwMDMtMDQtMzAgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIHBhcnNlLnkgKG1ha2VfcGx1c19leHByZXNzaW9uKTogTmV3IGZ1bmN0aW9uLgoJKGV4cHJlc3Npb24gcHJvZHVjdGlvbik6IFVzZSBtYWtlX3BsdXNfZXhwcmVzc2lvbiBmb3IgUExVUywKCU1JTlVTLCBBU1NJR04gYW5kIEVRVUFMUy4KCSogdHJlZTEuYyAodHJlZWxhbmdfZGVjb2RlX29wdGlvbik6IERvbid0IGZhbGwgdGhyb3VnaCB0bwoJb3B0aW9ucyB0aGF0IHN0YXJ0IHdpdGggYSBkaWZmZXJlbnQgY2hhcmFjdGVyIHdoZW4gYW4gb3B0aW9uCgl3YXMgbm90IHJlY29nbml6ZWQuCgoyMDAzLTA0LTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChwYXJzZS5jKTogUmVvcmRlciBiaXNvbiBhcmd1bWVudHMgZm9yIFBPU0lYTFlfQ09SUkVDVC4KCSogdHJlZXRyZWUuYzogRG8gbm90ICNpbmNsdWRlIHBhcnNlLmguCgoyMDAzLTAzLTIxICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiB0cmVldHJlZS5jIChjcHBfY3JlYXRlX3JlYWRlcik6IEZvbGxvdyBwcm90b3R5cGUgY2hhbmdlIGluCgljcHBsaWIuaC4KCjIwMDMtMDMtMTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcudGFncyk6IFJlbW92ZSBkdXBsaWNhdGUgZW50cnkuCgoyMDAzLTAzLTE1ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiB0cmVldHJlZS5jIChjcHBfaGFuZGxlX29wdGlvbik6IFJlbW92ZS4KCjIwMDMtMDMtMTMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZTEkKGV4ZWV4dCkpOiBGaXggcHJldmlvdXMgcGF0Y2guCgoyMDAzLTAzLTEyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWUxJChleGVleHQpKTogQWRkIGMtY3BwYnVpbHRpbi5vLgoKMjAwMy0wMy0wOCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogdHJlZTEuYyAoaW5fZm5hbWUpOiBGaXggdHlwZS4KCSh0cmVlbGFuZ19pbml0KTogVXBkYXRlIHByb3RvdHlwZSBhbmQgdXNlIG9mIGluX2ZuYW1lLgoJKiB0cmVlbGFuZy5oIChpbl9mbmFtZSk6IEZpeCB0eXBlLgoJKiB0cmVldHJlZS5jICh0cmVlX2NvZGVfaWZfc3RhcnQsIHRyZWVfY29kZV9pZl9lbHNlLAoJdHJlZV9jb2RlX2lmX2VuZCwgdHJlZV9jb2RlX2NyZWF0ZV9mdW5jdGlvbl9wcm90b3R5cGUsCgl0cmVlX2NvZGVfY3JlYXRlX2Z1bmN0aW9uX2luaXRpYWwsIHRyZWVfY29kZV9jcmVhdGVfZnVuY2l0b25fd3JhcHVwLAoJdHJlZV9jb2RlX2NyZWF0ZV92YXJpYWJsZSwgdHJlZV9jb2RlX291dHB1dF9leHByZXNzaW9uX3N0YXRlbWVudCkKCTogRml4IHByb3RvdHlwZXMgYW5kIHVzZSBvZiBmaWxlbmFtZXMuCgkqIHRyZWV0cmVlLmg6IFNpbWlsYXJseS4KCjIwMDMtMDMtMDUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHRyZWV0cmVlLmMgKGluaXRfY19sZXgpOiBGb2xsb3cgY2hhbmdlIHRvIGMtY29tbW9uLmguCgoyMDAzLTAzLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWVsYW5nLnRhZ3MpOiBOZXcgdGFyZ2V0LgoKMjAwMy0wMy0wMSAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCglOYW1lIGNsYXNoZXMgd2l0aCBydGwuaCBmaXhlZC4KCgkqIGxleC5sOiBUb2tlbnMgUExVUywgTUlOVVMsIFJFVFVSTiBjaGFuZ2VkIHRvIHRsX1BMVVMgdGxfTUlOVVMKCXRsX1JFVFVSTi4KCgkqIHBhcnNlLnk6IERpdHRvLgoKMjAwMy0wMi0yNCAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCgkqIHBhcnNlLnkgKG15X3l5bGV4KTogTmV3IC0gZW5zdXJlIGxleGVyIHRpbWUgaXMgY2hhcmdlZCB0bwoJVFZfTEVYLgoJKHl5bGV4KTogcmVkZWZpbmUgYXMgaW52b2NhdGlvbiBvZiBteV95eWxleCB3aGljaCB0aGVuIGNhbGxzCglmbGV4LWdlbmVyYXRlZCB5eWxleC4KCSh0aW1ldmFyLmgpOiBpbmNsdWRlLgoKMjAwMy0wMi0yMyAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCglGaXggZ2FyYmFnZSBjb2xsZWN0aW9uLCBhZGQgbW9yZSBlcnJvciBjaGVja2luZywgZm9yY2UgR0MgYWx3YXlzLgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy90cmVlMS5vKTogRGVwZW5kIG9uIHRyZWVsYW5nL3RyZWV0cmVlLmgKCSh0cmVlbGFuZy90cmVldHJlZS5vKTogRGVwZW5kIG9uICB0cmVlbGFuZy9wYXJzZS5oCgoJKiBsZXgubDogaW5jbHVkZSAidHJlZXRyZWUuaCIKCgkqIGxleC5sICh1cGRhdGVfeXlsdmFsKTogQWxsb2NhdGUgc3RyaW5nIHVzaW5nIGdldF9zdHJpbmcgc28gR0MKCXdvcmtzLgoKCSogcGFyc2UueSAoZnVuY3Rpb25fcHJvdG90eXBlKTogU2V0IGNhdGVnb3J5IGNvcnJlY3RseSBzbyBHQyB3b3Jrcy4KCShmdW5jdGlvbik6IFNldCBjYXRlZ29yeSBpbiBzZWFyY2ggc28gY2hlY2tpbmcgd29ya3MuCgkoZnVuY3Rpb25faW52b2NhdGlvbik6IERpdHRvLgoJKHZhcmlhYmxlX3JlZik6IERpdHRvLgoKCSogdHJlZTEuYyAobG9va3VwX3RyZWVfbmFtZSk6IENhbGwgc2FuaXR5X2NoZWNrIGZvciBwYXNzZWQKCXByb2R1Y3Rpb24gYW5kIGFzc29jaWF0ZWQgdG9rZW4gYW5kIGZvciBzeW1ib2wgdGFibGUgZW50cmllcy4KCgkqIHRyZWUxLmMgKHNhbml0eV9jaGVjayk6IE5ldywgYmFzaWMgY2hlY2sgdGhhdCBzdHJ1Y3QgaXMgdmFsaWQuCgoJKiB0cmVlbGFuZy5oOiBQcm90b3R5cGUgZm9yIHNhbml0eV9jaGVjay4KCjIwMDMtMDEtMjcgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiB0cmVldHJlZS5jICh0cmVlbGFuZ19pbml0X2RlY2xfcHJvY2Vzc2luZyk6IENoYW5nZSBtZW1vcnkKCWFsbG9jYXRpb24gdG8gdXNlIEdDLgoKMjAwMy0wMi0wNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlbGFuZy50ZXhpOiBVcGRhdGUgdG8gR0ZETCAxLjIuCgoyMDAzLTAxLTI2ICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgoJKiBNYWtlLWxhbmcuaW4gKHRyZWVsYW5nL3BhcnNlLm8td2Fybik6IERlZmluZSBhcyAtV25vLWVycm9yLgoKMjAwMy0wMS0xNCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5pbnN0YWxsLWluZm8pOiBEZXBlbmQgb25seSBvbiBpbmZvIGZpbGVzCglpZiBCVUlMRF9JTkZPIGlzIHNldC4gIEZpeCBpbnN0YWxsIHJ1bGVzLgoJKHRyZWVsYW5nLik6IE5ldy4KCjIwMDMtMDEtMDkgIENocmlzdGlhbiBDb3JuZWxzc2VuICA8Y2Nvcm5AY3MudHUtYmVybGluLmRlPgoKCSogTWFrZS1sYW5nLmluICh0cmVlbGFuZy5pbnN0YWxsLmNvbW1vbi5kb25lLAoJdHJlZWxhbmcuaW5zdGFsbC1pbmZvLCB0cmVlbGFuZy51bmluc3RhbGwpOiBQcmVwZW5kCgkkKERFU1RESVIpIHRvIGRlc3RpbmF0aW9uIHBhdGhzIGluIGFsbCAodW4paW5zdGFsbGF0aW9uCgljb21tYW5kcy4KCjIwMDItMTItMjggIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogdHJlZWxhbmcudGV4aTogVXNlIEBjb3B5aW5nLgoKMjAwMi0xMi0yMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlbGFuZy50ZXhpOiBJbmNsdWRlIGdjYy1jb21tb24udGV4aS4KCSogTWFrZS1sYW5nLmluICgkKHNyY2RpcikvdHJlZWxhbmcvdHJlZWxhbmcuaW5mbywgdHJlZWxhbmcuZHZpKToKCURlcGVuZCBvbiBnY2MtY29tbW9uLnRleGkuICBBZGQgb3RoZXIgbWlzc2luZyBkZXBlbmRlbmNpZXMuCgkodHJlZWxhbmcuZHZpKTogVXNlIHRleGkyZHZpLgoKMjAwMi0xMi0yMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlbGFuZy50ZXhpOiBVc2UgQGlmbm90dGV4IGluc3RlYWQgb2YgQGlmaW5mby4KCjIwMDItMTEtMzAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZXgubDogTW92ZSAiJXsiIGJlbG93IGNvcHlyaWdodCBub3RpY2U7IGdldCByaWQgb2YgIi8qIgoJZW1iZWRkZWQgaW4gY29tbWVudC4gIERvIG5vdCAjdW5kZWYgSU5fR0NDOyBkbyBub3QgaW5jbHVkZQoJc3RkaW8uaCwgbWVtb3J5LmgsIG9yIGFuc2lkZWNsLmg7IGRvIG5vdCBpbmNsdWRlIGNvbmZpZy5oIHR3aWNlLgoJRG8gaW5jbHVkZSBjb3JldHlwZXMuaCBhbmQgdG0uaC4KCSogcGFyc2UueTogRG8gbm90ICN1bmRlZiBJTl9HQ0MsIHByb3ZpZGUgYm9ndXMgZGVmaW5pdGlvbnMgb2YgdHJlZQoJYW5kIHJ0eCB0eXBlZGVmcywgb3IgaW5jbHVkZSBzdGRpby5oLCBzdGRsaWIuaCwgc3RyaW5nLmgsIG9yCglhbnNpZGVjbC5oLiBEbyBpbmNsdWRlIGNvcmV0eXBlcy5oIGFuZCB0bS5oLgoJKiB0cmVlMS5jOiBEbyBub3QgaW5jbHVkZSBhbnNpZGVjbC5oLCBzdGRsaWIuaCwgdW5pc3RkLmgsIGN0eXBlLmgsCglzdGRhcmcuaCwgc3RyaW5nLmgsIG9yIHN0ZGlvLmguICBEbyBpbmNsdWRlIGNvcmV0eXBlcy5oIGFuZCB0bS5oLgoJKiB0cmVldHJlZS5jOiBEbyBub3QgaW5jbHVkZSBzdGRsaWIuaCwgdW5pc3RkLmgsIHNhZmUtY3R5cGUuaCwKCWVycm5vLmguIHN0ZGFyZy5oLCBsaW1pdHMuaCwgc3RyaW5nLmgsIGZjbnRsLmgsIGdldG9wdC5oLiBzdGRpby5oLAoJb3IgYW5zaWRlY2wuaC4gIERvIGluY2x1ZGUgY29yZXR5cGVzLmggYW5kIHRtLmguCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlIGRlcGVuZGVuY2llcy4KCjIwMDItMDktMDkgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiB0cmVldHJlZS5jIChvYmpjX2lzX2lkKTogTmV3LgoKMjAwMi0wOC0xNiAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCglSZW1vdmUgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMgbm93IGRlZmluZWQgZWxzZXdoZXJlLgoKCSogdHJlZXRyZWUuYyAobWF5YmVfb2JqY19jb21wdHlwZXMpOiBSZW1vdmUuCgkod2Fybl9mb3JtYXQsIHdhcm5fZm9ybWF0X3kyaywgd2Fybl9mb3JtYXRfZXh0cmFfYXJncywKCXdhcm5fZm9ybWF0X25vbmxpdGVyYWwsIHdhcm5fZm9ybWF0X3NlY3VyaXR5LAoJd2Fybl9mb3JtYXRfemVyb19sZW5ndGgpOiBSZW1vdmUuCgkobWF5YmVfYnVpbGRpbmdfb2JqY19tZXNzYWdlX2V4cHIpOiBSZW1vdmUuCgkoY3BwX3Bvc3Rfb3B0aW9ucyk6IFJlbW92ZS4KCShtYXliZV9vYmpjX2NoZWNrX2RlY2wpOiBSZW1vdmUuCgkoaW50ZWdlcl90eXBlcyk6IFJlbW92ZS4KCgoyMDAyLTA4LTEzICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiB0cmVlbGFuZy5jOiBSZW1vdmUgY3BwX3Bvc3Rfb3B0aW9ucy4KCjIwMDItMDgtMTMgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiBwYXJzZS55OiBQcm92aWRlIGR1bW15IGRlZmluaXRpb24gb2YgcnR4IGZvciB1c2UgYnkgY29uZmlnLmguCgkqIE1ha2UtbGFuZy5pbiAodHJlZXRyZWUubyk6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIG5vbi1leGlzdGVudAoJZ3QtdHJlZWxhbmctdHJlZWxhbmcuaC4KCShndC10cmVlbGFuZy10cmVlbGFuZy5oKTogUmVtb3ZlLgoKMjAwMi0wOC0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWVsYW5nL01ha2UtbGFuZy5pbiAodHJlZWxhbmcubW9zdGx5Y2xlYW4pOiBSZW1vdmUgY292ZXJhZ2UgZmlsZXMuCgoyMDAyLTA3LTExICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCVJlbW92ZSBmcm9udCBlbmQgaGFyZCBjb2RpbmcgZnJvbSBnZW5ndHlwZS5jLgoKCSogY29uZmlnLWxhbmcuaW4gKGd0ZmlsZXMpOiBBZGQgZmlsZXMgbmVlZGVkIGZvciB0aGlzIGZyb250CgllbmQuCgoyMDAyLTA3LTA5ICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCVN1cHBvcnQgbmV3IGF0dHJpYnV0ZXMgcmVnaW1lIChGaXggZm9yIFBSIGMrKy83MDk5KS4KCgkqIHRyZWV0cmVlLmMgKGhhbmRsZV9mb3JtYXRfYXR0cmlidXRlKTogUmV0dXJuIE5VTExfVFJFRSBpbnN0ZWFkCglvZiBhYm9ydGluZy4KCSh0b3AgbGV2ZWwpOiBEZWZpbmUgTEFOR19IT09LU19DT01NT05fQVRUUklCVVRFX1RBQkxFCglMQU5HX0hPT0tTX0ZPUk1BVF9BVFRSSUJVVEVfVEFCTEUKCUxBTkdfSE9PS1NfSU5TRVJUX0RFRkFVTFRfQVRUUklCVVRFUyBhcyB0aGUgc3RhbmRhcmQgQyByb3V0aW5lcy4KCjIwMDItMDYtMjEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcvdHJlZTEubywgdHJlZWxhbmcvdHJlZXRyZWUubywKCXRyZWVsYW5nL3BhcnNlLm8sIHRyZWVsYW5nL2xleC5vKTogQWRkIGRlcGVuZGVuY3kgb24gJChDT05GSUdfSCkuCgoyMDAyLTA2LTE5ICBQYW9sbyBCb256aW5pIDxib256aW5pQGdudS5vcmc+CgoJKiBsZXgubCAoeXlwYXJzZSkgUmV0dXJuIEFVVE9NQVRJQyBmb3IgJ2F1dG9tYXRpYycgdG9rZW4gcmF0aGVyCgl0aGFuIFNUQVRJQy4KCjIwMDItMDYtMTAgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJQ2xlYW51cAoKCSogTWFrZS1sYW5nLmluIChjaGVjay10cmVlbGFuZykuIEFkZC4gUmVtb3ZlIGRpcmVjdCBkZXBlbmRlbmN5IG9mCgknY2hlY2snIG9uICd0cmVlbGFuZy5jaGVjaycgYXMgcmVkdW5kYW50LgoKCVBDSCBHYXJiYWdlIGNvbGxlY3Rpb24gcmVnaW1lIChnZW5ndHlwZXMuYykgcGhhc2UgMS4KCgkqIE1ha2UtbGFuZy5pbiAodHJlZWxhbmcvdHJlZTEubykuIERlcGVuZCBvbiBndC10cmVlbGFuZy10cmVlMS5oCglndC10cmVlbGFuZy10cmVlbGFuZy5oIGd0eXBlLXRyZWVsYW5nLmguCgkoZ3QtdHJlZWxhbmctdHJlZTEuaCkgRGVwZW5kIG9uIHMtZ3R5cGUuCgkoZ3QtdHJlZWxhbmctdHJlZWxhbmcuaCkgRGVwZW5kIG9uIHMtZ3R5cGUuCgkoZ3R5cGUtdHJlZWxhbmcuaCkgRGVwZW5kIG9uIHMtZ3R5cGUuCgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IERlZmluZS4KCgkqIGxleC5sIChtYWluKTogUmVtb3ZlICcjaWYgMCcgZGVhZCBjb2RlLgoJKG1haW4pOiBNb3ZlIHVuZGVmIG9mIElOX0dDQyBzbyBkZWZpbmUgb2YgdHJlZSB0eXBlZGVmIHdvcmtzLgoJKGFsbCk6IFJlcGxhY2UgdG9rZW4gYW5kIHByb2R1Y3Rpb24gYnkgcHJvZF90b2tlbl9wYXJtX2l0ZW0uCgoJKiBwYXJzZS55CgkoYWxsKTogUmVwbGFjZSB0b2tlbiBhbmQgcHJvZHVjdGlvbiBieSBwcm9kX3Rva2VuX3Bhcm1faXRlbS4KCgkqIHRyZWUxLmMgKG1haW4pOiBSZW1vdmUgaW5jbHVkZSBvZiAib3V0cHV0LmgiLgoJKHN5bWJvbF90YWJsZSk6IEFkZCBHVFkgZGV0YWlscy4KCShzeW1ib2xfdGFibGVfZ2djKTogUmVtb3ZlLgoJKHRyZWVsYW5nX2luaXQpOiBSZW1vdmUgcm9vdCBkZWZpbml0aW9ucyBmb3IgZ2FyYmFnZSBjb2xsZWN0aW9uLgoJKG1hcmtfcHJvZHVjdGlvbl91c2VkKTogUmVtb3ZlLgoJKG1hcmtfdG9rZW5fdXNlZCk6IFJlbW92ZS4KCShtYWluLCBhdCBlbmQpOiBpbmNsdWRlIGdlbmVyYXRlZCBnYXJhZ2UgY29sbGVjdGlvbiByb3V0aW5lcy4KCgkqIHRyZWVsYW5nLmggKGNhdGVnb3J5X2VudW0gKTogQWRkIHBhcmFtZXRlcl9jYXRlZ29yeS4KCShhbGwpOiBSZXBsYWNlIHRva2VuIGFuZCBwcm9kdWN0aW9uIGFuZCBwYXJhbWV0ZXJzIGJ5IHVuaW9uCglwcm9kX3Rva2VuX3Bhcm1faXRlbSBjb250YWluaW5nIHByb2R1Y3Rpb25fcGFydCwgdG9rZW5fcGFydCwKCXBhcmFtZXRlcl9wYXJ0LgoJKFNUQVRJQ19TVE9SQUdFIEFVVE9NQVRJQ19TVE9SQUdFIEVYVEVSTkFMX1JFRkVSRU5DRV9TVE9SQUdFCglFWFRFUk5BTF9ERUZJTklUSU9OX1NUT1JBR0UgU0lHTkVEX0NIQVIgVU5TSUdORURfQ0hBUiBTSUdORURfSU5UCglVTlNJR05FRF9JTlQgVk9JRF9UWVBFIEVYUF9QTFVTIEVYUF9SRUZFUkVOQ0UgRVhQX0FTU0lHTgoJRVhQX0ZVTkNUSU9OX0lOVk9DQVRJT04gRVhQX01JTlVTIEVYUF9FUVVBTFMpOiBNb3ZlIGhlcmUgZnJvbQoJdHJlZXRyZWUuaC4KCgkqIHRyZWV0cmVlLmMKCSh0bV9wLmgpOiBEbyBub3QgaW5jbHVkZS4KCShhbnNpZGVjbC5oKTogTW92ZSBpbmNsdWRlIGFmdGVyIGNvbmZpZy5oLgoJKHRyZWVsYW5nLmgpOiBJbmNsdWRlIGl0LgoJKEFERFJPT1QpOiBSZW1vdmUuCgkoYWxsKTogUmVwbGFjZSB0b2tlbiwgcHJvZHVjdGlvbiBhbmQgcGFyYW1ldGVyIGJ5IHByb2RfdG9rZW5fcGFybV9pdGVtLgoJKHRyZWVfcGFyYW1ldGVyX2xpc3QpOiBNb3ZlIHRvIHRyZWVsYW5nLmggYXMgcGFydCBvZgoJcHJvZF90b2tlbl9wYXJtX2l0ZW0uCgkoU1RBVElDX1NUT1JBR0UgQVVUT01BVElDX1NUT1JBR0UgRVhURVJOQUxfUkVGRVJFTkNFX1NUT1JBR0UKCUVYVEVSTkFMX0RFRklOSVRJT05fU1RPUkFHRSBTSUdORURfQ0hBUiBVTlNJR05FRF9DSEFSIFNJR05FRF9JTlQKCVVOU0lHTkVEX0lOVCBWT0lEX1RZUEUgRVhQX1BMVVMgRVhQX1JFRkVSRU5DRSBFWFBfQVNTSUdOCglFWFBfRlVOQ1RJT05fSU5WT0NBVElPTiBFWFBfTUlOVVMgRVhQX0VRVUFMUyk6IE1vdmUgZnJvbSBoZXJlIHRvCgl0cmVlbGFuZy5oLgoKMjAwMi0wNS0xOSAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCgkqIHRyZWV0cmVlLmMgKHdhcm5fZm9ybWF0X3plcm9fbGVuZ3RoKTogQWRkLgoKMjAwMi0wNS0xNCAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCgkqIE1ha2UtbGFuZy5pbjogRml4IGJ1aWxkIGZvciAuaW5mbyBmaWxlcywgYWRkIHRhcmdldCBmb3IgbWFucGFnZXMuCglBIGJ1ZyByZXBvcnQgYW5kIGEgc3VnZ2VzdGVkIHBhdGNoIGNhbWUgZnJvbSBNYWdudXMgRnJvbXJlaWRlCgk8bWFnZnJAbHlzYXRvci5saXUuc2U+LgoKMjAwMi0wNS0xNiAgUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJKiBNYWtlLWxhbmcuaW46IEFsbG93IGZvciBQV0RDTUQgdG8gb3ZlcnJpZGUgaGFyZGNvZGVkIHB3ZC4KCjIwMDItMDUtMTEgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiB0cmVldHJlZS5jOiAoY3BwX2RlZmluZSkgQWRkLgoJKGNwcF9nZXRfY2FsbGJhY2tzKSBBZGQuCgoyMDAyLTA1LTA3ICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCSogdHJlZXRyZWUuYzogKGNwcF9nZXRfb3B0aW9ucykgQWRkLgoKMjAwMi0wNS0wNiAgVGltIEpvc2xpbmcgIDx0ZWpAbWVsYnBjLm9yZy5hdT4KCgkqIC5jdnNpZ25vcmU6IEFkZC4KCjIwMDItMDUtMDUgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiBVcGRhdGVkIGZvciBnY2MzLjIgZXhwZXJpbWVudGFsLiBNYWpvciBjaGFuZ2VzIHRocm91Z2hvdXQuCgoyMDAyLTAzLTMxICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCSogTWFrZS1sYW5nLmluOiBDaGFuZ2VzIHNvIGJ1aWxkIGFuZCBjaGVjayB3b3JrIG1vcmUgcmVsaWFibHkKCjIwMDEtMDctMzAgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJKiByb290LnRleGk6IHJlbW92ZQoJKiB0cmVlbGFuZy50ZXhpOiB1cGRhdGVzIGJhc2VkIG9uIGZlZWRiYWNrCgoyMDAxLTA2LTExICBUaW0gSm9zbGluZyAgPHRlakBtZWxicGMub3JnLmF1PgoKCSogYWxsIChhbGwpIFJldmFtcCBjb2RlIHRvIGNvbmZvcm0gdG8gR0NDIGNvZGluZyBzdGFuZGFyZHMsIGZpeAoJdHlwb3MgaW4gdGV4aSBmaWxlcy4KCjIwMDEtMDUtMTEgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJQ3JlYXRlIHRoZSBuZXcgbGFuZ3VhZ2UuCg==