ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2FkYS50eHQgYi9ydW50aW1lL2RvYy9hZGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNjdhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy9hZGEudHh0CkBAIC0wLDAgKzEsNTE1IEBACisqYWRhLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBOb3YgMTIKKworCisJCSAgICBBREEgRklMRSBUWVBFIFBMVUctSU5TIFJFRkVSRU5DRSBNQU5VQUx+CisKK0FEQQkJCQkJCQkJICAgICAgKmFkYS52aW0qCisKKzEuICBTeW50YXggSGlnaGxpZ2h0aW5nCQkJICAgIHxmdC1hZGEtc3ludGF4fAorMi4gIFBsdWctaW4JCQkJICAgIHxmdC1hZGEtcGx1Z2lufAorMy4gIE9tbmkgQ29tcGxldGlvbgkJCSAgICB8ZnQtYWRhLW9tbml8CisgICAgMy4xIE9tbmkgQ29tcGxldGlvbiB3aXRoICJnbmF0IHhyZWYiCXxnbmF0LXhyZWZ8CisgICAgMy4yIE9tbmkgQ29tcGxldGlvbiB3aXRoICJjdGFncyIJCXxhZGEtY3RhZ3N8Cis0LiAgQ29tcGlsZXIgU3VwcG9ydAkJCSAgICB8YWRhLWNvbXBpbGVyfAorICAgIDQuMSBHTkFUCQkJCQl8Y29tcGlsZXItZ25hdHwKKyAgICA0LjEgRGVjIEFkYQkJCQkJfGNvbXBpbGVyLWRlY2FkYXwKKzUuICBSZWZlcmVuY2VzCQkJCSAgICB8YWRhLXJlZmVyZW5jZXwKKyAgICA1LjEgT3B0aW9ucwkJCQkJfGZ0LWFkYS1vcHRpb25zfAorICAgIDUuMiBGdW5jdGlvbnMJCQkJfGZ0LWFkYS1mdW5jdGlvbnN8CisgICAgNS4zIENvbW1hbmRzCQkJCXxmdC1hZGEtY29tbWFuZHN8CisgICAgNS40IFZhcmlhYmxlcwkJCQl8ZnQtYWRhLXZhcmlhYmxlc3wKKyAgICA1LjUgQ29uc3RhbnRzCQkJCXxmdC1hZGEtY29uc3RhbnRzfAorOC4gIEV4dHJhIFBsdWctaW5zCQkJICAgIHxhZGEtZXh0cmEtcGx1Z2luc3wKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisxLiBTeW50YXggSGlnaGxpZ2h0aW5nIH4KKwkJCQkJCQkgICAgICAgKmZ0LWFkYS1zeW50YXgqCisKK1RoaXMgbW9kZSBpcyBkZXNpZ25lZCBmb3IgdGhlIDIwMDUgZWRpdGlvbiBvZiBBZGEgKCJBZGEgMjAwNSIpLCB3aGljaCBpbmNsdWRlcworc3VwcG9ydCBmb3Igb2JqZWN0ZWQtcHJvZ3JhbW1pbmcsIHByb3RlY3RlZCB0eXBlcywgYW5kIHNvIG9uLiAgSXQgaGFuZGxlcyBjb2RlCit3cml0dGVuIGZvciB0aGUgb3JpZ2luYWwgQWRhIGxhbmd1YWdlICgiQWRhODMiLCAiQWRhODciLCAiQWRhOTUiKSBhcyB3ZWxsLAordGhvdWdoIGNvZGUgd2hpY2ggdXNlcyBBZGEgMjAwNS1vbmx5IGtleXdvcmRzIHdpbGwgYmUgd3JvbmdseSBjb2xvcmVkIChzdWNoCitjb2RlIHNob3VsZCBiZSBmaXhlZCBhbnl3YXkpLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQWRhLCBzZWUKK2h0dHA6Ly93d3cuYWRhcG93ZXIuY29tLgorCitUaGUgQWRhIG1vZGUgaGFuZGxlcyBhIG51bWJlciBvZiBzaXR1YXRpb25zIGNsZWFubHkuCisKK0ZvciBleGFtcGxlLCBpdCBrbm93cyB0aGF0IHRoZSAiLSIgaW4gIi01IiBpcyBhIG51bWJlciwgYnV0IHRoZSBzYW1lIGNoYXJhY3RlcgoraW4gIkEtNSIgaXMgYW4gb3BlcmF0b3IuICBOb3JtYWxseSwgYSAid2l0aCIgb3IgInVzZSIgY2xhdXNlIHJlZmVyZW5jaW5nCithbm90aGVyIGNvbXBpbGF0aW9uIHVuaXQgaXMgY29sb3VyZWQgdGhlIHNhbWUgd2F5IGFzIEMncyAiI2luY2x1ZGUiIGlzIGNvbG91cmVkLgorSWYgeW91IGhhdmUgIkNvbmRpdGlvbmFsIiBvciAiUmVwZWF0IiBncm91cHMgY29sb3VyZWQgZGlmZmVyZW50bHksIHRoZW4gImVuZAoraWYiIGFuZCAiZW5kIGxvb3AiIHdpbGwgYmUgY29sb3VyZWQgYXMgcGFydCBvZiB0aG9zZSByZXNwZWN0aXZlIGdyb3Vwcy4KKworWW91IGNhbiBzZXQgdGhlc2UgdG8gZGlmZmVyZW50IGNvbG91cnMgdXNpbmcgdmltJ3MgImhpZ2hsaWdodCIgY29tbWFuZCAoZS5nLiwKK3RvIGNoYW5nZSBob3cgbG9vcHMgYXJlIGRpc3BsYXllZCwgZW50ZXIgdGhlIGNvbW1hbmQgIjpoaSBSZXBlYXQiIGZvbGxvd2VkIGJ5Cit0aGUgY29sb3VyIHNwZWNpZmljYXRpb247IG9uIHNpbXBsZSB0ZXJtaW5hbHMgdGhlIGNvbG91ciBzcGVjaWZpY2F0aW9uCitjdGVybWZnPVdoaXRlIG9mdGVuIHNob3dzIHdlbGwpLgorCitUaGVyZSBhcmUgc2V2ZXJhbCBvcHRpb25zIHlvdSBjYW4gc2VsZWN0IGluIHRoaXMgQWRhIG1vZGUuIFNlZXxmdC1hZGEtb3B0aW9uc3wKK2ZvciBhIGNvbXBsZXRlIGxpc3QuCisKK1RvIGVuYWJsZSB0aGVtLCBhc3NpZ24gYSB2YWx1ZSB0byB0aGUgb3B0aW9uLiAgRm9yIGV4YW1wbGUsIHRvIHR1cm4gb25lIG9uOgorID4KKyAgICA+IGxldCBnOmFkYV9zdGFuZGFyZF90eXBlcyA9IDEKKz4KK1RvIGRpc2FibGUgdGhlbSB1c2UgIjp1bmxldCIuICBFeGFtcGxlOgorPgorICAgID4gdW5sZXQgZzphZGFfc3RhbmRhcmRfdHlwZXMKKworWW91IGNhbiBqdXN0IHVzZSAiOiIgYW5kIHR5cGUgdGhlc2UgaW50byB0aGUgY29tbWFuZCBsaW5lIHRvIHNldCB0aGVzZQordGVtcG9yYXJpbHkgYmVmb3JlIGxvYWRpbmcgYW4gQWRhIGZpbGUuICBZb3UgY2FuIG1ha2UgdGhlc2Ugb3B0aW9uIHNldHRpbmdzCitwZXJtYW5lbnQgYnkgYWRkaW5nIHRoZSAibGV0IiBjb21tYW5kKHMpLCB3aXRob3V0IGEgY29sb24sIHRvIHlvdXIgIn4vLnZpbXJjIgorZmlsZS4KKworRXZlbiBvbiBhIHNsb3cgKDkwTWh6KSBQQyB0aGlzIG1vZGUgd29ya3MgcXVpY2tseSwgYnV0IGlmIHlvdSBmaW5kIHRoZQorcGVyZm9ybWFuY2UgdW5hY2NlcHRhYmxlLCB0dXJuIG9uIHxnOmFkYV93aXRodXNlX29yZGluYXJ5fC4KKworU3ludGF4IGZvbGRpbmcgaW5zdHJ1Y3Rpb25zICh8Zm9sZC1zeW50YXh8KSBhcmUgYWRkZWQgd2hlbiB8ZzphZGFfZm9sZGluZ3wgaXMKK3NldC4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisyLiBGaWxlIHR5cGUgUGx1Zy1pbiB+CisJCQkJCSAgICAgICAqZnQtYWRhLWluZGVudCogKmZ0LWFkYS1wbHVnaW4qCisKK1RoZSBBZGEgcGx1Zy1pbiBwcm92aWRlcyBzdXBwb3J0IGZvcjoKKworIC0gYXV0byBpbmRlbnRpbmcJKHxpbmRlbnQudHh0fCkKKyAtIGluc2VydCBjb21wbGV0aW9uCSh8aV9DVFJMLU58KQorIC0gdXNlciBjb21wbGV0aW9uCSh8aV9DVFJMLVhfQ1RSTC1VfCkKKyAtIHRhZyBzZWFyY2hlcwkJKHx0YWdzcmNoLnR4dHwpCisgLSBRdWljayBGaXgJCSh8cXVpY2tmaXgudHh0fCkKKyAtIGJhY2tzcGFjZSBoYW5kbGluZwkofCdiYWNrc3BhY2UnfCkKKyAtIGNvbW1lbnQgaGFuZGxpbmcJKHwnY29tbWVudHMnfCwgfCdjb21tZW50c3RyaW5nJ3wpCisKK1RoZSBwbHVnLWluIG9ubHkgYWN0aXZhdGVzIHRoZSBmZWF0dXJlcyBvZiB0aGUgQWRhIG1vZGUgd2hlbmV2ZXIgYW4gQWRhCitmaWxlcyBpcyBvcGVuZWQgYW5kIGFkZCBhZGRzIEFkYSByZWxhdGVkIGVudHJpZXMgdG8gdGhlIG1haW4gYW5kIHBvcC11cCBtZW51LgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzMuIE9tbmkgQ29tcGxldGlvbiB+CisJCQkJCQkJCSAqZnQtYWRhLW9tbmkqCisKK1RoZSBBZGEgb21uaS1jb21wbGV0aW9ucyAofGlfQ1RSTC1YX0NUUkwtT3wpIHVzZXMgdGFncyBkYXRhYmFzZSBjcmVhdGVkIGVpdGhlcgorYnkgImduYXQgeHJlZiAtdiIgb3IgdGhlICJleHViZXJhbnQgQ3RhZ3MgKGh0dHA6Ly9jdGFncy5zb3VyY2Vmb3JnZS5uZXQpLiAgVGhlCitjb21wbGV0ZSBmdW5jdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IHdoaWNoIHRvb2wgd2FzIHVzZWQgdG8gY3JlYXRlIHRoZQordGFncyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzMuMSBPbW5pIENvbXBsZXRpb24gd2l0aCAiZ25hdCB4cmVmIiB+CisJCQkJCQkJCSAgICpnbmF0LXhyZWYqCisKK0dOQVQgWFJFRiB1c2VzIHRoZSBjb21waWxlciBpbnRlcm5hbCBpbmZvcm1hdGlvbnMgKGFsaS1maWxlcykgdG8gcHJvZHVjZSB0aGUKK3RhZ3MgZmlsZS4gVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0byBiZSAxMDAlIGNvcnJlY3QgYW5kIHRoZSBvcHRpb24gb2YgZGVlcAorbmVzdGVkIGFuYWx5c2lzLiBIb3dldmVyIHRoZSBjb2RlIG11c3QgY29tcGlsZSwgdGhlIGdlbmVyYXRvciBpcyBxdWl0ZQorc2xvdyBhbmQgdGhlIGNyZWF0ZWQgdGFncyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGJhc2ljIEN0YWdzIGluZm9ybWF0aW9ucyBmb3IKK2VhY2ggZW50cnkgLSBub3QgZW5vdWdoIGZvciBzb21lIG9mIHRoZSBtb3JlIGFkdmFuY2VkIFZpbSBjb2RlIGJyb3dzZXIKK3BsdWctaW5zLgorCitOT1RFOiAiZ25hdCB4cmVmIC12IiBpcyB2ZXJ5IHRyaWNreSB0byB1c2UgYXMgaXQgaGFzIGFsbW9zdCBubyBkaWFnbm9zdGljCisgICAgICAgb3V0cHV0IC0gSWYgbm90aGluZyBpcyBwcmludGVkIHRoZW4gdXN1YWxseSB0aGUgcGFyYW1ldGVycyBhcmUgd3JvbmcuCisgICAgICAgSGVyZSBzb21lIGltcG9ydGFudCB0aXBzOgorCisxKSAgWW91IG5lZWQgdG8gY29tcGlsZSB5b3VyIGNvZGUgZmlyc3QgYW5kIHVzZSB0aGUgIi1hTyIgb3B0aW9uIHRvIHBvaW50IHRvCisgICAgeW91ciAuYWxpIGZpbGVzLgorMikgICJnbmF0IHhyZWYgLXYgLi4vSW5jbHVkZS9hZGFjbC5hZHMiIHdvbid0IHdvcmsgLSB1c2UgIHRoZSAiZ25hdCB4cmVmIC12CisgICAgLWFJLi4vSW5jbHVkZSBhZGFjbC5hZHMiIGluc3RlYWQuCiszKSAgImduYXQgeHJlZiAtdiAtYUkuLi9JbmNsdWRlICouYWQ/IiB3b24ndCB3b3JrIC0gdXNlICJjZCAuLi9JbmNsdWRlIiBhbmQKKyAgICB0aGVuICJnbmF0IHhyZWYgLXYgKi5hZD8iCis0KSAgUHJvamVjdCBtYW5hZ2VyIHN1cHBvcnQgaXMgY29tcGxldGVseSBicm9rZW4gLSBkb24ndCBldmVuIHRyeSAiZ25hdCB4cmVmCisgICAgLVBhZGFjbC5ncHIiLgorNSkgIFZJTSBpcyBmYXN0ZXIgd2hlbiB0aGUgdGFncyBmaWxlIGlzIHNvcnRlZCAtIHVzZSAic29ydCAtLXVuaXF1ZQorICAgIC0taWdub3JlLWNhc2UgLS1vdXRwdXQ9dGFncyB0YWdzIiAuCis2KSAgUmVtZW1iZXIgdG8gaW5zZXJ0ICIhX1RBR19GSUxFX1NPUlRFRCAyICVzb3J0IHVpIiBhcyBmaXJzdCBsaW5lIHRvIG1hcmsKKyAgICB0aGUgZmlsZSBhc3NvcnRlZC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiszLjIgT21uaSBDb21wbGV0aW9uIHdpdGggImN0YWdzIn4KKwkJCQkJCQkJICAgKmFkYS1jdGFncyoKKworRXh1YmVyYW50IEN0YWdzIHVzZXMgaXQncyBvd24gbXVsdGktbGFuZ3VhZ2UgY29kZSBwYXJzZXIuIFRoZSBwYXJzZXIgaXMgcXVpdGUKK2Zhc3QsIHByb2R1Y2VzIGEgbG90IG9mIGV4dHJhIGluZm9ybWF0aW9ucyAoaGVuY2UgdGhlIG5hbWUgIkV4dWJlcmFudCBDdGFncyIpCithbmQgY2FuIHJ1biBvbiBmaWxlcyB3aGljaCBjdXJyZW50bHkgZG8gbm90IGNvbXBpbGUuCisKK1RoZXJlIGFyZSBhbHNvIGxvdHMgb2Ygb3RoZXIgVmltLXRvb2xzIHdoaWNoIHVzZSBleHViZXJhbnQgQ3RhZ3MuCisKK1lvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBhIHZlcnNpb24gb2YgdGhlIEV4dWJlcmFudCBDdGFncyB3aGljaCBoYXMgQWRhCitzdXBwb3J0IHBhdGNoZWQgaW4uIFN1Y2ggYSB2ZXJzaW9uIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBHTlUgQWRhIFByb2plY3QKKyhodHRwOi8vZ251YWRhLnNvdXJjZWZvcmdlLm5ldCkuCisKK1RoZSBBZGEgcGFyc2VyIGZvciBFeHViZXJhbnQgQ3RhZ3MgaXMgZmFpcmx5IG5ldyAtIGRvbid0IGV4cGVjdCBjb21wbGV0ZQorc3VwcG9ydCB5ZXQuCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorNC4gIENvbXBpbGVyIFN1cHBvcnQgfgorCQkJCQkJCQkqYWRhLWNvbXBpbGVyKgorCitUaGUgQWRhIG1vZGUgc3VwcG9ydHMgbW9yZSB0aGVuIG9uZSBBZGEgY29tcGlsZXIgYW5kIHdpbGwgYXV0b21hdGljYWxseSBsb2FkIHRoZQorY29tcGlsZXIgc2V0IGlufGc6YWRhX2RlZmF1bHRfY29tcGlsZXJ8d2hlbmV2ZXIgYW4gQWRhIHNvdXJjZSBpcyBvcGVuZWQuIFRoZQorcHJvdmlkZWQgY29tcGlsZXIgcGx1Zy1pbnMgYXJlIHNwbGl0IGludG8gdGhlIGFjdHVhbCBjb21waWxlciBwbHVnLWluIGFuZCBhCitjb2xsZWN0aW9uIG9mIHN1cHBvcnQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuIFRoaXMgYWxsb3dzIHRoZSBlYXN5CitkZXZlbG9wbWVudCBvZiBzcGVjaWFsaXplZCBjb21waWxlciBwbHVnLWlucyBmaW5lIHR1bmVkIHRvIHlvdXIgZGV2ZWxvcG1lbnQKK2Vudmlyb25tZW50LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzQuMSBHTkFUIH4KKwkJCQkJCQkgICAgICAgKmNvbXBpbGVyLWduYXQqCisKK0dOQVQgaXMgdGhlIG9ubHkgZnJlZSAoYmVlciBhbmQgc3BlZWNoKSBBZGEgY29tcGlsZXIgYXZhaWxhYmxlLiBUaGVyZSBhcmUKK3NldmVyYWwgdmVyc2lvbiBhdmFpbGFibGUgd2hpY2ggZGlmZmVyZW50aWF0ZSBpbiB0aGUgbGljZW5jZSB0ZXJtcyB1c2VkLgorCitUaGUgR05BVCBjb21waWxlciBwbHVnLWluIHdpbGwgcGVyZm9ybSBhIGNvbXBpbGUgb24gcHJlc3NpbmcgPEY3PiBhbmQgdGhlbgoraW1tZWRpYXRlbHkgc2hvd3MgdGhlIHJlc3VsdC4gWW91IGNhbiBzZXQgdGhlIHByb2plY3QgZmlsZSB0byBiZSB1c2VkIGJ5CitzZXR0aW5nOgorID4KKyA+IGNhbGwgZzpnbmF0LlNldF9Qcm9qZWN0X0ZpbGUgKCdteV9wcm9qZWN0LmdwcicpCisKK1NldHRpbmcgYSBwcm9qZWN0IGZpbGUgd2lsbCBhbHNvIGNyZWF0ZSBhIFZpbSBzZXNzaW9uICh8dmlld3Mtc2Vzc2lvbnN8KSBzbyAtCitsaWtlIHdpdGggdGhlIEdQUyAtIG9wZW5lZCBmaWxlcywgd2luZG93IHBvc2l0aW9ucyBldGMuIHdpbGwgcmVtZW1iZXJlZAorc2VwYXJhdGVseSBmb3IgYWxsIHByb2plY3RzLgorCisJCQkJCQkJCSpnbmF0X21lbWJlcnMqCitHTkFUIE9CSkVDVCB+CisKKwkJCQkJCQkgICAgICAgKmc6Z25hdC5NYWtlKCkqCitnOmduYXQuTWFrZSgpCisJCUNhbGxzfGc6Z25hdC5NYWtlX0NvbW1hbmR8YW5kIGRpc3BsYXlzIHRoZSByZXN1bHQgaW5zaWRlIGEKKyAgICAgICAgICAgICAgIHxxdWlja2ZpeHwgd2luZG93LgorCisJCQkJCQkJICAgICAqZzpnbmF0LlByZXR0eSgpKgorZzpnbmF0LlByZXR0eSgpCisJCUNhbGxzfGc6Z25hdC5QcmV0dHlfQ29tbWFuZHwKKworCQkJCQkJCSAgICAgICAqZzpnbmF0LkZpbmQoKSoKK2c6Z25hdC5GaW5kKCkKKwkJQ2FsbHN8ZzpnbmF0LkZpbmRfQ29tbWFuZHwKKworCQkJCQkJCSAgICAgICAqZzpnbmF0LlRhZ3MoKSoKK2c6Z25hdC5UYWdzKCkKKwkJQ2FsbHN8ZzpnbmF0LlRhZ3NfQ29tbWFuZHwKKworCQkJCQkJICAgKmc6Z25hdC5TZXRfUHJvamVjdF9GaWxlKCkqCitnOmduYXQuU2V0X1Byb2plY3RfRmlsZShbe2ZpbGV9XSkKKwkJU2V0IGduYXQgcHJvamVjdCBmaWxlIGFuZCBsb2FkIGFzc29jaWF0ZWQgc2Vzc2lvbi4gIEFuIG9wZW4KKwkJcHJvamVjdCB3aWxsIGJlIGNsb3NlZCBhbmQgdGhlIHNlc3Npb24gd3JpdHRlbi4gIElmIGNhbGxlZAorCQl3aXRob3V0IGZpbGUgbmFtZSB0aGUgZmlsZSBzZWxlY3RvciBvcGVucyBmb3Igc2VsZWN0aW9uIG9mIGEKKwkJcHJvamVjdCBmaWxlLiBJZiBjYWxsZWQgd2l0aCBhbiBlbXB0eSBzdHJpbmcgdGhlbiB0aGUgcHJvamVjdAorCQlhbmQgYXNzb2NpYXRlZCBzZXNzaW9uIGFyZSBjbG9zZWQuCisKKwkJCQkJCQkgKmc6Z25hdC5Qcm9qZWN0X0ZpbGUqCitnOmduYXQuUHJvamVjdF9GaWxlCXN0cmluZworCQlDdXJyZW50IHByb2plY3QgZmlsZS4KKworCQkJCQkJCSAqZzpnbmF0Lk1ha2VfQ29tbWFuZCoKK2c6Z25hdC5NYWtlX0NvbW1hbmQJc3RyaW5nCisJCUV4dGVybmFsIGNvbW1hbmQgdXNlZCBmb3J8ZzpnbmF0Lk1ha2UoKXwgKHwnbWFrZXByZyd8KS4KKworCQkJCQkJICAgICAgICpnOmduYXQuUHJldHR5X1Byb2dyYW0qCitnOmduYXQuUHJldHR5X1Byb2dyYW0Jc3RyaW5nCisJCUV4dGVybmFsIGNvbW1hbmQgdXNlZCBmb3J8ZzpnbmF0LlByZXR0eSgpfAorCisJCQkJCQkJICpnOmduYXQuRmluZF9Qcm9ncmFtKgorZzpnbmF0LkZpbmRfUHJvZ3JhbQlzdHJpbmcKKwkJRXh0ZXJuYWwgY29tbWFuZCB1c2VkIGZvcnxnOmduYXQuRmluZCgpfAorCisJCQkJCQkJICpnOmduYXQuVGFnc19Db21tYW5kKgorZzpnbmF0LlRhZ3NfQ29tbWFuZAlzdHJpbmcKKwkJRXh0ZXJuYWwgY29tbWFuZCB1c2VkIGZvcnxnOmduYXQuVGFncygpfAorCisJCQkJCQkJICpnOmduYXQuRXJyb3JfRm9ybWF0KgorZzpnbmF0LkVycm9yX0Zvcm1hdAlzdHJpbmcKKwkJRXJyb3IgZm9ybWF0ICh8J2Vycm9yZm9ybWF0J3wpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNC4yIERlYyBBZGEgfgorCQkJCQkgICAgKmNvbXBpbGVyLWhwYWRhKiAqY29tcGlsZXItZGVjYWRhKgorCQkJCQkqY29tcGlsZXItdmF4YWRhKiAqY29tcGlsZXItY29tcGFxYWRhKgorCitEZWMgQWRhIChhbHNvIGtub3duIGJ5IC0gaW4gY2hyb25vbG9naWNhbCBvcmRlciAtIFZBWCBBZGEsIERlYyBBZGEsIENvbXBhcSBBZGEKK2FuZCBIUCBBZGEpIGlzIGEgZmFpcmx5IGRhdGVkIEFkYSA4MyBjb21waWxlci4gU3VwcG9ydCBpcyBiYXNpYzogPEY3PiB3aWxsCitjb21waWxlIHRoZSBjdXJyZW50IHVuaXQuCisKK1RoZSBEZWMgQWRhIGNvbXBpbGVyIGV4cGVjdHMgdGhlIHBhY2thZ2UgbmFtZSBhbmQgbm90IHRoZSBmaWxlIG5hbWUgdG8gYmUKK3Bhc3NlZCBhIHBhcmFtZXRlci4gVGhlIGNvbXBpbGVyIHBsdWctaW4gc3VwcG9ydHMgdGhlIHVzdWFsIGZpbGUgbmFtZQorY29udmVudGlvbiB0byBjb252ZXJ0IHRoZSBmaWxlIGludG8gYSB1bml0IG5hbWUuIEZvciBzZXBhcmF0ZXMgYm90aCAnLScgYW5kCisnX18nIGFyZSBhbGxvd2VkLgorCisJCQkJCQkJICAgICAgKmRlY2FkYV9tZW1iZXJzKgorREVDIEFEQSBPQkpFQ1QgfgorCisJCQkJCQkJICAgICAqZzpkZWNhZGEuTWFrZSgpKgorZzpkZWNhZGEuTWFrZSgpCQlmdW5jdGlvbgorCQlDYWxsc3xnOmRlY2FkYS5NYWtlX0NvbW1hbmR8YW5kIGRpc3BsYXlzIHRoZSByZXN1bHQgaW5zaWRlIGEKKyAgICAgICAgICAgICAgIHxxdWlja2ZpeHwgd2luZG93LgorCisJCQkJCQkJKmc6ZGVjYWRhLlVuaXRfTmFtZSgpKgorZzpkZWNhZGEuVW5pdF9OYW1lKCkJZnVuY3Rpb24KKwkJR2V0IHRoZSBVbml0IG5hbWUgZm9yIHRoZSBjdXJyZW50IGZpbGUuCisKKwkJCQkJCSAgICAgICAqZzpkZWNhZGEuTWFrZV9Db21tYW5kKgorZzpkZWNhZGEuTWFrZV9Db21tYW5kCXN0cmluZworCQlFeHRlcm5hbCBjb21tYW5kIHVzZWQgZm9yfGc6ZGVjYWRhdC5NYWtlKCl8ICh8J21ha2VwcmcnfCkuCisKKwkJCQkJCSAgICAgICAqZzpkZWNhZGEuRXJyb3JfRm9ybWF0KgorZzpkZWNhZGEuRXJyb3JfRm9ybWF0fAlzdHJpbmcKKwkJRXJyb3IgZm9ybWF0ICh8J2Vycm9yZm9ybWF0J3wpLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzUuIFJlZmVyZW5jZXMgfgorCQkJCQkJCSAgICAgICAqYWRhLXJlZmVyZW5jZSoKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis1LjEgT3B0aW9ucyB+CisJCQkJCQkJICAgICAgKmZ0LWFkYS1vcHRpb25zKgorCisJCQkJCQkJKmc6YWRhX3N0YW5kYXJkX3R5cGVzKgorZzphZGFfc3RhbmRhcmRfdHlwZXMJYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJSGlnaGxpZ2h0IHR5cGVzIGluIHBhY2thZ2UgU3RhbmRhcmQgKGUuZy4sICJGbG9hdCIpCisKKwkJCQkJCQkgICpnOmFkYV9zcGFjZV9lcnJvcnMqCisJCQkJCQkgICpnOmFkYV9ub190cmFpbF9zcGFjZV9lcnJvcioKKwkJCQkJCSAgICAqZzphZGFfbm9fdGFiX3NwYWNlX2Vycm9yKgorCQkJCQkJCSAqZzphZGFfYWxsX3RhYl91c2FnZSoKK2c6YWRhX3NwYWNlX2Vycm9ycwkgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJSGlnaGxpZ2h0IGV4dHJhbmVvdXMgZXJyb3JzIGluIHNwYWNlcyAuLi4KKwkJZzphZGFfbm9fdHJhaWxfc3BhY2VfZXJyb3IKKwkJICAgIC0gYnV0IGlnbm9yZSB0cmFpbGluZyBzcGFjZXMgYXQgdGhlIGVuZCBvZiBhIGxpbmUKKwkJZzphZGFfbm9fdGFiX3NwYWNlX2Vycm9yCisJCSAgICAtIGJ1dCBpZ25vcmUgdGFicyBhZnRlciBzcGFjZXMKKwkJZzphZGFfYWxsX3RhYl91c2FnZQorCQkgICAgLSBoaWdobGlnaHQgYWxsIHRhYiB1c2UKKworCQkJCQkJCSAgICpnOmFkYV9saW5lX2Vycm9ycyoKK2c6YWRhX2xpbmVfZXJyb3JzCSAgYm9vbCAodHJ1ZSB3aGVuIGV4aXN0cykKKwkJSGlnaGxpZ2h0IGxpbmVzIHdoaWNoIGFyZSB0byBsb25nLiBOb3RlOiBUaGlzIGhpZ2hsaWdodGluZworCQlvcHRpb24gaXMgcXVpdGUgQ1BVIGludGVuc2l2ZS4KKworCQkJCQkJCSAqZzphZGFfcmFpbmJvd19jb2xvcioKK2c6YWRhX3JhaW5ib3dfY29sb3IJICBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQlVc2UgcmFpbmJvdyBjb2xvdXJzIGZvciAnKCcgYW5kICcpJy4gWW91IG5lZWQgdGhlCisJCXJhaW5ib3dfcGFyZW50aGVzaXMgZm9yIHRoaXMgdG8gd29yaworCisJCQkJCQkJICAgICAgICpnOmFkYV9mb2xkaW5nKgorZzphZGFfZm9sZGluZwkJICBzZXQgKCdzaWdwZnQnKQorCQlVc2UgZm9sZGluZyBmb3IgQWRhIHNvdXJjZXMuCisJCSAgICAncyc6ICAgIGFjdGl2YXRlIHN5bnRheCBmb2xkaW5nIG9uIGxvYWQKKwkJCSdwJzogICAgZm9sZCBwYWNrYWdlcworCQkJJ2YnOiAgICBmb2xkIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworCQkJJ3QnOiAgICBmb2xkIHR5cGVzCisJCQknYyc6ICAgIGZvbGQgY29uZGl0aW9uYWxzCisJCSAgICAnZyc6ICAgIGFjdGl2YXRlIGduYXQgcHJldHR5IHByaW50IGZvbGRpbmcgb24gbG9hZAorCQkJJ2knOiAgICBsb25lICdpcycgZm9sZGVkIHdpdGggbGluZSBhYm92ZQorCQkJJ2InOglsb25lICdiZWdpbicgZm9sZGVkIHdpdGggbGluZSBhYm92ZQorCQkJJ3AnOglsb25lICdwcml2YXRlJyBmb2xkZWQgd2l0aCBsaW5lIGFib3ZlCisJCQkneCc6CWxvbmUgJ2V4Y2VwdGlvbicgZm9sZGVkIHdpdGggbGluZSBhYm92ZQorCQkgICAgJ2knOiAgICBhY3RpdmF0ZSBpbmRlbnQgZm9sZGluZyBvbiBsb2FkCisKKwkJTm90ZTogU3ludGF4IGZvbGRpbmcgaXMgaW4gYW4gZWFybHkgKHVudXNlYWJsZSkgc3RhZ2UgYW5kCisJCSAgICAgIGluZGVudCBvciBnbmF0IHByZXR0eSBmb2xkaW5nIGlzIHN1Z2dlc3RlZC4KKworCQlGb3IgZ25hdCBwcmV0dHkgZm9sZGluZyB0byB3b3JrIHRoZSBmb2xsb3dpbmcgc2V0dGluZ3MgYXJlCisJCXN1Z2dlc3RlZDogLWNsMyAtTTc5IC1jMiAtYzMgLWM0IC1BMSAtQTIgLUEzIC1BNCAtQTUKKworCQlGb3IgaW5kZW50IGZvbGRpbmcgdG8gd29yayB0aGUgZm9sbG93aW5nIHNldHRpbmdzIGFyZQorCQlzdWdnZXN0ZWQ6IHNoaWZ0d2lkdGg9MyBzb2Z0dGFic3RvcD0zCisKKwkJCQkJCQkJKmc6YWRhX2FiYnJldioKK2c6YWRhX2FiYnJldgkJICBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQlBZGQgc29tZSBhYmJyZXZpYXRpb25zLiBUaGlzIGZlYXR1cmUgbW9yZSBvciBsZXNzIHN1cGVyc2VkZWQKKwkJYnkgdGhlIHZhcmlvdXMgY29tcGxldGlvbiBtZXRob2RzLgorCisJCQkJCQkgICAgICAqZzphZGFfd2l0aHVzZV9vcmRpbmFyeSoKK2c6YWRhX3dpdGh1c2Vfb3JkaW5hcnkJICBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQlTaG93ICJ3aXRoIiBhbmQgInVzZSIgYXMgb3JkaW5hcnkga2V5d29yZHMgKHdoZW4gdXNlZCB0bworCQlyZWZlcmVuY2Ugb3RoZXIgY29tcGlsYXRpb24gdW5pdHMgdGhleSdyZSBub3JtYWxseSBoaWdobGlnaHRlZAorCQlzcGVjaWFsbHkpLgorCisJCQkJCQkJICpnOmFkYV9iZWdpbl9wcmVwcm9jKgorZzphZGFfYmVnaW5fcHJlcHJvYwkgIGJvb2wgKHRydWUgd2hlbiBleGlzdHMpCisJCVNob3cgYWxsIGJlZ2luLWxpa2Uga2V5d29yZHMgdXNpbmcgdGhlIGNvbG91cmluZyBvZiBDCisJCXByZXByb2Nlc3NvciBjb21tYW5kcy4KKworCQkJCQkJICAgICpnOmFkYV9vbW5pX3dpdGhfa2V5d29yZHMqCitnOmFkYV9vbW5pX3dpdGhfa2V5d29yZHMKKwkJQWRkIEtleXdvcmRzLCBQcmFnbWFzLCBBdHRyaWJ1dGVzIHRvIG9tbmktY29tcGxldGlvbnMKKwkJKHxjb21wbC1vbW5pfCkuIE5vdGU6IFlvdSBjYW4gYWx3YXlzIGNvbXBsZXRlIHRoZW4gd2l0aCB1c2VyCisJCWNvbXBsZXRpb24gKHxpX0NUUkwtWF9DVFJMLVV8KS4KKworCQkJCQkJICAgICAgKmc6YWRhX2V4dGVuZGVkX3RhZ2dpbmcqCitnOmFkYV9leHRlbmRlZF90YWdnaW5nCSAgZW51bSAoJ2p1bXAnLCAnbGlzdCcpCisJCXVzZSBleHRlbmRlZCB0YWdnaW5nLCB0d28gb3B0aW9ucyBhcmUgYXZhaWxhYmxlCisJCSAgICAnanVtcCc6IHVzZSB0anVtcCB0byBqdW1wLgorCQkgICAgJ2xpc3QnOiBhZGQgdGFncyBxdWljayBmaXggbGlzdC4KKwkJTm9ybWFsIHRhZ2dpbmcgZG9lcyBub3Qgc3VwcG9ydCBmdW5jdGlvbiBvciBvcGVyYXRvcgorCQlvdmVybG9hZGluZyBhcyB0aGVzZSBmZWF0dXJlcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBDIGFuZAorCQl0YWdnaW5nIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgQy4KKworCQkJCQkJICAgKmc6YWRhX2V4dGVuZGVkX2NvbXBsZXRpb24qCitnOmFkYV9leHRlbmRlZF9jb21wbGV0aW9uCisJCVVzZXMgZXh0ZW5kZWQgY29tcGxldGlvbiBmb3IgPEMtTj4gYW5kIDxDLVI+IGNvbXBsZXRpb25zCisJCSh8aV9DVFJMLU58KS4gSW4gdGhpcyBtb2RlIHRoZSAnLicgaXMgdXNlZCBhcyBwYXJ0IG9mIHRoZQorCQlpZGVudGlmaWVyIHNvIHRoYXQgJ09iamVjdC5NZXRob2QnIG9yICdQYWNrYWdlLlByb2NlZHVyZScgYXJlCisJCWNvbXBsZXRlZCB0b2dldGhlci4KKworCQkJCQkJICAgICAgICpnOmFkYV9nbmF0X2V4dGVuc2lvbnMqCitnOmFkYV9nbmF0X2V4dGVuc2lvbnMJICBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQkgU3VwcG9ydCBHTkFUIGV4dGVuc2lvbnMuCisKKwkJCQkJICAgICAgICpnOmFkYV93aXRoX2duYXRfcHJvamVjdF9maWxlcyoKK2c6YWRhX3dpdGhfZ25hdF9wcm9qZWN0X2ZpbGVzCSBib29sICh0cnVlIHdoZW4gZXhpc3RzKQorCQkgQWRkIGduYXQgcHJvamVjdCBmaWxlIGtleXdvcmRzIGFuZCBBdHRyaWJ1dGVzLgorCisJCQkJCQkgICAgICAqZzphZGFfZGVmYXVsdF9jb21waWxlcioKK2c6YWRhX2RlZmF1bHRfY29tcGlsZXIJICBzdHJpbmcKKwkJc2V0IGRlZmF1bHQgY29tcGlsZXIuIEN1cnJlbnRseSBzdXBwb3J0ZWQgaXMgJ2duYXQnIGFuZAorCQknZGVjYWRhJy4KKworQW4gImV4aXN0cyIgdHlwZSBpcyBhIGJvb2xlYW4gaXMgY29uc2lkZXJlZCB0cnVlIHdoZW4gdGhlIHZhcmlhYmxlIGlzIGRlZmluZWQKK2FuZCBmYWxzZSB3aGVuIHRoZSB2YXJpYWJsZSBpcyB1bmRlZmluZWQuIFRoZSB2YWx1ZSB3aGljaCB0aGUgdmFyaWFibGUgaXMKK3NldCBtYWtlcyBubyBkaWZmZXJlbmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzUuMyBDb21tYW5kcyB+CisJCQkJCQkJICAgICAqZnQtYWRhLWNvbW1hbmRzKgorCis6QWRhUmFpbmJvdwkJCQkJCQkgKjpBZGFSYWluYm93KgorCQlUb2dnbGVzIHJhaW5ib3cgY29sb3VyICh8ZzphZGFfcmFpbmJvd19jb2xvcnwpIG1vZGUgZm9yCisJCScoJyBhbmQgJyknCisKKzpBZGFMaW5lcwkJCQkJCQkgICAqOkFkYUxpbmVzKgorCQlUb2dnbGVzIGxpbmUgZXJyb3IgKHxnOmFkYV9saW5lX2Vycm9yc3wpIGRpc3BsYXkKKworOkFkYVNwYWNlcwkJCQkJCQkgICo6QWRhU3BhY2VzKgorCQlUb2dnbGVzIHNwYWNlIGVycm9yICh8ZzphZGFfc3BhY2VfZXJyb3JzfCkgZGlzcGxheS4KKworOkFkYVRhZ0RpcgkJCQkJCQkgICo6QWRhVGFnRGlyKgorCQlDcmVhdGVzIHRhZ3MgZmlsZSBmb3IgdGhlIGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBmaWxlLgorCis6QWRhVGFnRmlsZQkJCQkJCQkgKjpBZGFUYWdGaWxlKgorCQlDcmVhdGVzIHRhZ3MgZmlsZSBmb3IgdGhlIGN1cnJlbnQgZmlsZS4KKworOkFkYVR5cGVzCQkJCQkJCSAgICo6QWRhVHlwZXMqCisJCVRvZ2dsZXMgc3RhbmRhcmQgdHlwZXMgKHxnOmFkYV9zdGFuZGFyZF90eXBlc3wpIGNvbG91ci4KKworOkduYXRGaW5kCQkJCQkJCSAgICo6R25hdEZpbmQqCisJCUNhbGxzIHxnOmduYXQuRmluZCgpfAorCis6R25hdFByZXR0eQkJCQkJCQkgKjpHbmF0UHJldHR5KgorCQlDYWxscyB8ZzpnbmF0LlByZXR0eSgpfAorCis6R25hdFRhZ3MJCQkJCQkJICAgKjpHbmF0VGFncyoKKwkJQ2FsbHMgfGc6Z25hdC5UYWdzKCl8CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNS4zIFZhcmlhYmxlcyB+CisJCQkJCQkJICAgICpmdC1hZGEtdmFyaWFibGVzKgorCisJCQkJCQkJCSAgICAgICpnOmduYXQqCitnOmduYXQJCQkgICAgb2JqZWN0CisJCUNvbnRyb2wgb2JqZWN0IHdoaWNoIG1hbmFnZXMgR05BVCBjb21waWxlcy4gIFRoZSBvYmplY3QKKwkJaXMgY3JlYXRlZCB3aGVuIHRoZSBmaXJzdCBBZGEgc291cmNlIGNvZGUgaXMgbG9hZGVkIHByb3ZpZGVkCisJCXRoYXQgfGc6YWRhX2RlZmF1bHRfY29tcGlsZXJ8aXMgc2V0IHRvICdnbmF0Jy4gU2VlfGduYXRfbWVtYmVyc3wKKwkJZm9yIGRldGFpbHMuCisKKwkJCQkJCQkJICAgICpnOmRlY2FkYSoKK2c6ZGVjYWRhCQkgICAgICBvYmplY3QKKwkJQ29udHJvbCBvYmplY3Qgd2hpY2ggbWFuYWdlcyBEZWMgQWRhIGNvbXBpbGVzLglUaGUgb2JqZWN0CisJCWlzIGNyZWF0ZWQgd2hlbiB0aGUgZmlyc3QgQWRhIHNvdXJjZSBjb2RlIGlzIGxvYWRlZCBwcm92aWRlZAorCQl0aGF0IHxnOmFkYV9kZWZhdWx0X2NvbXBpbGVyfGlzIHNldCB0byAnZGVjYWRhJy4gU2VlCisJICAgICAgIHxkZWNhZGFfbWVtYmVyc3xmb3IgZGV0YWlscy4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis1LjQgQ29uc3RhbnRzIH4KKwkJCQkJCQkgICAgKmZ0LWFkYS1jb25zdGFudHMqCisKK0FsbCBjb25zdGFudHMgYXJlIGxvY2tlZC4gU2VlIHw6bG9ja3ZhcnwgZm9yIGRldGFpbHMuCisKKwkJCQkJCQkgICAgICpnOmFkYSNXb3JkUmVnZXgqCitnOmFkYSNXb3JkUmVnZXgJCXN0cmluZworCQlSZWd1bGFyIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvciBBZGEgd29yZHMKKworCQkJCQkJCSAgKmc6YWRhI0RvdFdvcmRSZWdleCoKK2c6YWRhI0RvdFdvcmRSZWdleAlzdHJpbmcKKwkJUmVndWxhciBleHByZXNzaW9uIHRvIHNlYXJjaCBmb3IgQWRhIHdvcmRzIHNlcGFyYXRlZCBieSBkb3RzLgorCisJCQkJCQkJICAgICAgICpnOmFkYSNDb21tZW50KgorZzphZGEjQ29tbWVudAkJc3RyaW5nCisJCVJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZWFyY2ggZm9yIEFkYSBjb21tZW50cworCisJCQkJCQkJICAgICAgKmc6YWRhI0tleXdvcmRzKgorZzphZGEjS2V5d29yZHMJCWxpc3Qgb2YgZGljdGlvbmFyaWVzCisJCUxpc3Qgb2Yga2V5d29yZHMsIGF0dHJpYnV0ZXMgZXRjLiBwcC4gaW4gdGhlIGZvcm1hdCB1c2VkIGJ5CisJCW9tbmkgY29tcGxldGlvbi4gU2VlIHxjb21wbGV0ZS1pdGVtc3wgZm9yIGRldGFpbHMuCisKKwkJCQkJCQkgICAqZzphZGEjQ3RhZ3NfS2luZHMqCitnOmFkYSNDdGFnc19LaW5kcwlkaWN0aW9uYXJ5IG9mIGxpc3RzCisJCURpY3Rpb25hcnkgb2YgdGhlIHZhcmlvdXMga2luZHMgb2YgaXRlbXMgd2hpY2ggdGhlIEFkYSBzdXBwb3J0CisJCWZvciBDdGFncyBnZW5lcmF0ZXMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNS4yIEZ1bmN0aW9ucyB+CisJCQkJCQkJICAgICpmdC1hZGEtZnVuY3Rpb25zKgorCithZGEjV29yZChbe2xpbmV9LCB7Y29sfV0pCQkJCQkgICphZGEjV29yZCgpKgorCQlSZXR1cm4gZnVsbCBuYW1lIG9mIEFkYSBlbnRpdHkgdW5kZXIgdGhlIGN1cnNvciAob3IgYXQgZ2l2ZW4KKwkJbGluZS9jb2x1bW4pLCBzdHJpcHBpbmcgd2hpdGUgc3BhY2UvbmV3bGluZXMgYXMgbmVjZXNzYXJ5LgorCithZGEjTGlzdF9UYWcoW3tsaW5lfSwge2NvbH1dKQkJCQkgICAgICAqYWRhI0xpc3R0YWdzKCkqCisJCUxpc3QgYWxsIG9jY3VycmVuY2VzIG9mIHRoZSBBZGEgZW50aXR5IHVuZGVyIHRoZSBjdXJzb3IgKG9yIGF0CisJCWdpdmVuIGxpbmUvY29sdW1uKSBpbnNpZGUgdGhlIHF1aWNrLWZpeCB3aW5kb3cKKworYWRhI0p1bXBfVGFnICh7aWRlbnR9LCB7bW9kZX0pCQkJCSAgICAgICphZGEjSnVtcF9UYWcoKSoKKwkJTGlzdCBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIEFkYSBlbnRpdHkgdW5kZXIgdGhlIGN1cnNvciAob3IgYXQKKwkJZ2l2ZW4gbGluZS9jb2x1bW4pIGluIHRoZSB0YWcganVtcCBsaXN0LiBNb2RlIGNhbiBlaXRoZXIgYmUKKwkJJ3RqdW1wJyBvciAnc3RqdW1wJy4KKworYWRhI0NyZWF0ZV9UYWdzICh7b3B0aW9ufSkJCQkJICAgKmFkYSNDcmVhdGVfVGFncygpKgorCQlDcmVhdGVzIHRhZyBmaWxlIHVzaW5nIEN0YWdzLiBUaGUgb3B0aW9uIGNhbiBlaXRoZXIgYmUgJ2ZpbGUnCisJCWZvciB0aGUgY3VycmVudCBmaWxlLCAnZGlyJyBmb3IgdGhlIGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudAorCQlmaWxlIG9yIGEgZmlsZSBuYW1lLgorCitnbmF0I0luc2VydF9UYWdzX0hlYWRlcigpCQkJICAgKmduYXQjSW5zZXJ0X1RhZ3NfSGVhZGVyKCkqCisJCUFkZHMgdGhlIHRhZyBmaWxlIGhlYWRlciAoIV9UQUdfKSBpbmZvcm1hdGlvbnMgdG8gdGhlIGN1cnJlbnQKKwkJZmlsZSB3aGljaCBhcmUgbWlzc2luZyBmcm9tIHRoZSBHTkFUIFhSRUYgb3V0cHV0LgorCithZGEjU3dpdGNoX1N5bnRheF9PcHRpb24gKHtvcHRpb259KQkJICAqYWRhI1N3aXRjaF9TeW50YXhfT3B0aW9uKCkqCisJCVRvZ2dsZXMgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgb24gb3Igb2ZmLiBVc2VkIGZvciB0aGUgQWRhIG1lbnUuCisKKwkJCQkJCQkJICAqZ25hdCNOZXcoKSoKK2duYXQjTmV3ICgpCisJCUNyZWF0ZSBhIG5ldyBnbmF0IG9iamVjdC4gU2VlIHxnOmduYXR8IGZvciBkZXRhaWxzLgorCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorOC4gRXh0cmEgUGx1Z2lucyB+CisJCQkJCQkJICAgKmFkYS1leHRyYS1wbHVnaW5zKgorCitZb3UgY2FuIG9wdGlvbmFsbHkgaW5zdGFsbCB0aGUgZm9sbG93aW5nIGV4dHJhIHBsdWctaW4uIFRoZXkgd29yayB3ZWxsIHdpdGggQWRhCithbmQgZW5oYW5jZSB0aGUgYWJpbGl0eSBvZiB0aGUgQWRhIG1vZGUuOgorCitiYWNrdXAudmltCisJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MTUzNworCUtlZXBzIGFzIG1hbnkgYmFja3VwcyBhcyB5b3UgbGlrZSBzbyB5b3UgZG9uJ3QgaGF2ZSB0by4KKworcmFpbmJvd19wYXJlbnRoc2lzLnZpbQorCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTE1NjEKKwlWZXJ5IGhlbHBmdWwgc2luY2UgQWRhIHVzZXMgb25seSAnKCcgYW5kICcpJy4KKworbmVyZF9jb21tZW50cy52aW0KKwlodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0xMjE4CisJRXhjZWxsZW50IGNvbW1lbnRpbmcgYW5kIHVuY29tbWVudGluZyBzdXBwb3J0IGZvciBhbG1vc3QgYW55CisJcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuCisKK21hdGNoaXQudmltCisJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MzkKKwknJScganVtcGluZyBmb3IgYW55IGxhbmd1YWdlLiBUaGUgbm9ybWFsICclJyBqdW1wIG9ubHkgd29ya3MgZm9yICd7fScKKwlzdHlsZSBsYW5ndWFnZXMuIFRoZSBBZGEgbW9kZSB3aWxsIHNldCB0aGUgbmVlZGVkIHNlYXJjaCBwYXR0ZXJzLgorCit0YWdsaXN0LnZpbQorCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTI3MworCVNvdXJjZSBjb2RlIGV4cGxvcmVyIHNpZGViYXIuIFRoZXJlIGlzIGEgcGF0Y2ggZm9yIEFkYSBhdmFpbGFibGUuCisKK1RoZSBHTlUgQWRhIFByb2plY3QgZGlzdHJpYnV0aW9uIChodHRwOi8vZ251YWRhLnNvdXJjZWZvcmdlLm5ldCkgb2YgVmltCitjb250YWlucyBhbGwgb2YgdGhlIGFib3ZlLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK3ZpbTogdGV4dHdpZHRoPTc4IG5vd3JhcCB0YWJzdG9wPTggc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQgbm9leHBhbmR0YWIKK3ZpbTogZmlsZXR5cGU9aGVscCBlbmNvZGluZz1sYXRpbjEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQgYi9ydW50aW1lL2RvYy9hcmFiaWMudHh0CmluZGV4IDJkZGEzY2EuLjk1Y2UyMGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQKKysrIGIvcnVudGltZS9kb2MvYXJhYmljLnR4dApAQCAtMSw0ICsxLDQgQEAKLSphcmFiaWMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqYXJhYmljLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBOYWRpbSBTaGFpa2xpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mYXJzaS50eHQgYi9ydW50aW1lL2RvYy9mYXJzaS50eHQKaW5kZXggZDY1NWNhZi4uZGQ1N2M1YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZmFyc2kudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmYXJzaS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqZmFyc2kudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgTW9ydGF6YSBHaGFzc2FiIFNoaXJhbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0IGIvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CmluZGV4IDU4YjMzYjguLjRiOGJmYWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dAorKysgYi9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKQEAgLTEsNCArMSw0IEBACi0qZmlsZXR5cGUudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOAorKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWFyIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00Myw2ICs0Myw4IEBACiAJQnVmTmV3RmlsZSBhbmQgQnVmUmVhZCBldmVudHMuICBJZiB0aGUgZmlsZSB0eXBlIGlzIG5vdCBmb3VuZCBieSB0aGUKIAluYW1lLCB0aGUgZmlsZSAkVklNUlVOVElNRS9zY3JpcHRzLnZpbSBpcyB1c2VkIHRvIGRldGVjdCBpdCBmcm9tIHRoZQogCWNvbnRlbnRzIG9mIHRoZSBmaWxlLgorCVdoZW4gdGhlIEdVSSBpcyBydW5uaW5nIG9yIHdpbGwgc3RhcnQgc29vbiwgdGhlIG1lbnUudmltIHNjcmlwdCBpcworCWFsc28gc291cmNlZC4gIFNlZSB8J2dvLU0nfCBhYm91dCBhdm9pZGluZyB0aGF0LgogCiBUbyBhZGQgeW91ciBvd24gZmlsZSB0eXBlcywgc2VlIHxuZXctZmlsZXR5cGV8IGJlbG93LiAgVG8gc2VhcmNoIGZvciBoZWxwIG9uIGEKIGZpbGV0eXBlIHByZXBlbmQgImZ0LSIgYW5kIG9wdGlvbmFsbHkgYXBwZW5kICItc3ludGF4IiwgIi1pbmRlbnQiIG9yCkBAIC0zMDQsMjQgKzMwNiwyOCBAQAogCiAJc2V0IHJ1bnRpbWVwYXRoCiAKLXByb2R1Y2VzIHRoaXMgb3V0cHV0OiA+Citwcm9kdWNlcyB0aGlzIG91dHB1dDoKIAotCXJ1bnRpbWVwYXRoPS9ldGMvdmltLH4vLnZpbSwvdXNyL2xvY2FsL3NoYXJlL3ZpbS92aW02MAorCXJ1bnRpbWVwYXRoPS9ldGMvdmltLH4vLnZpbSwvdXNyL2xvY2FsL3NoYXJlL3ZpbS92aW02MCB+CiAKLXRoZW4gVmltIHdpbGwgbG9hZCBhbGwgcGx1Z2lucyBpbiB0aGVzZSBkaXJlY3RvcmllczogPgordGhlbiBWaW0gd2lsbCBsb2FkIGFsbCBwbHVnaW5zIGluIHRoZXNlIGRpcmVjdG9yaWVzIGFuZCBiZWxvdzoKIAotCS9ldGMvdmltL3BsdWdpbi8KLQl+Ly52aW0vcGx1Z2luLwotCS91c3IvbG9jYWwvc2hhcmUvdmltL3ZpbTYwL3BsdWdpbi8KKwkvZXRjL3ZpbS9wbHVnaW4vICB+CisJfi8udmltL3BsdWdpbi8gIH4KKwkvdXNyL2xvY2FsL3NoYXJlL3ZpbS92aW02MC9wbHVnaW4vICB+CiAKIE5vdGUgdGhhdCB0aGUgbGFzdCBvbmUgaXMgdGhlIHZhbHVlIG9mICRWSU1SVU5USU1FIHdoaWNoIGhhcyBiZWVuIGV4cGFuZGVkLgogCiBXaGF0IGlmIGl0IGxvb2tzIGxpa2UgeW91ciBwbHVnaW4gaXMgbm90IGJlaW5nIGxvYWRlZD8gIFlvdSBjYW4gZmluZCBvdXQgd2hhdAogaGFwcGVucyB3aGVuIFZpbSBzdGFydHMgdXAgYnkgdXNpbmcgdGhlIHwtVnwgYXJndW1lbnQ6ID4KLQl2aW0gLVYxCisKKwl2aW0gLVYyCisKIFlvdSB3aWxsIHNlZSBhIGxvdCBvZiBtZXNzYWdlcywgaW4gYmV0d2VlbiB0aGVtIGlzIGEgcmVtYXJrIGFib3V0IGxvYWRpbmcgdGhlCi1wbHVnaW5zLiAgSXQgc3RhcnRzIHdpdGg6ID4KLQlTZWFyY2hpbmcgZm9yICJwbHVnaW4vKi52aW0iIGluCitwbHVnaW5zLiAgSXQgc3RhcnRzIHdpdGg6CisKKwlTZWFyY2hpbmcgZm9yICJwbHVnaW4vKiovKi52aW0iIGluIH4KKwogVGhlcmUgeW91IGNhbiBzZWUgd2hlcmUgVmltIGxvb2tzIGZvciB5b3VyIHBsdWdpbiBzY3JpcHRzLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlYnJldy50eHQgYi9ydW50aW1lL2RvYy9oZWJyZXcudHh0CmluZGV4IGZkZTU3YmMuLjIzMWQ3NzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlYnJldy50eHQKKysrIGIvcnVudGltZS9kb2MvaGVicmV3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpoZWJyZXcudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDMgTWF5IDExCisqaGVicmV3LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwMyBNYXkgMTEKIAogCiAJICAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUm9uIEFhcm9uIChhbmQgQXZuZXIgTG90dGVtKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaG93dG8udHh0IGIvcnVudGltZS9kb2MvaG93dG8udHh0CmluZGV4IDU5ODc4YjguLmFjNjlkNTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hvd3RvLnR4dAorKysgYi9ydW50aW1lL2RvYy9ob3d0by50eHQKQEAgLTEsNCArMSw0IEBACi0qaG93dG8udHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCisqaG93dG8udHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnRyby50eHQgYi9ydW50aW1lL2RvYy9pbnRyby50eHQKaW5kZXggMGRjYmViNy4uMmRlYjNjYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW50cm8udHh0CisrKyBiL3J1bnRpbWUvZG9jL2ludHJvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbnRyby50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDIwCisqaW50cm8udHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dCBiL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dAppbmRleCBkZmM0MGI3Li42NTVlNmZjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfYW1pZ2EudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2FtaWdhLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19hbWlnYS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfZG9zLnR4dCBiL3J1bnRpbWUvZG9jL29zX2Rvcy50eHQKaW5kZXggZDQ0NzU1YS4uMDlkNmNiZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfZG9zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19kb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2Rvcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMzAKKypvc19kb3MudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0IGIvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0CmluZGV4IGExYjFiODMuLmJmNjZmOWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc193aW4zMi50eHQKQEAgLTEsNCArMSw0IEBACi0qb3Nfd2luMzIudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKm9zX3dpbjMyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXByIDIyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdlb3JnZSBSZWlsbHkKQEAgLTI2OSw3ICsyNjksNyBAQAogUS4gSG93IGRvIEkgZ2V0IHRvIHNlZSB0aGUgb3V0cHV0IG9mICI6bWFrZSIgd2hpbGUgaXQncyBydW5uaW5nPwogQS4gQmFzaWNhbGx5IHdoYXQgeW91IG5lZWQgaXMgdG8gcHV0IGEgdGVlIHByb2dyYW0gdGhhdCB3aWxsIGNvcHkgaXRzIGlucHV0CiAgICAodGhlIG91dHB1dCBmcm9tIG1ha2UpIHRvIGJvdGggc3Rkb3V0IGFuZCB0byB0aGUgZXJyb3JmaWxlLiAgWW91IGNhbiBmaW5kIGEKLSAgIGNvcHkgb2YgdGVlIChhbmQgYSBudW1iZXIgb2Ygb3RoZXIgR05VIHRvb2xzIHRvb2xzKSBhdAorICAgY29weSBvZiB0ZWUgKGFuZCBhIG51bWJlciBvZiBvdGhlciBHTlUgdG9vbHMpIGF0CiAgICBodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0IG9yIGh0dHA6Ly91bnh1dGlscy5zb3VyY2Vmb3JnZS5uZXQKICAgIEFsdGVybmF0aXZlbHksIHRyeSB0aGUgbW9yZSByZWNlbnQgQ3lnbnVzIHZlcnNpb24gb2YgdGhlIEdOVSB0b29scyBhdAogICAgaHR0cDovL3d3dy5jeWd3aW4uY29tICBPdGhlciBVbml4LXN0eWxlIHRvb2xzIGZvciBXaW4zMiBhcmUgbGlzdGVkIGF0CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dCBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CmluZGV4IDRlMDA0OTMuLjBlZmQ1MjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CkBAIC0xLDQgKzEsNCBAQAotKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKKypwYXR0ZXJuLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTg3LDcgKzU4Nyw3IEBACiAJe1ZpIGRvZXMgbm90IGhhdmUgYW55IG9mIHRoZXNlfQogCiAJbiBhbmQgbSBhcmUgcG9zaXRpdmUgZGVjaW1hbCBudW1iZXJzIG9yIHplcm8KLQorCQkJCQkJCQkqbm9uLWdyZWVkeSoKIAlJZiBhICItIiBhcHBlYXJzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSAieyIsIHRoZW4gYSBzaG9ydGVzdCBtYXRjaAogCWZpcnN0IGFsZ29yaXRobSBpcyB1c2VkIChzZWUgZXhhbXBsZSBiZWxvdykuICBJbiBwYXJ0aWN1bGFyLCAiXHstfSIgaXMKIAl0aGUgc2FtZSBhcyAiKiIgYnV0IHVzZXMgdGhlIHNob3J0ZXN0IG1hdGNoIGZpcnN0IGFsZ29yaXRobS4gIEJVVDogQQpAQCAtOTY5LDcgKzk2OSw3IEBACiAJW3h5el0JCWFueSAneCcsICd5JyBvciAneicKIAlbYS16QS1aXSQJYW55IGFscGhhYmV0aWMgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2YgYSBsaW5lCiAJXGNbYS16XSQJc2FtZQotCisJCQkJCQkJCSovW1xuXSoKIAlXaXRoICJcXyIgcHJlcGVuZGVkIHRoZSBjb2xsZWN0aW9uIGFsc28gaW5jbHVkZXMgdGhlIGVuZC1vZi1saW5lLgogCVRoZSBzYW1lIGNhbiBiZSBkb25lIGJ5IGluY2x1ZGluZyAiXG4iIGluIHRoZSBjb2xsZWN0aW9uLiAgVGhlCiAJZW5kLW9mLWxpbmUgaXMgYWxzbyBtYXRjaGVkIHdoZW4gdGhlIGNvbGxlY3Rpb24gc3RhcnRzIHdpdGggIl4iISAgVGh1cwpAQCAtMTA0Miw2ICsxMDQyLDcgQEAKIAkJXHQJPFRhYj4KIAkJXHIJPENSPgkoTk9UIGVuZC1vZi1saW5lISkKIAkJXGIJPEJTPgorCQlcbglsaW5lIGJyZWFrLCBzZWUgYWJvdmUgfC9bXG5dfAogCQlcZDEyMwlkZWNpbWFsIG51bWJlciBvZiBjaGFyYWN0ZXIKIAkJXG80MAlvY3RhbCBudW1iZXIgb2YgY2hhcmFjdGVyIHVwIHRvIDAzNzcKIAkJXHgyMAloZXhhZGVjaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyIHVwIHRvIDB4ZmYKQEAgLTEwNjgsNiArMTA2OSw4IEBACiAJWW91IGRvbid0IG9mdGVuIGhhdmUgdG8gdXNlIGl0LCBidXQgaXQgaXMgcG9zc2libGUuICBFeGFtcGxlOiA+CiAJCS9cPHJcJVtbZW9dYWRdXD4KIDwJTWF0Y2hlcyB0aGUgd29yZHMgInIiLCAicmUiLCAicm8iLCAicmVhIiwgInJvYSIsICJyZWFkIiBhbmQgInJvYWQiLgorCVRoZXJlIGNhbiBiZSBubyBcKFwpLCBcJShcKSBvciBceihcKSBpdGVtcyBpbnNpZGUgdGhlIFtdIGFuZCBcJVtdIGRvZXMKKwlub3QgbmVzdC4KIAl7bm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlICtzeW50YXggZmVhdHVyZX0KIAogCQkJCSovXCVkKiAqL1wleCogKi9cJW8qICovXCV1KiAqL1wlVSogKkU2NzgqCkBAIC0xMTQ1LDcgKzExNDgsNyBAQAogdGhpcy4KIAogVGhlIG9yZGVyIG9mIGNvbXBvc2luZyBjaGFyYWN0ZXJzIG1hdHRlcnMsIGV2ZW4gdGhvdWdoIGNoYW5naW5nIHRoZSBvcmRlcgotZG9lbid0IGNoYW5nZSB3aGF0IGEgY2hhcmFjdGVyIGxvb2tzIGxpa2UuICBUaGlzIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KK2RvZXNuJ3QgY2hhbmdlIHdoYXQgYSBjaGFyYWN0ZXIgbG9va3MgbGlrZS4gIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDkuIENvbXBhcmUgd2l0aCBQZXJsIHBhdHRlcm5zCQkJCSpwZXJsLXBhdHRlcm5zKgpAQCAtMTIxOSw2ICsxMjIyLDEwIEBACiAJCSdpZ25vcmVjYXNlJyBkb2VzIG5vdCBhcHBseSwgdXNlIHwvXGN8IGluIHRoZSBwYXR0ZXJuIHRvCiAJCWlnbm9yZSBjYXNlLiAgT3RoZXJ3aXNlIGNhc2UgaXMgbm90IGlnbm9yZWQuCiAKKwkJV2hlbiBtYXRjaGluZyBlbmQtb2YtbGluZSBhbmQgVmltIHJlZHJhd3Mgb25seSBwYXJ0IG9mIHRoZQorCQlkaXNwbGF5IHlvdSBtYXkgZ2V0IHVuZXhwZWN0ZWQgcmVzdWx0cy4gIFRoYXQgaXMgYmVjYXVzZSBWaW0KKwkJbG9va3MgZm9yIGEgbWF0Y2ggaW4gdGhlIGxpbmUgd2hlcmUgcmVkcmF3aW5nIHN0YXJ0cy4KKwogCQlBbHNvIHNlZSB8bWF0Y2hhcmcoKXwsIGl0IHJldHVybnMgdGhlIGhpZ2hsaWdodCBncm91cCBhbmQKIAkJcGF0dGVybiBvZiBhIHByZXZpb3VzIDptYXRjaCBjb21tYW5kLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9zcGVjLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CmluZGV4IDllZmZiZTguLmIwNzU4NzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3NwZWMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX3NwZWMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypwaV9zcGVjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiBieSBHdXN0YXZvIE5pZW1leWVyIH4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcXVvdGVzLnR4dCBiL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQKaW5kZXggZWQ2MmFjMi4uMGZiZDhiZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVvdGVzLnR4dAorKysgYi9ydW50aW1lL2RvYy9xdW90ZXMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1b3Rlcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypxdW90ZXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcmVtb3RlLnR4dCBiL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQKaW5kZXggNDRkODJjYy4uNWI4N2NjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcmVtb3RlLnR4dAorKysgYi9ydW50aW1lL2RvYy9yZW1vdGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnJlbW90ZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKKypyZW1vdGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcmVwZWF0LnR4dCBiL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQKaW5kZXggZDcwZjc4YS4uNGExMDhiNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcmVwZWF0LnR4dAorKysgYi9ydW50aW1lL2RvYy9yZXBlYXQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnJlcGVhdC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKKypyZXBlYXQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IEphbiAwNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTMsNiArNTMsMTMgQEAKIDpbcmFuZ2VddltnbG9iYWxdL3twYXR0ZXJufS9bY21kXQogCQkJU2FtZSBhcyA6ZyEuCiAKK0luc3RlYWQgb2YgdGhlICcvJyB3aGljaCBzdXJyb3VuZHMgdGhlIHtwYXR0ZXJufSwgeW91IGNhbiB1c2UgYW55IG90aGVyCitzaW5nbGUgYnl0ZSBjaGFyYWN0ZXIsIGJ1dCBub3QgYW4gYWxwaGFudW1lcmljIGNoYXJhY3RlciwgJ1wnLCAnIicgb3IgJ3wnLgorVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBhICcvJyBpbiB0aGUgc2VhcmNoIHBhdHRlcm4gb3IKK3JlcGxhY2VtZW50IHN0cmluZy4KKworRm9yIHRoZSBkZWZpbml0aW9uIG9mIGEgcGF0dGVybiwgc2VlIHxwYXR0ZXJufC4KKwogVGhlIGdsb2JhbCBjb21tYW5kcyB3b3JrIGJ5IGZpcnN0IHNjYW5uaW5nIHRocm91Z2ggdGhlIFtyYW5nZV0gbGluZXMgYW5kCiBtYXJraW5nIGVhY2ggbGluZSB3aGVyZSBhIG1hdGNoIG9jY3VycyAoZm9yIGEgbXVsdGktbGluZSBwYXR0ZXJuLCBvbmx5IHRoZQogc3RhcnQgb2YgdGhlIG1hdGNoIG1hdHRlcnMpLgpAQCAtNjU2LDQgKzY2Myw3IEBACiAtIFByb2ZpbGluZyBtYXkgZ2l2ZSB3ZWlyZCByZXN1bHRzIG9uIG11bHRpLXByb2Nlc3NvciBzeXN0ZW1zLCB3aGVuIHNsZWVwCiAgIG1vZGUga2lja3MgaW4gb3IgdGhlIHByb2Nlc3NvciBmcmVxdWVuY3kgaXMgcmVkdWNlZCB0byBzYXZlIHBvd2VyLgogCistIFRoZSAic2VsZiIgdGltZSBpcyB3cm9uZyB3aGVuIGEgZnVuY3Rpb24gaXMgdXNlZCByZWN1cnNpdmVseS4KKworCiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dCBiL3J1bnRpbWUvZG9jL3Njcm9sbC50eHQKaW5kZXggYzE3NzRmNS4uMmNmMGJlYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zY3JvbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNjcm9sbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypzY3JvbGwudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEF1ZyAyNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjIzLDcgKzIyMyw3IEBACiBiZWhhdmlvciBjYW4gYmUgY2hhbmdlZCBieSBjbGVhcmluZyB0aGUgJ2p1bXAnIGZsYWcgZnJvbSB0aGUgJ3Njcm9sbG9wdCcKIG9wdGlvbi4KIAotCQkJCQkJCSpzeW5jYmluZCogKjpzeW5jYmluZCoKKwkJCQkJCSpzeW5jYmluZCogKjpzeW5jYmluZCogKjpzeW5jKgogOnN5bmNiaW5kCQlGb3JjZSBhbGwgJ3Njcm9sbGJpbmQnIHdpbmRvd3MgdG8gaGF2ZSB0aGUgc2FtZQogCQkJcmVsYXRpdmUgb2Zmc2V0LiAgSS5lLiwgd2hlbiBhbnkgb2YgdGhlICdzY3JvbGxiaW5kJwogCQkJd2luZG93cyBpcyBzY3JvbGxlZCB0byB0aGUgdG9wIG9mIGl0cyBidWZmZXIsIGFsbCBvZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3BlbGwudHh0IGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CmluZGV4IGE4MGNlYWYuLmI2ZjBjMWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA3IEFwciAyMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNiw2ICsxNiwxMCBAQAogU3BlbGwgY2hlY2tpbmcgaXMgbm90IGF2YWlsYWJsZSB3aGVuIHRoZSB8K3N5bnRheHwgZmVhdHVyZSBoYXMgYmVlbiBkaXNhYmxlZAogYXQgY29tcGlsZSB0aW1lLgogCitOb3RlOiBUaGVyZSBhbHNvIGlzIGEgdmltc3BlbGwgcGx1Z2luLiAgSWYgeW91IGhhdmUgaXQgeW91IGNhbiBkbyAiOmhlbHAKK3ZpbXNwZWxsIiB0byBmaW5kIGFib3V0IGl0LiAgQnV0IHlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGUKK3BsdWdpbiBhbmQgdXNlIHRoZSAnc3BlbGwnIG9wdGlvbiBpbnN0ZWFkLCBpdCB3b3JrcyBiZXR0ZXIuCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMS4gUXVpY2sgc3RhcnQJCQkJCQkqc3BlbGwtcXVpY2tzdGFydCoKIApAQCAtNDA5LDYgKzQxMyw3IEBACiBGb3IgdGhlIHNlY29uZCBtZXRob2QgYWRkaW5nIHRoZSBATm9TcGVsbCBjbHVzdGVyIHdpbGwgZGlzYWJsZSBzcGVsbCBjaGVja2luZwogYWdhaW4uICBUaGlzIGNhbiBiZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gYWRkIEBTcGVsbCB0byB0aGUgY29tbWVudHMgb2YgYQogcHJvZ3JhbSwgYW5kIGFkZCBATm9TcGVsbCBmb3IgaXRlbXMgdGhhdCBzaG91bGRuJ3QgYmUgY2hlY2tlZC4KK0Fsc28gc2VlIHw6c3luLXNwZWxsfCBmb3IgdGV4dCB0aGF0IGlzIG5vdCBpbiBhIHN5bnRheCBpdGVtLgogCiAKIFZJTSBTQ1JJUFRTCkBAIC00NjUsNyArNDcwLDcgQEAKIFlvdSBjYW4gY3JlYXRlIGEgVmltIHNwZWxsIGZpbGUgZnJvbSB0aGUgLmFmZiBhbmQgLmRpYyBmaWxlcyB0aGF0IE15c3BlbGwKIHVzZXMuICBNeXNwZWxsIGlzIHVzZWQgYnkgT3Blbk9mZmljZS5vcmcgYW5kIE1vemlsbGEuICBZb3Ugc2hvdWxkIGJlIGFibGUgdG8KIGZpbmQgdGhlbSBoZXJlOgotCWh0dHA6Ly9saW5ndWNvbXBvbmVudC5vcGVub2ZmaWNlLm9yZy9zcGVsbF9kaWMuaHRtbAorCWh0dHA6Ly93aWtpLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3dpa2kvRGljdGlvbmFyaWVzCiBZb3UgY2FuIGFsc28gdXNlIGEgcGxhaW4gd29yZCBsaXN0LiAgVGhlIHJlc3VsdHMgYXJlIHRoZSBzYW1lLCB0aGUgY2hvaWNlCiBkZXBlbmRzIG9uIHdoYXQgd29yZCBsaXN0cyB5b3UgY2FuIGZpbmQuCiAKQEAgLTU0Niw3ICs1NTEsNyBAQAogMi4gTWFrZSBhIGNvcHkgb2YgdGhlc2UgZmlsZXMgdG8geHhfWVkub3JpZy5hZmYgYW5kIHh4X1lZLm9yaWcuZGljLgogMy4gQ2hhbmdlIHRoZSB4eF9ZWS5hZmYgYW5kIHh4X1lZLmRpYyBmaWxlcyB0byByZW1vdmUgYmFkIHdvcmRzLCBhZGQgbWlzc2luZwogICAgd29yZHMsIGRlZmluZSB3b3JkIGNoYXJhY3RlcnMgd2l0aCBGT0wvTE9XL1VQUCwgZXRjLiAgVGhlIGRpc3RyaWJ1dGVkCi0gICAic3JjL3NwZWxsLyouZGlmZiIgZmlsZXMgY2FuIGJlIHVzZWQuCisgICAiKi5kaWZmIiBmaWxlcyBjYW4gYmUgdXNlZC4KIDQuIFN0YXJ0IFZpbSB3aXRoIHRoZSByaWdodCBsb2NhbGUgYW5kIHVzZSB8Om1rc3BlbGx8IHRvIGdlbmVyYXRlIHRoZSBWaW0KICAgIHNwZWxsIGZpbGUuCiA1LiBUcnkgb3V0IHRoZSBzcGVsbCBmaWxlIHdpdGggIjpzZXQgc3BlbGwgc3BlbGxsYW5nPXh4IiBpZiB5b3Ugd3JvdGUgaXQgaW4KQEAgLTY0Niw3ICs2NTEsNyBAQAogICBvbmx5IEFTQ0lJIGxldHRlcnMgZm9yIG1vc3Qgb2YgdGhlIHdvcmRzLgogCiBUaGUgZGVmYXVsdCAic3BlbGxmaWxlLnZpbSIgcGx1Z2luIHVzZXMgdGhpcyBhdXRvY29tbWFuZCwgaWYgeW91IGRlZmluZSB5b3VyCi1hdXRvY29tbWFuZCBhZnRlcndhcnMgeW91IG1heSB3YW50IHRvIHVzZSAiOmF1ISBTcGVsbEZpbGVNaXNzaW5nIiB0byBvdmVycnVsZQorYXV0b2NvbW1hbmQgYWZ0ZXJ3YXJkcyB5b3UgbWF5IHdhbnQgdG8gdXNlICI6YXUhIFNwZWxsRmlsZU1pc3NpbmciIHRvIG92ZXJydWxlCiBpdC4gIElmIHlvdSBkZWZpbmUgeW91ciBhdXRvY29tbWFuZCBiZWZvcmUgdGhlIHBsdWdpbiBpcyBsb2FkZWQgaXQgd2lsbCBub3RpY2UKIHRoaXMgYW5kIG5vdCBkbyBhbnl0aGluZy4KIApAQCAtMTMzMiw3ICsxMzM3LDcgQEAKIAogT25seSBjYXNlLWZvbGRlZCBsZXR0ZXJzIG5lZWQgdG8gYmUgaW5jbHVkZWQuCiAKLUFib3ZlIGFub3RoZXIgd2F5IHRvIHJlc3RyaWN0IGNvbXBvdW5kaW5nIHdhcyBtZW50aW9uZWQgYWJvdmU6IEFkZGluZyB0aGUKK0Fub3RoZXIgd2F5IHRvIHJlc3RyaWN0IGNvbXBvdW5kaW5nIHdhcyBtZW50aW9uZWQgYWJvdmU6IEFkZGluZyB0aGUKIHxzcGVsbC1DT01QT1VOREZPUkJJREZMQUd8IGZsYWcgdG8gYW4gYWZmaXggY2F1c2VzIGFsbCB3b3JkcyB0aGF0IGFyZSBtYWRlCiB3aXRoIHRoYXQgYWZmaXggbm90IGJlIGJlIHVzZWQgZm9yIGNvbXBvdW5kaW5nLgogCkBAIC0xNTEwLDcgKzE1MTUsNyBAQAogCQlFbmFibGVzIHVzaW5nIHR3byBwcmVmaXhlcy4gIE5vdCBzdXBwb3J0ZWQuCiAKIENPTVBPVU5ECShIdW5zcGVsbCkJCQkJKnNwZWxsLUNPTVBPVU5EKgotCQlUaGlzIGlzIG9uZSBsaW5lIHdpdGggdGhlIGNvdW50IG9mIENPTVBPVU5EIGl0ZW1zLCBmb2xsb3dkIGJ5CisJCVRoaXMgaXMgb25lIGxpbmUgd2l0aCB0aGUgY291bnQgb2YgQ09NUE9VTkQgaXRlbXMsIGZvbGxvd2VkIGJ5CiAJCXRoYXQgbWFueSBDT01QT1VORCBsaW5lcyB3aXRoIGEgcGF0dGVybi4KIAkJUmVtb3ZlIHRoZSBmaXJzdCBsaW5lIHdpdGggdGhlIGNvdW50IGFuZCByZW5hbWUgdGhlIG90aGVyCiAJCWl0ZW1zIHRvIENPTVBPVU5EUlVMRSB8c3BlbGwtQ09NUE9VTkRSVUxFfApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3FsLnR4dCBiL3J1bnRpbWUvZG9jL3NxbC50eHQKaW5kZXggOWQ1NDFmOC4uMDc5YzM5NCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3FsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zcWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNxbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogV2VkIEFwciAyNiAyMDA2IDM6MDU6MzMgUE0KKypzcWwudHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiBXZWQgQXByIDI2IDIwMDYgMzowNTozMyBQTQogCiBieSBEYXZpZCBGaXNoYnVybgogCkBAIC02MzIsNyArNjMyLDcgQEAKIAktIFdoZW4gY29tcGxldGluZyB0YWJsZXMsIHByb2NlZHVyZSBvciB2aWV3cyBhbmQgdXNpbmcgZGJleHQudmltIDMuMDAKIAkgIG9yIGhpZ2hlciB0aGUgbGlzdCBvZiBvYmplY3RzIHdpbGwgYWxzbyBpbmNsdWRlIHRoZSBvd25lciBuYW1lLgogCSAgV2hlbiBjb21wbGV0aW5nIHRoZXNlIG9iamVjdHMgYW5kIG9tbmlfc3FsX2luY2x1ZGVfb3duZXIgaXMgZW5hYmxlZAotCSAgdGhlIG93bmVyIG5hbWUgd2lsbCBiZSBiZSByZXBsYWNlZC4gPgorCSAgdGhlIG93bmVyIG5hbWUgd2lsbCBiZSByZXBsYWNlZC4gPgogCiAgICAgb21uaV9zcWxfcHJlY2FjaGVfc3ludGF4X2dyb3VwcwogPAktIERlZmF1bHQ6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zdGFydGluZy50eHQgYi9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKaW5kZXggYjY3NmM1YS4uNjBkOGNiMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzdGFydGluZy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1Cisqc3RhcnRpbmcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMxMSwxMiArMzExLDE2IEBACiAJCU1lc3NhZ2VzIHdpbGwgYmUgZ2l2ZW4gZm9yIGVhY2ggZmlsZSB0aGF0IGlzICI6c291cmNlImQgYW5kCiAJCWZvciByZWFkaW5nIG9yIHdyaXRpbmcgYSB2aW1pbmZvIGZpbGUuICBDYW4gYmUgdXNlZCB0byBmaW5kCiAJCW91dCB3aGF0IGlzIGhhcHBlbmluZyB1cG9uIHN0YXJ0dXAgYW5kIGV4aXQuICB7bm90IGluIFZpfQorCQlFeGFtcGxlOiA+CisJCQl2aW0gLVY4IGZvb2JhcgogCiAtVltOXXtmaWxlbmFtZX0KIAkJTGlrZSAtViBhbmQgc2V0ICd2ZXJib3NlZmlsZScgdG8ge2ZpbGVuYW1lfS4gIFRoZSByZXN1bHQgaXMKIAkJdGhhdCBtZXNzYWdlcyBhcmUgbm90IGRpc3BsYXllZCBidXQgd3JpdHRlbiB0byB0aGUgZmlsZQogCQl7ZmlsZW5hbWV9LiAge2ZpbGVuYW1lfSBtdXN0IG5vdCBzdGFydCB3aXRoIGEgZGlnaXQuCi0KKwkJRXhhbXBsZTogPgorCQkJdmltIC1WMjB2aW1sb2cgZm9vYmFyCis8CiAJCQkJCQkJKi1EKgogLUQJCURlYnVnZ2luZy4gIEdvIHRvIGRlYnVnZ2luZyBtb2RlIHdoZW4gZXhlY3V0aW5nIHRoZSBmaXJzdAogCQljb21tYW5kIGZyb20gYSBzY3JpcHQuIHxkZWJ1Zy1tb2RlfApAQCAtNTM3LDcgKzU0MSw3IEBACiAJCVNlZSB8LS1yZW1vdGUtZXhwcnwuIHtub3QgaW4gVml9CiAKIC0tc2VydmVybGlzdAlPdXRwdXQgYSBsaXN0IG9mIFZpbSBzZXJ2ZXIgbmFtZXMgYW5kIGV4aXQuICBTZWUKLQkJU2VlIHwtLXNlcnZlcmxpc3R8LiB7bm90IGluIFZpfQorCQl8LS1zZXJ2ZXJsaXN0fC4ge25vdCBpbiBWaX0KIAogLS1zb2NrZXRpZCB7aWR9CQkJCQkJKi0tc29ja2V0aWQqCiAJCUdUSysgR1VJIFZpbSBvbmx5LiAgTWFrZSBndmltIHRyeSB0byB1c2UgR3RrUGx1ZyBtZWNoYW5pc20sIHNvCkBAIC05MDUsOSArOTA5LDEwIEBACiByZXNldHRpbmcgb3RoZXIgb3B0aW9ucyAoc2VlICdjb21wYXRpYmxlJykuICBCdXQgb25seSB0aGUgb3B0aW9ucyB0aGF0IGhhdmUKIG5vdCBiZWVuIHNldCBvciByZXNldCB3aWxsIGJlIGNoYW5nZWQuICBUaGlzIGhhcyB0aGUgc2FtZSBlZmZlY3QgbGlrZSB0aGUKIHZhbHVlIG9mICdjb21wYXRpYmxlJyBoYWQgdGhpcyB2YWx1ZSB3aGVuIHN0YXJ0aW5nIFZpbS4gIE5vdGUgdGhhdCB0aGlzCi1kb2Vzbid0IGhhcHBlbiBmb3IgdGhlIHN5c3RlbS13aWRlIHZpbXJjIGZpbGUuICBJdCBkb2VzIGFsc28gaGFwcGVuIGZvciBndmltcmMKLWZpbGVzLiAgVGhlICRNWVZJTVJDIG9yICRNWUdWSU1SQyBmaWxlIHdpbGwgYmUgc2V0IHRvIHRoZSBmaXJzdCBmb3VuZCB2aW1yYwotYW5kL29yIGd2aW1yYyBmaWxlLgorZG9lc24ndCBoYXBwZW4gZm9yIHRoZSBzeXN0ZW0td2lkZSB2aW1yYyBmaWxlIG5vciB3aGVuIFZpbSB3YXMgc3RhcnRlZCB3aXRoCit0aGUgfC11fCBjb21tYW5kIGxpbmUgYXJndW1lbnQuICBJdCBkb2VzIGFsc28gaGFwcGVuIGZvciBndmltcmMgZmlsZXMuICBUaGUKKyRNWVZJTVJDIG9yICRNWUdWSU1SQyBmaWxlIHdpbGwgYmUgc2V0IHRvIHRoZSBmaXJzdCBmb3VuZCB2aW1yYyBhbmQvb3IgZ3ZpbXJjCitmaWxlLgogCiBCdXQgdGhlcmUgaXMgYSBzaWRlIGVmZmVjdCBvZiBzZXR0aW5nIG9yIHJlc2V0dGluZyAnY29tcGF0aWJsZScgYXQgdGhlIG1vbWVudAogYSAudmltcmMgZmlsZSBpcyBmb3VuZDogTWFwcGluZ3MgYXJlIGludGVycHJldGVkIHRoZSBtb21lbnQgdGhleSBhcmUKQEAgLTEyMDAsOCArMTIwNSw4IEBACiAgICBpbmNsdWRpbmcgaGlkZGVuIGFuZCB1bmxvYWRlZCBidWZmZXJzLiAgT3RoZXJ3aXNlIG9ubHkgYnVmZmVycyBpbiB3aW5kb3dzCiAgICBhcmUgcmVzdG9yZWQuCiA4LiBSZXN0b3JlcyBhbGwgd2luZG93cyB3aXRoIHRoZSBzYW1lIGxheW91dC4gIElmICdzZXNzaW9ub3B0aW9ucycgY29udGFpbnMKLSAgIGNvbnRhaW5zICJoZWxwIiwgaGVscCB3aW5kb3dzIGFyZSByZXN0b3JlZC4gIElmICdzZXNzaW9ub3B0aW9ucycgY29udGFpbnMKLSAgICJibGFuayIsIHdpbmRvd3MgZWRpdGluZyBhIGJ1ZmZlciB3aXRob3V0IGEgbmFtZSB3aWxsIGJlIHJlc3RvcmVkLgorICAgImhlbHAiLCBoZWxwIHdpbmRvd3MgYXJlIHJlc3RvcmVkLiAgSWYgJ3Nlc3Npb25vcHRpb25zJyBjb250YWlucyAiYmxhbmsiLAorICAgd2luZG93cyBlZGl0aW5nIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lIHdpbGwgYmUgcmVzdG9yZWQuCiAgICBJZiAnc2Vzc2lvbm9wdGlvbnMnIGNvbnRhaW5zICJ3aW5zaXplIiBhbmQgbm8gKGhlbHAvYmxhbmspIHdpbmRvd3Mgd2VyZQogICAgbGVmdCBvdXQsIHRoZSB3aW5kb3cgc2l6ZXMgYXJlIHJlc3RvcmVkIChyZWxhdGl2ZSB0byB0aGUgc2NyZWVuIHNpemUpLgogICAgT3RoZXJ3aXNlLCB0aGUgd2luZG93cyBhcmUganVzdCBnaXZlbiBzZW5zaWJsZSBzaXplcy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IGZhN2IwNDMuLjM3MmI3YTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMDMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDY3LDUyICs0NjcsOSBAQAogYWJlbF9jcHBfY29tbWVudHNfaWxsZWdhbAlkbyBub3QgaW50ZXJwcmV0ICcvLycgYXMgaW5saW5lIGNvbW1lbnQgbGVhZGVyCiAKIAotQURBCQkJCQkJKmFkYS52aW0qICpmdC1hZGEtc3ludGF4KgorQURBCiAKLVRoaXMgbW9kZSBpcyBkZXNpZ25lZCBmb3IgdGhlIDE5OTUgZWRpdGlvbiBvZiBBZGEgKCJBZGE5NSIpLCB3aGljaAotaW5jbHVkZXMgc3VwcG9ydCBmb3Igb2JqZWN0ZWQtcHJvZ3JhbW1pbmcsIHByb3RlY3RlZCB0eXBlcywgYW5kIHNvIG9uLgotSXQgaGFuZGxlcyBjb2RlIHdyaXR0ZW4gZm9yIHRoZSBvcmlnaW5hbCBBZGEgbGFuZ3VhZ2UKLSgiQWRhODMiIG9yICJBZGE4NyIpIGFzIHdlbGwsIHRob3VnaCBBZGE4MyBjb2RlIHdoaWNoIHVzZXMgQWRhOTUtb25seQota2V5d29yZHMgd2lsbCBiZSB3cm9uZ2x5IGNvbG9yZWQgKHN1Y2ggY29kZSBzaG91bGQgYmUgZml4ZWQgYW55d2F5KS4KLUZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFkYSwgc2VlIGh0dHA6Ly93d3cuYWRhcG93ZXIuY29tLgotCi1UaGUgQWRhIG1vZGUgaGFuZGxlcyBhIG51bWJlciBvZiBzaXR1YXRpb25zIGNsZWFubHkuCi1Gb3IgZXhhbXBsZSwgaXQga25vd3MgdGhhdCB0aGUgIi0iIGluICItNSIgaXMgYSBudW1iZXIsIGJ1dCB0aGUgc2FtZQotY2hhcmFjdGVyIGluICJBLTUiIGlzIGFuIG9wZXJhdG9yLiAgTm9ybWFsbHksIGEgIndpdGgiIG9yICJ1c2UiIGNsYXVzZQotcmVmZXJlbmNpbmcgYW5vdGhlciBjb21waWxhdGlvbiB1bml0IGlzIGNvbG9yZWQgdGhlIHNhbWUgd2F5IGFzIEMncwotIiNpbmNsdWRlIiBpcyBjb2xvcmVkLglJZiB5b3UgaGF2ZSAiQ29uZGl0aW9uYWwiIG9yICJSZXBlYXQiCi1ncm91cHMgY29sb3JlZCBkaWZmZXJlbnRseSwgdGhlbiAiZW5kIGlmIiBhbmQgImVuZCBsb29wIiB3aWxsIGJlCi1jb2xvcmVkIGFzIHBhcnQgb2YgdGhvc2UgcmVzcGVjdGl2ZSBncm91cHMuCi1Zb3UgY2FuIHNldCB0aGVzZSB0byBkaWZmZXJlbnQgY29sb3JzIHVzaW5nIHZpbSdzICJoaWdobGlnaHQiIGNvbW1hbmQKLShlLmcuLCB0byBjaGFuZ2UgaG93IGxvb3BzIGFyZSBkaXNwbGF5ZWQsIGVudGVyIHRoZSBjb21tYW5kCi0iOmhpIFJlcGVhdCIgZm9sbG93ZWQgYnkgdGhlIGNvbG9yIHNwZWNpZmljYXRpb247IG9uIHNpbXBsZSB0ZXJtaW5hbHMKLXRoZSBjb2xvciBzcGVjaWZpY2F0aW9uIGN0ZXJtZmc9V2hpdGUgb2Z0ZW4gc2hvd3Mgd2VsbCkuCi0KLVRoZXJlIGFyZSBzZXZlcmFsIG9wdGlvbnMgeW91IGNhbiBzZWxlY3QgaW4gdGhpcyBBZGEgbW9kZS4KLVRvIGVuYWJsZSB0aGVtLCBhc3NpZ24gYSB2YWx1ZSB0byB0aGUgb3B0aW9uLiAgRm9yIGV4YW1wbGUsIHRvIHR1cm4gb25lIG9uOgotICAgbGV0IGFkYV9zdGFuZGFyZF90eXBlcyA9IDEKLVRvIGRpc2FibGUgdGhlbSB1c2UgIjp1bmxldCIuICBFeGFtcGxlOgotICAgdW5sZXQgYWRhX3N0YW5kYXJkX3R5cGVzID0gMQotWW91IGNhbiBqdXN0IHVzZSAiOiIgYW5kIHR5cGUgdGhlc2UgaW50byB0aGUgY29tbWFuZCBsaW5lIHRvIHNldCB0aGVzZQotdGVtcG9yYXJpbHkgYmVmb3JlIGxvYWRpbmcgYW4gQWRhIGZpbGUuICBZb3UgY2FuIG1ha2UgdGhlc2Ugb3B0aW9uIHNldHRpbmdzCi1wZXJtYW5lbnQgYnkgYWRkaW5nIHRoZSAibGV0IiBjb21tYW5kKHMpLCB3aXRob3V0IGEgY29sb24sCi10byB5b3VyICJ+Ly52aW1yYyIgZmlsZS4KLQotSGVyZSBhcmUgdGhlIEFkYSBtb2RlIG9wdGlvbnM6Ci0KLVZhcmlhYmxlCQkgQWN0aW9uCX4KLWFkYV9zdGFuZGFyZF90eXBlcwkgSGlnaGxpZ2h0IHR5cGVzIGluIHBhY2thZ2UgU3RhbmRhcmQgKGUuZy4sICJGbG9hdCIpCi1hZGFfc3BhY2VfZXJyb3JzCSBIaWdobGlnaHQgZXh0cmFuZW91cyBlcnJvcnMgaW4gc3BhY2VzLi4uCi1hZGFfbm9fdHJhaWxfc3BhY2VfZXJyb3IgICBidXQgaWdub3JlIHRyYWlsaW5nIHNwYWNlcyBhdCB0aGUgZW5kIG9mIGEgbGluZQotYWRhX25vX3RhYl9zcGFjZV9lcnJvcgkgICBidXQgaWdub3JlIHRhYnMgYWZ0ZXIgc3BhY2VzCi1hZGFfd2l0aHVzZV9vcmRpbmFyeQkgU2hvdyAid2l0aCIgYW5kICJ1c2UiIGFzIG9yZGluYXJ5IGtleXdvcmRzCi0JCQkgICAod2hlbiB1c2VkIHRvIHJlZmVyZW5jZSBvdGhlciBjb21waWxhdGlvbiB1bml0cwotCQkJICAgdGhleSdyZSBub3JtYWxseSBoaWdobGlnaHRlZCBzcGVjaWFsbHkpLgotYWRhX2JlZ2luX3ByZXByb2MJIFNob3cgYWxsIGJlZ2luLWxpa2Uga2V5d29yZHMgdXNpbmcgdGhlIGNvbG9yaW5nCi0JCQkgICBvZiBDIHByZXByb2Nlc3NvciBjb21tYW5kcy4KLQotRXZlbiBvbiBhIHNsb3cgKDkwTWh6KSBQQyB0aGlzIG1vZGUgd29ya3MgcXVpY2tseSwgYnV0IGlmIHlvdSBmaW5kCi10aGUgcGVyZm9ybWFuY2UgdW5hY2NlcHRhYmxlLCB0dXJuIG9uIGFkYV93aXRodXNlX29yZGluYXJ5LgorU2VlIHxmdC1hZGEtc3ludGF4fAogCiAKIEFOVAkJCQkJCSphbnQudmltKiAqZnQtYW50LXN5bnRheCoKQEAgLTkwMywxMCArODYwLDYgQEAKIG9yID4KIAkvLyB2aW06c3ludGF4PWMuZG94eWdlbgogCi1UbyB1c2UgZG94eWdlbiBmb3JtYXR0aW5nIG9uIHRvcCBvZiBhbnkgZmlsZXR5cGUsIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIKLS52aW1yYyBmb3IgZWFjaCBmaWxldHlwZSwgcmVwbGFjaW5nIHtmaWxldHlwZX0gd2l0aCB0aGUgcmVsZXZlbnQgdmFsdWUuID4KLQk6bGV0IGc6c3ludGF4X2V4dHJhX3tmaWxldHlwZX09J2RveHlnZW4nCi0KIEl0IGNhbiBhbHNvIGJlIGRvbmUgYXV0b21hdGljbHkgZm9yIGMsIGNwcCBhbmQgaWRsIGZpbGVzIGJ5IHNldHRpbmcgdGhlIGdsb2JhbAogb3IgYnVmZmVyLWxvY2FsIHZhcmlhYmxlIGxvYWRfZG94eWdlbl9zeW50YXguICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIHRoZQogZm9sbG93aW5nIHRvIHlvdXIgLnZpbXJjLiA+CkBAIC0yMzM5LDYgKzIyOTIsOCBAQAogCiBUaGlzIHdpbGwgc2V0IHRoZSAnZm9sZG1ldGhvZCcgb3B0aW9uIHRvICJzeW50YXgiIGFuZCBhbGxvdyBmb2xkaW5nIG9mCiBjbGFzc2VzLCBtb2R1bGVzLCBtZXRob2RzLCBjb2RlIGJsb2NrcywgaGVyZWRvY3MgYW5kIGNvbW1lbnRzLgorCisKIFNDSEVNRQkJCQkJCSpzY2hlbWUudmltKiAqZnQtc2NoZW1lLXN5bnRheCoKIAogQnkgZGVmYXVsdCBvbmx5IFI1UlMga2V5d29yZHMgYXJlIGhpZ2hsaWdodGVkIGFuZCBwcm9wZXJseSBpbmRlbnRlZC4KQEAgLTI1OTgsNiArMjU1MywxNiBAQAogaW5jcmVhc2UgdGhlbS4JVGhpcyBwcmltYXJpbHkgYWZmZWN0cyBzeW5jaHJvbml6aW5nIChpLmUuIGp1c3Qgd2hhdCBncm91cCwKIGlmIGFueSwgaXMgdGhlIHRleHQgYXQgdGhlIHRvcCBvZiB0aGUgc2NyZWVuIHN1cHBvc2VkIHRvIGJlIGluPykuCiAKKyp0ZXgtbW9yZWNvbW1hbmRzKiAqdGV4LXBhY2thZ2UqCitXaXNoIFRvIEhpZ2hsaWdodCBNb3JlIENvbW1tYW5kcz8gfgorCitMYVRlWCBpcyBhIHByb2dyYW1tYWJsZSBsYW5ndWFnZSwgYW5kIHNvIHRoZXJlIGFyZSB0aG91c2FuZHMgb2YgcGFja2FnZXMgZnVsbAorb2Ygc3BlY2lhbGl6ZWQgTGFUZVggY29tbWFuZHMsIHN5bnRheCwgYW5kIGZvbnRzLiAgSWYgeW91J3JlIHVzaW5nIHN1Y2ggYQorcGFja2FnZSB5b3UnbGwgb2Z0ZW4gd2lzaCB0aGF0IHRoZSBkaXN0cmlidXRlZCBzeW50YXgvdGV4LnZpbSB3b3VsZCBzdXBwb3J0CitpdC4gIEhvd2V2ZXIsIGNsZWFybHkgdGhpcyBpcyBpbXByYWN0aWNhbC4gIFNvIHBsZWFzZSBjb25zaWRlciB1c2luZyB0aGUKK3RlY2huaXF1ZXMgaW4gfG15c3ludGF4ZmlsZS1hZGR8IHRvIGV4dGVuZCBvciBtb2RpZnkgdGhlIGhpZ2hsaWdodGluZyBwcm92aWRlZAorYnkgc3ludGF4L3RleC52aW0uCisKICp0ZXgtZXJyb3IqCiBFeGNlc3NpdmUgRXJyb3IgSGlnaGxpZ2h0aW5nPyB+CiAKQEAgLTQzOTYsNyArNDM2MSw3IEBACiAjIE1ha2UgYSBoaWdobGlnaHQgZmlsZSBmb3IgdHlwZXMuICBSZXF1aXJlcyBFeHViZXJhbnQgY3RhZ3MgYW5kIGF3awogdHlwZXM6IHR5cGVzLnZpbQogdHlwZXMudmltOiAqLltjaF0KLQljdGFncyAtaT1nc3R1UyAtby0gKi5bY2hdIHxcCisJY3RhZ3MgLS1jLWtpbmRzPWdzdHUgLW8tICouW2NoXSB8XAogCQlhd2sgJ0JFR0lOe3ByaW50Zigic3ludGF4IGtleXdvcmQgVHlwZVx0Iil9XAogCQkJe3ByaW50ZigiJXMgIiwgJCQxKX1FTkR7cHJpbnQgIiJ9JyA+ICRACiAKQEAgLTQ1MDQsNyArNDQ2OSw3IEBACiAKIFtOb3RlOiBUaGUgY3Vyc29yQ29sb3IgaXMgcmVxdWlyZWQgdG8gd29yayBhcm91bmQgYSBidWcsIHdoaWNoIGNoYW5nZXMgdGhlCiBjdXJzb3IgY29sb3IgdG8gdGhlIGNvbG9yIG9mIHRoZSBsYXN0IGRyYXduIHRleHQuICBUaGlzIGhhcyBiZWVuIGZpeGVkIGJ5IGEKLW5ld2VyIHZlcnNpb24gb2YgeHRlcm0sIGJ1dCBub3QgZXZlcnlib2R5IGlzIGl0IHVzaW5nIHlldC5dCituZXdlciB2ZXJzaW9uIG9mIHh0ZXJtLCBidXQgbm90IGV2ZXJ5Ym9keSBpcyB1c2luZyBpdCB5ZXQuXQogCiBUbyBnZXQgdGhlc2UgcmlnaHQgYXdheSwgcmVsb2FkIHRoZSAuWGRlZmF1bHRzIGZpbGUgdG8gdGhlIFggT3B0aW9uIGRhdGFiYXNlCiBNYW5hZ2VyICh5b3Ugb25seSBuZWVkIHRvIGRvIHRoaXMgd2hlbiB5b3UganVzdCBjaGFuZ2VkIHRoZSAuWGRlZmF1bHRzIGZpbGUpOiA+CkBAIC00NTIwLDcgKzQ0ODUsNyBAQAogCVhUZXJtKmN1cnNvckNvbG9yOglXaGl0ZQogCiAJCQkJCQkJKmhwdGVybS1jb2xvcioKLVRoZXNlIHNldHRpbmdzIHdvcmsgKG1vcmUgb3IgbGVzcykgZm9yIGEgaHB0ZXJtLCB3aGljaCBvbmx5IHN1cHBvcnRzIDgKK1RoZXNlIHNldHRpbmdzIHdvcmsgKG1vcmUgb3IgbGVzcykgZm9yIGFuIGhwdGVybSwgd2hpY2ggb25seSBzdXBwb3J0cyA4CiBmb3JlZ3JvdW5kIGNvbG9yczogPgogICAgOmlmIGhhcygidGVybWluZm8iKQogICAgOiAgc2V0IHRfQ289OApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFnc3JjaC50eHQgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAppbmRleCAwYWNkZjJjLi43MWJiYTA4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAorKysgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0YWdzcmNoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdGFnc3JjaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggMTMwMTZmNi4uYTFjODVmMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNworKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWF5IDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwLDkgKzMwLDQ3NiBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1BhdGNoIHRvIG1ha2UgdmlydGNvbChbMTIzLCAnJCddKSBkbyB0aGUgcmlnaHQgdGhpbmcuIChNaWNoYWVsIFNjaGFhcCkKKworSW5zZXJ0IG1vZGUgY29tcGxldGlvbjogQ1RSTC1OIGFuZCBDVFJMLVAgd29yayBkaWZmZXJlbnRseSBhbmQgdGhleSBib3RoIGRvbid0Cit3b3JrIGFzIGV4cGVjdGVkLiAoQmVybmhhcmQgV2FsbGUsIDIwMDcgRmViIDI3KQorCitnbG9iKCkgZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIHNpbmdsZSBxdW90ZXMgYW5kICdzaGVsbCcgc2V0IHRvIC9iaW4vc2guCisoQWRyaSBWZXJob2VmLCBDaGFybGVzIENhbXBiZWxsIDIwMDcgTWFyIDI2KQorCitTcGxpdHRpbmcgcXVpY2tmaXggd2luZG93IG1lc3NlcyB1cCB3aW5kb3cgbGF5b3V0LiAoTWFyaXVzIEdlZG1pbmFzLCAyMDA3IEFwcgorMjUpCisKK1JlcGxhY2UgY2NvbXBsZXRlLnZpbSBieSBjcHBjb21wbGV0ZS52aW0gZnJvbSB3d3cudmltLm9yZz8gIHNjcmlwdCAxNTIwCisoTWFydGluIFN0dWJlbnNjaHJvdHQpCisgICAgY3RhZ3MgLVIgLS1jKysta2luZHM9K3AgLS1maWVsZHM9K2lhUyAtLWV4dHJhPStxIC4KKworTWFraW5nIHRoZSBHZXJtYW4gc2hhcnAgcyB1cHBlcmNhc2UgZG9lc24ndCB3b3JrIHByb3Blcmx5OiBvbmUgY2hhcmFjdGVyIGxlc3MKK2lzIHVwcGVyY2FzZWQgaW4gImdVZSIuCitBbHNvOiBsYXRpbjIgaGFzIHRoZSBzYW1lIGNoYXJhY3RlciBidXQgaXQgaXNuJ3QgdXBwZXJjYXNlZCB0aGVyZS4KKworTWFjOiBBZnRlciBhICI6dnNwbGl0IiB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBhcHBlYXIgdW50aWwgJ2NvbHVtbnMnIGlzCitjaGFuZ2VkIG9yIHRoZSB3aW5kb3cgaXMgcmVzaXplZC4KKworTWFjOiBQYXRjaCBmb3IgTWFjIEdVSSB0YWJsaW5lLiAoTmljb2xhcyBXZWJlciwgMjAwNiBKdWwgMTgsIFVwZGF0ZSAyMDA3IEZlYikKKyAgICBOZXcgdXBkYXRlIHY2IH4vdG1wL2d1aXRhYi52Ni5kaWZmIChLeWxlIFdoZWVsZXIpCisKK1doZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYSAicCIgb2YgYSBibG9jayBqdXN0IHBhc3QgdGhlIGVuZCBvZiB0aGUgbGluZQoraW5zZXJ0cyBiZWZvcmUgdGhlIGN1cnNvci4gKEVuZ2Vsa2UpCisKK1VzaW5nIEFhcCB0byBidWlsZCBWaW06IGFkZCByZW1hcmtzIGFib3V0IGhvdyB0byBzZXQgcGVyc29uYWwgcHJlZmVyZW5jZXMuCitFeGFtcGxlIG9uIGh0dHA6Ly93d3cuY2FsbWFyLndzL3RtcC9hYXAuaHRtbAorCitHVEs6ICdic2RpcicgZG9lc24ndCB3b3JrLiAgU29tZXRpbWVzIGdldCBhICJndGsgY3JpdGljYWwgZXJyb3IiLgorTW92ZWQgc29tZSBjb2RlIHRvIGFwcGVuZCBmaWxlIG5hbWUgdG8gZnVydGhlciBkb3duIGluIGd1aV9ndGsuYworZ3VpX21jaF9icm93c2UoKSwgYnV0ICJsYXN0IiB2YWx1ZSBvZiAnYnNkaXInIHN0aWxsIGRvZXNuJ3Qgd29yay4KKworQyBzeW50YXg6ICIjZGVmaW5lIHggeyIgIFRoZSBtYWNybyBzaG91bGQgdGVybWluYXRlIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsCitub3QgY29udGludWUgaW4gdGhlIG5leHQgbGluZS4gKEtlbHZpbiBMZWUsIDIwMDYgTWF5IDI0KQorCitDIHN5bnRheDoge30gaW5zaWRlICgpIGNhdXNlcyBmb2xsb3dpbmcge30gdG8gYmUgaGlnaGxpZ2h0ZWQgYXMgZXJyb3IuCisoTWljaGFsaXMgR2lhbm5ha2lkaXMsIDIwMDYgSnVuIDEpCisKK0dub21lIGltcHJvdmVtZW50czogRWR3YXJkIENhdG11ciwgMjAwNyBKYW4gNworICAgIEFsc28gdXNlIFNhdmUvRGlzY2FyZCBmb3Igb3RoZXIgR1VJcworCitOZXcgUEhQIHN5bnRheCBmaWxlLCB1c2UgaXQ/IChQZXRlciBIb2RnZSkKKworJ2ZvbGRjb2x1bW4nIGluIG1vZGVsaW5lIGFwcGxpZWQgdG8gd3Jvbmcgd2luZG93IHdoZW4gdXNpbmcgYSBzZXNzaW9uLiAoVGVlbXUKK0xpa29uZW4sIE1hcmNoIDE5KQorCitTeW50YXggaGlnaGxpZ2h0aW5nIHdyb25nIGZvciB0cmFuc3BhcmVudCByZWdpb24uIChEb3VnIEtlYXJucywgMjAwNyBGZWIgMjYpCisKK01vcmUgQW1pZ2FPUzQgcGF0Y2hlcy4gKFBldGVyIEJlbmd0c3NvbiwgTm92IDkpCisKK0FkZCB2OnNlYXJjaGZvcndhcmQgdmFyaWFibGUuICBQYXRjaCBieSBZYWtvdiBMZXJuZXIsIDIwMDYgTm92IDE4LgorCitSZWRyYXcgcHJvYmxlbSBpbiBsb29wLiAoWWFrb3YgTGVybmVyLCAyMDA2IFNlcCA3KQorCitBZGQgb3B0aW9uIHNldHRpbmdzIHRvIGhlbHAgZnRwbHVnaW4uIChEYXZpZCBFZ2d1bSwgMjAwNiBEZWMgMTgpCisKK1VzZSBuZXcgZHV0Y2ggd29yZGxpc3QgZm9yIHNwZWxsaW5nPyAgaHR0cDovL3d3dy5vcGVudGFhbC5vcmcvCitTZWUgcmVtYXJrcyBmcm9tIEFkcmksIDIwMDcgRmViIDkuCisKK1doZW4gb3BlbmluZyBxdWlja2ZpeCB3aW5kb3csIGRpc2FibGUgc3BlbGwgY2hlY2tpbmc/CisKK1dpbjMyOiBXaGVuICdlbmNvZGluZycgaXMgImxhdGluMSIgJ2lnbm9yZWNhc2UnIGRvZXNuJ3Qgd29yayBmb3IgY2hhcmFjdGVycword2l0aCB1bWxhdXQuIChKb2FjaGltIEhvZm1hbm4pICB0b3VwcGVyX3RhYltdIGFuZCB0b2xvd2VyX3RhYltdIGFyZSBub3QgZmlsbGVkCitwcm9wZXJseT8KKworQ29tcGxldGlvbjogU2Nhbm5pbmcgZm9yIHRhZ3MgZG9lc24ndCBjaGVjayBmb3IgdHlwZWQga2V5IG5vdyBhbmQgdGhlbj8KK0hhbmdzIGZvciBhYm91dCA1IHNlY29uZHMuICBBcHBlYXJzIHRvIGJlIGNhdXNlZCBieSBmaW5kaW5nIGluY2x1ZGUgZmlsZXMgd2l0aAorImZvby8qKiIgaW4gJ3BhdGgnLiAgKEthbGlzaWFrLCAyMDA2IEp1bHkgMTUpCisKK0NvbXBsZXRpb246IFdoZW4gJ2NvbXBsZXRlb3B0JyBoYXMgImxvbmdlc3QiIGFuZCB0aGVyZSBpcyBvbmUgbWF0Y2ggdGhlCittZXNzYWdlIGlzICJiYWNrIGF0IG9yaWdpbmFsIiBhbmQgdHlwaW5nIGEgY2hhciBkb2Vzbid0IGxlYXZlIGNvbXBsZXRpb24gbW9kZS4KKyhJZ29yIFByaXNjaGVwb2ZmLCAyMDA2IE9jdCA1KQorCitDb21wbGV0aW9uOiBXaGVuIHVzaW5nIENUUkwtWCBPIGFuZCB0aGVyZSBpcyBvbmx5ICJzdHJ1Y3QuIiBiZWZvcmUgdGhlIGN1cnNvciwKK3R5cGluZyBvbmUgY2hhciB0byByZWR1Y2UgdGhlIG1hdGNoZXMsIHRoZW4gQlMgY29tcGxldGlvbiBzdG9wcy4gIFNob3VsZCBrZWVwCitjb21wbGV0aW9uIGlmIHN0aWxsIG5vIGxlc3MgdGhhbiB3aGF0IHdlIHN0YXJ0ZWQgd2l0aC4KKworQ29tcGxldGlvbjogZG9uJ3Qgc3RvcCBjb21wbGV0aW9uIHdoZW4gdHlwaW5nIGEgc3BhY2Ugd2hlbiBjb21wbGV0aW5nIGZ1bGwKK2xpbmVzPyAgQWxzbyB3aGVuIGNvbXBsZXRpbmcgZmlsZSBuYW1lcz8gIE9ubHkgc3RvcCBjb21wbGV0aW9uIHdoZW4gdGhlcmUgYXJlCitubyBtYXRjaGVzPworQWZ0ZXIgdXNpbmcgQlMgY29tcGxldGlvbiBvbmx5IHN0b3BzIHdoZW4gdHlwaW5nIGEgc3BhY2UuICBNYW55IHBlb3BsZSB3YW50IHRvCitzdG9wIGF0IG5vbi13b3JkIGNoYXJhY3RlcnMsIGUuZy4sICcoJy4gIEFkZCBhbiBvcHRpb24gZm9yIHRoaXM/ICBPciBjaGVjawordmltX2lzd29yZGMoKSBiZWZvcmUgY2FsbGluZyBpbnNfY29tcGxfYWRkbGVhZGVyKCk/CisKK3NlYXJjaHBvcygpIGRvZXNuJ3QgdXNlIG1hdGNoIHVuZGVyIGN1cnNvciBhdCBzdGFydCBvZiBsaW5lLiAoVmlrdG9yCitLb2pvdWhhcm92LCAyMDA2IE5vdiAxNikKKworV2hlbiBGRUFUX0JZVEVPRkYgaXMgZGVmaW5lZCBidXQgRkVBVF9ORVRCRUFOU19JTlRHIGlzIG5vdCBjb21waWxpbmcgZmFpbHMuCitBZGQgRkVBVF9CWVRFT0ZGIHRvIHRoZSBjaGVjayBhdCBsaW5lIDExODAgaW4gZmVhdHVyZS5oCisKK0NvbG9yIGZvciBjVXNlckxhYmVsIHNob3VsZCBkaWZmZXIgZnJvbSBjYXNlIGxhYmVsLCBzbyB0aGF0IGEgbWlzdGFrZSBpbiBhCitzd2l0Y2ggbGlzdCBpcyBub3RpY2VkOgorICAgIHN3aXRjaCAoaSkKKyAgICB7CisgICAgY2FzZSAxOgorICAgIGZvb2JhcjoKKyAgICB9CisKKyI6cyIgY29tbWFuZCByZW1vdmVzIGNvbWJpbmluZyBjaGFyYWN0ZXJzLiAoUm9uIEFhcm9uLCAyMDA2IE1heSAxNywgMjAwNiBEZWMgNykKKworTG9vayBhdCBodHRwOi8vd3d3Lmd0ay1zZXJ2ZXIub3JnLyAuICBJdCBoYXMgYSBWaW0gc2NyaXB0IGltcGxlbWVudGF0aW9uLgorCitDaGFuZ2VzIGZvciBXaW4zMiBtYWtlZmlsZS4gKE1pa2UgV2lsbGlhbXMsIDIwMDcgSmFuIDIyLCBBbGV4ZWkgQWxleGFuZHJvdiwKKzIwMDcgRmViIDgpCisKK1BhdGNoIGZvciBXaW4zMiBjbGlwYm9hcmQgdW5kZXIgQ3lnd2luLiAoRnJvZGFrIEJha3NpaywgRmViIDE1KQorICAgIFN1dGNsaWZmZSBzYXlzIGl0IHdvcmtzIHdlbGwuCisKK1dpbjMyOiBQYXRjaCBmb3IgY29udmVydF9maWx0ZXJXKCkuIChUYXJvIE11cmFva2EsIDIwMDcgTWFyIDIpCisKK1dpbjMyOiBYUE0gc3VwcG9ydCBvbmx5IHdvcmtzIHdpdGggcGF0aCB3aXRob3V0IHNwYWNlcy4gIFBhdGNoIGJ5IE1hdGhpYXMKK01pY2hhZWxpcywgMjAwNiBKdW4gOS4gIEFub3RoZXIgcGF0Y2ggZm9yIG1vcmUgcGF0aCBuYW1lcywgMjAwNiBNYXkgMzEuCitOZXcgdmVyc2lvbjogaHR0cDovL21lbWJlcnMudGNuZXQuY2gvbWljaGFlbGlzL3ZpbS9wYXRjaGVzLnppcCAoYWxzbyBmb3Igb3RoZXIKK3BhdGNoZXMgYnkgTWF0aGlhcywgc2VlIG1haWwgRmViIDIyKQorCitXaW4zMjogY29tcGlsaW5nIHdpdGggbm9ybWFsIGZlYXR1cmVzIGFuZCBPTEUgZmFpbHMuICBQYXRjaCBieSBNYXRoaWFzCitNaWNoYWVsaXMsIDIwMDYgSnVuIDQuCisKK1dpbjMyOiBlY2hvIGRvZXNuJ3Qgd29yayBmb3IgZ3ZpbS5leGUubW5mLiAgVXNlIGlubGluZSBmaWxlLiAgUGF0Y2ggYnkgTWF0aGlhcworTWljaGFlbGlzLiAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvdmltZGV2L21lc3NhZ2UvNDM3NjUKK1BhdGNoIHRoYXQgaW5jbHVkZXMgdGhpcyBhbmQgZG9lcyBtb3JlIGJ5IEdlb3JnZSBSZWlsbHksIDIwMDcgRmViIDEyCisKK1dpbjE2OiBpbmNsdWRlIHBhdGNoZXMgdG8gbWFrZSBXaW4xNiB2ZXJzaW9uIHdvcmsuIChWaW5jZSBOZWdyaSwgMjAwNiBNYXkgMjIpCisKK1dpbjMyOiBhZnRlciAiW0kiIHNob3dpbmcgbWF0Y2hlcywgc2Nyb2xsIHdoZWVsIG1lc3NlcyB1cCBzY3JlZW4uIChUc2FraXJpZGlzLAorMjAwNyBGZWIgMTgpCisKK1dpbjMyOiB1c2luZyBDVFJMLVMgaW4gSW5zZXJ0IG1vZGUgZG9lc24ndCByZW1vdmUgdGhlICIrIiBmcm9tIHRoZSB0YWIgcGFnZXMKK2xhYmVsLiAgKFRzYWtpcmlkaXMsIDIwMDcgRmViIDE4KQorCitXaW4zMjogcmVtb3RlIGVkaXRpbmcgZG9lc24ndCB3b3JrIHdoZW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMKKyJbXSIuIChJdmFuIFRpc2hjaGVua28sIDIwMDcgTWFyY2ggMSkKKworV2luNjQ6IGRpZmYuZXhlIGNyYXNoZXMgb24gV2luNjQuIChKdWxpYW5uZSBCYWlsZXksIDIwMDYgRGVjIDEyKQorQnVpbGQgYW5vdGhlciBkaWZmLmV4ZSBzb21laG93PworCitXaW42NDogU2VlayBlcnJvciBpbiBzd2FwIGZpbGUgZm9yIGEgdmVyeSBiaWcgZmlsZSAoMyBHYnl0ZSkuICBDaGVjayBzdG9yaW5nCitwb2ludGVyIGluIGxvbmcgYW5kIHNlZWsgb2Zmc2V0IGluIDY0IGJpdCB2YXIuCisKK1doZW4gZG9pbmcgImd2aW0gLS1yZW1vdGUtdGFiIGZvbyIgd2hpbGUgZ3ZpbSBpcyBtaW5pbWl6ZWQgdGhlIHRhYiBwYWdlcyBsaW5lCitvbmx5IHNob3dzIHRoZSBjdXJyZW50IGxhYmVsLCBub3QgdGhlIG90aGVycy4KKworUHJvYmxlbSBmaW5kaW5nIHN3YXAgZmlsZSBmb3IgcmVjb3ZlcnkuIChHYXV0YW0gSXllciwgMjAwNiBNYXkgMTYpCisKK1doZW4gc2V0dGluZyAna2V5bWFwJyB0d2ljZSB0aGUgYjprZXltYXBfbmFtZSB2YXJpYWJsZSBpc24ndCBzZXQuIChNaWxhbgorQmVydGEsIDIwMDcgTWFyIDkpICBIYXMgc29tZXRoaW5nIHRvIGRvIHdpdGggJ2ltaW5zZXJ0Jy4KKworUHJvYmxlbSB3aXRoIEN1cnNvckhvbGRJPyAgKE1heCBEeWNraG9mZiwgMjAwNiBOb3YgMTApCisKK1VURi04OiBtYXBwaW5nIGEgbXVsdGktYnl0ZSBrZXkgd2hlcmUgdGhlIHNlY29uZCBieXRlIGlzIDB4ODAgZG9lc24ndCBhcHBlYXIKK3RvIHdvcmsuIChUb255IE1lY2hlbHluY2ssIDIwMDcgTWFyY2ggMikKKworVGhlIHN0cjJzcGVjaWFsKCkgZnVuY3Rpb24gZG9lc24ndCBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHByb3Blcmx5LgorUGF0Y2ggZnJvbSBWbGFkaW1pciBWaWNobmlha292LCAyMDA3IEFwciAyNC4KK2ZpbmRfc3BlY2lhbF9rZXkoKSBhbHNvIGhhcyB0aGlzIHByb2JsZW0uCisKK0luIGRlYnVnIG1vZGUsIHVzaW5nIENUUkwtUiA9IHRvIGV2YWx1YXRlIGEgZnVuY3Rpb24gY2F1c2VzIHN0ZXBwaW5nIHRocm91Z2gKK3RoZSBmdW5jdGlvbi4gKEhhcmkgS3Jpc2huYSBEYXJhLCAyMDA2IEp1biAyOCkKKworIjpsZXQgJnNoaWZ0d2lkdGggPSAnYXNkZiciIGRvZXNuJ3QgcHJvZHVjZSBhbiBlcnJvciBtZXNzYWdlLgorCitDKysgaW5kZW50aW5nIHdyb25nIHdpdGggIj0iLiAoSmFtZXMgS2FuemUsIDIwMDcgSmFuIDI2KQorCisienVnIiByZXBvcnRzIHdyb25nIGZpbGUuIHByb2JsZW0gd2l0aCBOYW1lYnVmZj8gKExhd3JlbmNlIEtlc3RlbG9vdCwgMjAwNiBTZXAKKzEwKQorCisiOmxvY2t2YXIiIHNob3VsZCB1c2UgY29weUlEIHRvIGF2b2lkIGVuZGxlc3MgbG9vcC4KKworR3ZpbTogZGlhbG9nIGZvciBjbG9zaW5nIFZpbSBzaG91bGQgY2hlY2sgaWYgVmltIGlzIGJ1c3kgd3JpdGluZyBhIGZpbGUuICBUaGVuCit1c2UgYSBkaWZmZXJlbnQgZGlhbG9nOiAiYnVzeSBzYXZpbmcsIHJlYWxseSBxdWl0PyB5ZXMgLyBubyIuCisKK1dpbjMyOiBlZGl0aW5nIHJlbW90ZSBmaWxlIGQ6XGFbMV1cYWEudHh0IGRvZXNuJ3Qgd29yay4gKExpdSBZdWJhbywgMjAwNiBNYXkKKzI5KQorCisienciIGRvZXNuJ3QgYXBwZWFyIHRvIHdvcmsuIChMdWlzIEEgRmxvcml0LCAyMDA2IEp1biAyMywgMjQpCisKKyJkdyIgaW4gYSBsaW5lIHdpdGggb25lIGNoYXJhY3RlciBkZWxldGVzIHRoZSBsaW5lLiAgVmkgYW5kIG52aSBkb24ndCBkbyB0aGlzLgorSXMgaXQgaW50ZW50aW9uYWwgb3Igbm90PyAoS2plbGwgQXJuZSBSZWthYSkKKworQ2hlY2sgb3RoZXIgaW50ZXJmYWNlcyBmb3IgY2hhbmdpbmcgY3VyYnVmIGluIGEgd3Jvbmcgd2F5LiAgUGF0Y2ggbGlrZSBmb3IKK2lmX3J1YnkuYy4KKworU3BlbGwgY2hlY2tpbmcgaW4gcG9wdXAgbWVudTogSWYgdGhlIG9ubHkgcHJvYmxlbSBpcyB0aGUgY2FzZSBvZiB0aGUgZmlyc3QKK2NoYXJhY3RlciwgZG9uJ3Qgb2ZmZXIgImlnbm9yZSIgYW5kICJhZGQgdG8gd29yZCBsaXN0Ii4KKworIjpoZWxwZ3JlcCIgc2hvdWxkIHVzZSB0aGUgZGlyZWN0b3J5IGZyb20gJ2hlbHBmaWxlJy4KKworVGhlIG5lZWRfZmlsZWluZm8gZmxhZyBpcyBtZXNzeS4gIEluc3RlYWQgbWFrZSB0aGUgbWVzc2FnZSByaWdodCBhd2F5IGFuZCBwdXQKK2l0IGluIGtlZXBfbXNnPworCitNb3JlLXByb21wdCBpcyBza2lwcGVkIHdoZW4gZG9pbmcgdGhpczsgKFJhbmRhbGwgVy4gTW9ycmlzLCBKdW4gMTcpCisgICAgOmF1CisgICAgPFNwYWNlPgorICAgIGIKKyAgICA8U3BhY2U+CisKK0VkaXRpbmcgYSBmaWxlIHJlbW90ZWx5IHRoYXQgbWF0Y2hlcyAnd2lsZGlnbm9yZScgcmVzdWx0cyBpbiBhICJubyBtYXRjaCIKK2Vycm9yLiAgU2hvdWxkIG9ubHkgaGFwcGVuIHdoZW4gdGhlcmUgYXJlIHdpbGRhcmRzLCBub3Qgd2hlbiBnaXZpbmcgdGhlIGZpbGUKK25hbWUgbGl0ZXJhbGx5LCBhbmQgZXNwLiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBuYW1lLgorCitXaGVuICdleHBhbmR0YWInIGlzIHNldCB0aGVuIGEgVGFiIGNvcGllZCBmb3IgJ2NvcHlpbmRlbnQnIGlzIGV4cGFuZGVkIHRvCitzcGFjZXMsIGV2ZW4gd2hlbiAncHJlc2VydmVpbmRlbnQnIGlzIHNldC4gKEFsZXhlaSBBbGV4YW5kcm92LCBNYXIgNykKKwogVGVzdCA2MSBmYWlscyBzb21ldGltZXMuICBUaGlzIGlzIGEgdGltaW5nIHByb2JsZW06ICJzbGVlcCAyIiBzb21ldGltZXMgdGFrZXMKIGxvbmdlciB0aGFuIDIgc2Vjb25kcy4KIAorVk1TOiB3aGlsZSBlZGl0aW5nIGEgZmlsZSBmb3VuZCBpbiBjb21wbGV4LCBWaW0gd2lsbCBzYXZlIGZpbGUgaW50byB0aGUgZmlyc3QKK2RpcmVjdG9yeSBvZiB0aGUgcGF0aCBhbmQgbm90IHRvIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgZmlsZS4KKyhab2x0YW4gQXJwYWRmZnkpCisKK2lucHV0KCkgY29tcGxldGlvbiBzaG91bGQgbm90IGluc2VydCBhIGJhY2tzbGFzaCB0byBlc2NhcGUgYSBzcGFjZSBpbiBhIGZpbGUKK25hbWU/CisKK2dldHBvcygpL3NldHBvcygpIGRvbid0IGluY2x1ZGUgY3Vyc3dhbnQuICBnZXRwb3MoKSBjb3VsZCByZXR1cm4gYSBmaWZ0aAorZWxlbWVudC4gIHNldHBvcygpIGNvdWxkIGFjY2VwdCBhbiBvcHRpb25hbCBmaWZ0aCBlbGVtZW50LgorCitSdWJ5IGNvbXBsZXRpb24gaXMgaW5zZWN1cmUuICBDYW4gdGhpcyBiZSBmaXhlZD8KKworIjpjb25maXJtIHciIGRvZXMgZ2l2ZSBhIHByb21wdCB3aGVuICdyZWFkb25seScgaXMgc2V0LCBidXQgbm90IHdoZW4gdGhlIGZpbGUKK3Blcm1pc3Npb25zIGFyZSByZWFkLW9ubHkuICBCb3RoIGNhbiBiZSBvdmVycnVsZWQgYnkgIjp3ISIgdGh1cyBpdCB3b3VsZCBiZQorbG9naWNhbCB0byBnZXQgYSBwcm9tcHQgZm9yIGJvdGguIChNaWNoYWVsIFNjaGFhcCkKKworV2hlbiAnYmFja3Vwc2tpcCcgaXMgc2V0IGZyb20gJFRFTVAgc3BlY2lhbCBjaGFyYWN0ZXJzIG5lZWQgdG8gYmUgZXNjYXBlZC4KKyhwYXRjaCBieSBHcmVtYm93aWV0eiwgMjAwNyBGZWIgMjYsIG5vdCBxdWl0ZSByaWdodCkKK0Fub3RoZXIgcHJvYmxlbSBpcyB0aGF0IGZpbGVfcGF0X3RvX3JlZ19wYXQoKSBkb2Vzbid0IHJlY29nbml6ZSAiXFwiLCBzbyAiXFwoIiAKK3dpbGwgYmUgc2VlbiBhcyBhIHBhdGggc2VwYXJhdG9yIHBsdXMgIlwoIi4KKworIjpweXRob24gb3MuY2hkaXIoJy90bXAnKSIgbWFrZXMgc2hvcnQgYnVmZmVyIG5hbWVzIGludmFsaWQuIChYYXZpZXIgZGUgR2F5ZSkKK0NoZWNrIGRpcmVjdG9yeSBhbmQgY2FsbCBzaG9ydGVuX2ZuYW1lcygpPworCithdWNtZF9wcmVwYnVmKCkgc2hvdWxkIGFsc28gdXNlIGEgd2luZG93IGluIGFub3RoZXIgdGFiIHBhZ2UuCisKK1N1YnN0aXR1dGluZyBhbiBhcmVhIHdpdGggYSBsaW5lIGJyZWFrIHdpdGggYWxtb3N0IHRoZSBzYW1lIGFyZWEgZG9lcyBjaGFuZ2UKK3RoZSBWaXN1YWwgYXJlYS4gIENhbiB0aGlzIGJlIGZpeGVkPyAoSmFtZXMgVmVnYSwgMjAwNiBTZXB0IDE1KQorCitXaW5kb3dzIGluc3RhbGxlciBjb3VsZCBhZGQgYSAib3BlbiBpbiBuZXcgdGFiIG9mIGV4aXN0aW5nIFZpbSIgbWVudSBlbnRyeS4KKworOnMvZS9FL2wgbm90IG9ubHkgbGlzdHMgYnV0IGFsc28gc2hvd3MgbGluZSBudW1iZXIuICBJcyB0aGF0IHJpZ2h0PworKFlha292IExlcm5lciwgMjAwNiBKdWwgMjcpCisKK0dVSTogV2hlbiBjb21iaW5pbmcgZmcgZW4gYmcgbWFrZSBzdXJlIHRoZXkgYXJlIG5vdCBlcXVhbC4KKworVXNlIGRpZmZlcmVudCBwdF9iciBkaWN0aW9uYXJ5IGZvciBzcGVsbCBjaGVja2luZy4gKEphY2tzb24gQS4gQXF1aW5vLCAyMDA2CitKdW4gNSkKKworTWFjOiBVc2luZyBndmltOiBuZXRydyB3aW5kb3cgZGlzYXBwZWFycy4gKE5pY2sgTG8sIDIwMDYgSnVuIDIxKQorCitXaGVuICdib21iJyBpcyBzZXQgb3IgcmVzZXQgdGhlIGZpbGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgbW9kaWZpZWQuIChUb255CitNZWNoZWx5bmNrKSAgSGFuZGxlIGxpa2UgJ2VuZG9mbGluZScuCisKK0FkZCBhbiBvcHRpb24gdG8gc3BlY2lmeSB0aGUgY2hhcmFjdGVyIHRvIHVzZSB3aGVuIGEgZG91YmxlLXdpZHRoIGNoYXJhY3RlciBpcworbW92ZWQgdG8gdGhlIG5leHQgbGluZS4gIERlZmF1bHQgJz4nLCBzZXQgdG8gYSBzcGFjZSB0byBibGFuayBpdCBvdXQuICBDaGVjawordGhhdCBjaGFyIGlzIHNpbmdsZSB3aWR0aCB3aGVuIGl0J3Mgc2V0IChjb21wYXJlIHdpdGggJ2xpc3RjaGFycycpLgorCitVcGRhdGUgbWFpbi5hYXAgZm9yIGluc3RhbGxpbmcgb24gdGhlIE1hYy4KKworVGhlIGdlbmVyYXRlZCB2aW0uYmF0IGNhbiBhdm9pZCB0aGUgbG9vcCBmb3IgTlQuIChDYXJsIFptb2xhLCAyMDA2IFNlcCAzKQorCitTZXNzaW9uIGZpbGUgY3JlYXRpb246ICdhdXRvY2hkaXInIGNhdXNlcyB0cm91YmxlLiAgS2VlcCBpdCBvZmYgdW50aWwgYWZ0ZXIKK2xvYWRpbmcgYWxsIGZpbGVzLgorCitDIGNvbXBsZXRpb246IGRvZXNuJ3Qgd29yayBhZnRlciBhYVswXS0+LCB3aGVyZSBhYSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3R1cmVzLgorKFcuIGRlIEhvb2csIDIwMDYgQXVnIDEyKQorCitUaGUgc3BlbGxmaWxlIHBsdWdpbiBjaGVja3MgZm9yIGEgd3JpdGFibGUgInNwZWxsIiBkaXJlY3RvcnkuICBBIHVzZXIgbWF5IGhhdmUKK2Egd3JpdGFibGUgcnVudGltZSBkaXJlY3Rvcnkgd2l0aG91dCBhICJzcGVsbCIgZGlyZWN0b3J5LCBpdCBjb3VsZCBiZSBjcmVhdGVkCit0aGVuLgorCitUaGVzZSB0d28gYWJicmV2aWF0aW9ucyBkb24ndCBnaXZlIHRoZSBzYW1lIHJlc3VsdDoKKwlsZXQgYXNkZmFzZGYgPSAieHl6XDxMZWZ0PiIKKwljYWJiciBYWFggPEMtUj49YXNkZmFzZGY8Q1I+CisJY2FiYnIgWVlZIHh5ejxMZWZ0PgorCitNaWNoYWVsIERpZXRyaWNoOiBtYXhpbWl6ZWQgZ3ZpbSBzb21ldGltZXMgZGlzcGxheXMgb3V0cHV0IG9mIGV4dGVybmFsIGNvbW1hbmQKK3BhcnRseS4gKDIwMDYgRGVjIDcpCisKK0luIEZpbGVDaGFuZ2VkU2hlbGwgY29tbWFuZCBpdCdzIG5vIGxvbmdlciBhbGxvd2VkIHRvIHN3aXRjaCB0byBhbm90aGVyCitidWZmZXIuICBCdXQgdGhlIGNoYW5nZWQgYnVmZmVyIG1heSBkaWZmZXIgZnJvbSB0aGUgY3VycmVudCBidWZmZXIsIGhvdyB0bworcmVsb2FkIGl0IHRoZW4/CisKK05ldyBzeW50YXggZmlsZXMgZm9yIGZzdGFiIGFuZCByZXNvbHYgZnJvbSBSYWR1IERpbmVpdSwgRGF2aWQgTmVjYXMgZGlkCitwcmV2aW91cyB2ZXJzaW9uLgorCitGb3IgQWFwOiBpbmNsdWRlIGEgY29uZmlnLmFyZy5leGFtcGxlIGZpbGUgd2l0aCBoaW50cyBob3cgdG8gdXNlIGNvbmZpZy5hcmcuCisKK0xpbnV4IGRpc3RyaWJ1dGlvbnM6CistIFN1Z2dlc3QgY29tcGlsaW5nIHh0ZXJtIHdpdGggLS1lbmFibGUtdGNhcC1xdWVyeSwgc28gdGhhdCBuciBvZiBjb2xvcnMgaXMKKyAga25vd24gdG8gVmltLiAgODggY29sb3JzIGluc3RlYWQgb2YgMTYgd29ya3MgYmV0dGVyLiAgU2VlICI6aGVscAorICB4ZnJlZS14dGVybSIuCistIFN1Z2dlc3QgaW5jbHVkaW5nIGJhcmUgInZpIiBhbmQgInZpbSIgd2l0aCBYMTEsIHN5bnRheCwgZXRjLgorCitDb21wbGV0aW9uIG1lbnU6IEZvciBhIHdyYXBwaW5nIGxpbmUsIGNvbXBsZXRpbmcgYSBsb25nIGZpbGUgbmFtZSwgb25seSB0aGUKK3N0YXJ0IG9mIHRoZSBwYXRoIGlzIHNob3duIGluIHRoZSBtZW51LiAgU2hvdWxkIG1vdmUgdGhlIG1lbnUgdG8gdGhlIHJpZ2h0IHRvCitzaG93IG1vcmUgdGV4dCBvZiB0aGUgY29tcGxldGlvbnMuICBTaG9ydGVuIHRoZSBpdGVtcyB0aGF0IGRvbid0IGZpdCBpbiB0aGUKK21pZGRsZT8KKworV2hlbiBydW5uaW5nIGluc2lkZSBzY3JlZW4gaXQncyBwb3NzaWJsZSB0byBraWxsIHRoZSBYIHNlcnZlciBhbmQgcmVzdGFydCBpdAorKHVzaW5nIHB0eSdzIHRoZSBwcm9ncmFtIGNhbiBrZWVwIG9uIHJ1bm5pbmcpLiAgVmltIGRpZXMgYmVjYXVzZSBpdCBsb29zZXMgdGhlCitjb25uZWN0aW9uIHRvIHRoZSBYIHNlcnZlci4gIENhbiBWaW0gc2ltcGx5IHF1aXQgdXNpbmcgdGhlIFggc2VydmVyIGluc3RlYWQgb2YKK2R5aW5nPyAgQWxzbyByZWxldmFudCB3aGVuIHJ1bm5pbmcgaW4gYSBjb25zb2xlLgorCitBY2Nlc3NpbmcgZmlsZSN2YXIgaW4gYSBmdW5jdGlvbiBzaG91bGQgbm90IG5lZWQgdGhlIGc6IHByZXBlbmRlZC4KKworV2hlbiAiOmNuIiBtb3ZlcyB0byBhbiBlcnJvciBpbiB0aGUgc2FtZSBsaW5lIHRoZSBtZXNzYWdlIGlzbid0IHNob3J0ZW5lZC4KK09ubHkgc2tpcCBzaG9ydGVuaW5nIGZvciAiOmNjIj8KKworV2luMzI6IFRoZSBtYXRjaHBhcmVuIHBsdWdpbiBkb2Vzbid0IHVwZGF0ZSB0aGUgbWF0Y2ggd2hlbiBzY3JvbGxpbmcgd2l0aCB0aGUKK21vdXNlIHdoZWVsLiAoSWx5YSBCb2JpciwgMjAwNiBKdW4gMjcpCisKK1dyaXRlICJtYWtpbmcgdmltIHdvcmsgYmV0dGVyIiBmb3IgdGhlIGRvY3MgKG1vc3RseSBwb2ludGVycyk6ICpuaWNlKgorICAgIC0gc291cmNpbmcgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKyAgICAtIHNldHRpbmcgJ21vdXNlJyB0byAiYSIKKyAgICAtIGdldHRpbmcgY29sb3JzIGluIHh0ZXJtCisgICAgLSBjb21waWxpbmcgVmltIHdpdGggWDExLCBHVUksIGV0Yy4KKworUHJvYmxlbSB3aXRoICI6Y2FsbCIgYW5kIGRpY3Rpb25hcnkgZnVuY3Rpb24uIEhhcmkgS3Jpc2huYSBEYXJhLCBDaGFybGVzCitDYW1wYmVsbCAyMDA2IEp1bCAwNi4KKworU3ludGF4IEhMIGVycm9yIGNhdXNlZCBieSAiY29udGFpbmVkaW4iLiAoUGV0ZXIgSG9kZ2UsIDIwMDYgT2N0IDYpCisKK0dUSzogV2hlbiBtYXhpbWl6aW5nIFZpbSB0aGUgcmVzdWx0IGlzIHNsaWdodGx5IHNtYWxsZXIsIHRoZSBmaWxsZXIgYm9yZGVyIGlzCitub3QgdGhlcmUsIGFuZCB0aGUgIm1heGltaXplIiBidXR0b24gaXMgc3RpbGwgdGhlcmUuICBDbGlja2luZyBpdCBhZ2FpbiBkb2VzCitnaXZlIGEgbWF4aW1pemVkIHdpbmRvdy4gKERhcnJlbiBIaWViZXJ0KQorUHJvYmxlbSBpcyB0aGF0IGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MoKSBpcyBpbnZva2VkIHRvIGNoYW5nZSB0aGUgdGV4dCBhcmVhCitzaXplLCB3aGljaCBjYXVzZXMgdGhlIHRvcGxldmVsIHdpbmRvdyB0byByZXNpemUuICBXaGVuIGRvaW5nIHRoaXMgd2hpbGUgdGhlCitzaXplIGlzIGFscmVhZHkgcmlnaHQgdGhlIGZpbGxlciByZW1haW5zIHRoZXJlLgorRGV0ZWN0IHVzaW5nIHRoZSBtYXhpbWl6ZSBidXR0b24gKEdka1dpbmRvd1N0YXRlIGJpdAorR0RLX1dJTkRPV19TVEFURV9NQVhJTUlaRUQpIGFuZCBzZXQgaXQgYWdhaW4/CisKK0Fub3RoZXIgcmVzaXppbmcgcHJvYmxlbSB3aGVuIHNldHRpbmcgJ2NvbHVtbnMnIGFuZCAnbGluZXMnIHRvIGEgdmVyeSBsYXJnZQorbnVtYmVyLiAoVG9ueSBNZWNoZWx5bmNrLCAyMDA3IEZlYiA2KQorCitNdXR0IGZpbGVzIGFyZSBub3QgYWx3YXlzIHJlY29nbml6ZWQuICBDaGFuZ2UgcGF0dGVybiB0byBpbmNsdWRlCitub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIChHYXJ5IEpvaG5zb24sIDIwMDYgSnVsIDI1KQorCitQcm9ibGVtIHdpdGggdXNpbmcgOnJlZGlyIGluIHVzZXIgY29tbWFuZCBjb21wbGV0aW9uIGZ1bmN0aW9uPyAoSGFyaSBLcmlzaG5hCitEYXJhLCAyMDA2IEp1bmUgMjEpCisKK0FmdGVyIHN0YXJ0aW5nIFZpbSwgdXNpbmcgJzAgdG8ganVtcCBzb21ld2hlcmUgaW4gYSBmaWxlLCAiOnNwIiBkb2Vzbid0IGNlbnRlcgordGhlIGN1cnNvciBsaW5lLiAgSXQgd29ya3MgT0sgYWZ0ZXIgc29tZSBvdGhlciBjb21tYW5kcy4KKworU2NyZWVuIHJlZHJhd2luZyB3aGVuIGNvbnRpbnVvdXNseSB1cGRhdGluZyB0aGUgYnVmZmVyIGFuZCByZXNpemluZyB0aGUKK3Rlcm1pbmFsLiAoWWFrb3YgTGVybmVyLCAyMDA2IFNlcHQgNykKKworV2luMzI6IElzIGl0IHBvc3NpYmxlIHRvIGhhdmUgYm90aCBwb3N0c2NyaXB0IGFuZCBXaW4zMiBwcmludGluZz8KK0RvZXMgbXVsdGktYnl0ZSBwcmludGluZyB3aXRoICI6aGFyZGNvcHkiIHdvcms/ICBBZGQgcmVtYXJrIGluIGRvY3VtZW50YXRpb24KK2Fib3V0IHRoaXMuCisKKyd0aGVzYXVydXMnIGRvZXNuJ3Qgd29yayB3aGVuICdpbmZlcmNhc2UnIGlzIHNldC4gKE1vaHNpbiwgMjAwNiBNYXkgMzApCisKK1RoZXJlIHNob3VsZCBiZSBzb21ldGhpbmcgYWJvdXQgc3BlbGwgY2hlY2tpbmcgaW4gdGhlIHVzZXIgbWFudWFsLgorCitDaGVjazogUnVubmluZyBWaW0gaW4gYSBjb25zb2xlIGFuZCBzdGlsbCBoYXZpbmcgY29ubmVjdCB0byB0aGUgWCBzZXJ2ZXIgZm9yCitjb3B5L3Bhc3RlOiBpcyBzdG9wcGluZyB0aGUgWCBzZXJ2ZXIgaGFuZGxlZCBncmFjZWZ1bGx5PyAgU2hvdWxkIGNhdGNoIHRoZSBYCitlcnJvciBhbmQgc3RvcCB1c2luZyB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyLgorCitQcm9ibGVtIHdpdGggJ2NkcGF0aCcgb24gTVMtV2luZG93cyB3aGVuIGEgZGlyZWN0b3J5IGlzIGVxdWFsIHRvICRIT01FLiAoMjAwNgorSnVsIDI2LCBHYXJ5IEpvaG5zb24pCisKK0luIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UgYWRkIGEgInZpbWV2YWwiIGZ1bmN0aW9uLCBzbyB0aGF0IHRoZSBvdGhlciBzaWRlIGNhbgorY2hlY2sgdGhlIHJlc3VsdCBvZiBoYXMoInBhdGNoMTMiKS4KKworIjpweSIgYXNrcyBmb3IgYW4gYXJndW1lbnQsICI6cHkgYXNkIiB0aGVuIGdpdmVzIHRoZSBlcnJvciB0aGF0ICI6cHkiIGlzbid0CitpbXBsZW1lbnRlZC4gIFNob3VsZCBhbHJlYWR5IGhhcHBlbiBmb3IgIjpweSIuCisKK0FkZCBjb21tYW5kIG1vZGlmaWVyIHRoYXQgc2tpcHMgd2lsZGNhcmQgZXhwYW5zaW9uLCBzbyB0aGF0IHlvdSBkb24ndCBuZWVkIHRvCitwdXQgYmFja3NsYXNoZXMgYmVmb3JlIHNwZWNpYWwgY2hhcnMsIG9ubHkgZm9yIHdoaXRlIHNwYWNlLgorCitXaW4zMiBHVUk6IGNvbmZpcm0oKSB3aXRoIHplcm8gZGVmYXVsdCBzaG91bGQgbm90IGhhdmUgYSBjaG9pY2Ugc2VsZWN0ZWQuCisKK1dpbjMyOiBXaGVuIHRoZSBHVUkgdGFiIHBhZ2VzIGxpbmUgaXMgZGlzcGxheWVkIFZpbSBqdW1wcyBmcm9tIHRoZSBzZWNvbmRhcnkKK3RvIHRoZSBwcmltYXJ5IG1vbml0b3IuIChBZnRvbiBMZXdpcywgMjAwNyBNYXIgOSkgIE9sZCByZXNpemluZyBwcm9ibGVtPworCitHVEsgR1VJOiBXaGVuIHRoZSBjb21wbGV0aW9uIHBvcHVwIG1lbnUgaXMgdXNlZCBzY3JvbGxpbmcgYW5vdGhlciB3aW5kb3cgYnkKK3RoZSBzY3JvbGxiYXIgaXMgT0ssIGJ1dCB1c2luZyB0aGUgc2Nyb2xsIHdoZWVsIGl0IGJlaGF2ZXMgbGluZSA8RW50ZXI+LgorCisiY2l0IiB1c2VkIG9uIDxmb28+PC9mb28+IGRlbGV0ZXMgPGZvbz4uICBTaG91bGQgbm90IGRlbGV0ZSBhbnl0aGluZyBhbmQgc3RhcnQKK2luc2VydGlvbiwgbGlrZSAiY2knIiBkb2VzIG9uICIiLiAoTWljaGFsIEJvem9uKQorCitBbGxvdyBtb3JlIHRoYW4gMyAiOm1hdGNoIiBpdGVtcy4KKworVGhlIG1hZ2ljIGNsaXBib2FyZCBmb3JtYXQgIlZpbUNsaXBib2FyZDIiIGFwcGVhcnMgaW4gc2V2ZXJhbCBwbGFjZXMuICBTaG91bGQKK2JlIG9ubHkgb25lLgorCitJdCdzIGRpZmZpY3VsdCB0byBkZWJ1ZyBudW1iZXJlZCBmdW5jdGlvbnMgKGZ1bmN0aW9uIGluIGEgRGljdGlvbmFyeSkuICBQcmludAordGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIHJlc29sdmluZyBpdCB0byBhIG51bWJlcj8KKwlsZXQgZCA9IHt9CisJZnVuISBkLmZvbygpCisJICBlY2hvICJoZXJlIgorCWVuZGZ1bgorCWNhbGwgZC5mb28oOSkKKworQWRkIGEgbWFyayBmb3IgdGhlIG90aGVyIGVuZCBvZiB0aGUgVmlzdWFsIGFyZWEgKFZJc3VhbCBwb3MpLiAgJzwgYW5kICc+IGFyZQorb25seSBzZXQgYWZ0ZXIgVmlzdWFsIG1vZGVkIGlzIGVuZGVkLgorCitTbWFsbCBwcm9ibGVtIGRpc3BsYXlpbmcgZGlmZiBmaWxsZXIgbGluZSB3aGVuIG9wZW5pbmcgd2luZG93cyB3aXRoIGEgc2NyaXB0LgorKERhdmlkIEx1eWVyLCAyMDA3IE1hciAxIH4vTWFpbC9vbGRtYWlsL21vb2wvaW4uMTU4NzIgKQorCitXaGVuIHBhdHRlcm4gZm9yICI6c29ydCIgaXMgZW1wdHksIHVzZSBsYXN0IHNlYXJjaCBwYXR0ZXJuLiAgQWxsb3dzIHRyeWluZyBvdXQKK3RoZSBwYXR0ZXJuIGZpcnN0LiAoQnJpYW4gTWNLZWUpCisKK0lzIGl0IGFsbG93ZWQgdGhhdCAnYmFja3VwZXh0JyBpcyBlbXB0eT8gIFByb2JsZW1zIHdoZW4gYmFja3VwIGlzIGluIHNhbWUgZGlyCithcyBvcmlnaW5hbCBmaWxlPyAgSWYgaXQncyBPSyBkb24ndCBjb21wYXJlIHdpdGggJ3BhdGNobW9kZScuIChUaGllcnJ5IENsb3NlbikKKworUGF0Y2ggZm9yIHN1cHBvcnRpbmcgY291bnQgYmVmb3JlIENSIGluIHF1aWNrZml4IHdpbmRvdy4gKEFPWUFNQSBTaG90YXJvLCAyMDA3CitKYW4gMSkKKworUGF0Y2ggZm9yIGFkZGluZyAiOmxzY3Njb3BlIi4gKE5hdmRlZXAgUGFyaGFyLCAyMDA3IEFwciAyNjsgdXBkYXRlIEFwciAyOCkKKworUGF0Y2ggZm9yIGltcHJvdmluZyByZWdleHAgc3BlZWQgYnkgbm90IGZyZWVpbmcgbWVtb3J5LiAoQWxleGVpIEFsZXhhbmRyb3YsCisyMDA3IEZlYiA2KQorCit4dGVybSBzaG91bGQgYmUgYWJsZSB0byBwYXNzIGZvY3VzIGNoYW5nZXMgdG8gVmltLCBzbyB0aGF0IFZpbSBjYW4gY2hlY2sgZm9yCitidWZmZXJzIHRoYXQgY2hhbmdlZC4gIFBlcmhhcHMgaW4gbWlzYy5jLCBmdW5jdGlvbiBzZWxlY3R3aW5kb3coKS4KK1h0ZXJtIDIyNCBzdXBwb3J0cyBpdCEKKworT21uaSBjb21wbGV0aW9uIHRha2VzIHRoZSB3cm9uZyBzdHJ1Y3R1cmUgZm9yIHZhcmlhYmxlIGFyZ3VtZW50cy4gKEJpbGwKK01jQ2FydGh5LCAyMDA3IEZlYiAxOCkKKworV2hlbiBjb21wbGV0aW5nIGZyb20gYW5vdGhlciBmaWxlIHRoYXQgdXNlcyBhIGRpZmZlcmVudCBlbmNvZGluZyBjb21wbGV0aW9uCit0ZXh0IGhhcyB0aGUgd3JvbmcgZW5jb2RpbmcuICBFLmcuLCB3aGVuICdlbmNvZGluZycgaXMgdXRmLTggYW5kIGZpbGUgaXMKK2xhdGluMS4gIEV4YW1wbGUgZnJvbSBHb21iYXVsdCBEYW1pZW4sIDIwMDcgTWFyIDI0LgorCitDb21wbGV0aW5nICI6ZWNob2hsIiBhcmd1bWVudCBzaG91bGQgaW5jbHVkZSAiTm9uZSIuIChPcmkgQXZ0YWxpb24pCisKKworVmltIDcuMjoKKy0gICBTZWFyY2ggb2Zmc2V0IGRvZXNuJ3Qgd29yayBmb3IgbXVsdGlieXRlIGNoYXJhY3Rlci4gIFBhdGNoIGZyb20gWXVraWhpcm8KKyAgICBOYWthZGFpcmEsIDIwMDYgSnVsIDE4LgorICAgIENoYW5nZXMgdGhlIG9mZnNldCBmcm9tIGNvdW50aW5nIGJ5dGVzIHRvIGNvdW50aW5nIGNoYXJhY3RlcnMuCistICAgUmVuYW1lIHRoZSB0dXRvciBmaWxlcyBmcm9tIHR1dG9yLmdyLiogdG8gdHV0b3IuZWwuKi4gIEdyZWVjZSB2cyBHcmVlay4KKyAgICBNYWtlIGFsbCB0dXRvciBmaWxlcyBhdmFpbGFibGUgaW4gdXRmLTguCistICAgUmVtb3ZlICEgZm9yICI6Y2dldGZpbGUiIGFuZCAiOmxnZXRmaWxlIi4gKHBhdGNoIGZyb20gWWVnYXBwYW4gTGFrc2htYW5hbiwKKyAgICAyMDA3IE1hciA5KQorLSAgIEFkZCBibG93ZmlzaCBlbmNyeXB0aW9uLiAgT3BlbnNzbCBoYXMgYW4gaW1wbGVtZW50YXRpb24uICBBbHNvIGJ5IFBhdWwKKyAgICBLb2NoZXIgKExHUEwpLCBjbG9zZSB0byBvcmlnaW5hbC4gIE1vaHNpbiBhbHNvIGhhcyBzb21lIGlkZWFzLgorICAgIFRha2UgZm91ciBieXRlcyBhbmQgdHVybiB0aGVtIGludG8gdW5zaWduZWQgdG8gYXZvaWQgYnl0ZS1vcmRlciBwcm9ibGVtcy4KKyAgICBOZWVkIHRvIGJ1ZmZlciB1cCB0byA3IGJ5dGVzIHRvIGFsaWduIG9uIDggYnl0ZSBib3VuZGFyaWVzLgorLSAgIFJlbmFtZSBkb2Mvc3FsLnZpbSBkb2MvZnRfc3FsLnZpbS4KKy0gICBDaGFuZ2UgImNvbW1hbmQtbGluZSIgdG8gIltDb21tYW5kIExpbmVdIiBmb3IgdGhlIGNvbW1hbmQgbGluZSBidWZmZXIKKyAgICBuYW1lIGluIGV4X3dpbmRvdygpLgorLSAgIE1vdmUgaW5jbHVkaW5nIGZjbnRsLmggdG8gdmltLmgsIGJlZm9yZSBPX05PRk9MTE9XLCBhbmQgcmVtb3ZlIGl0IGZyb20gYWxsCisgICAgLmMgZmlsZXMuCistICAgIjp7cmFuZ2V9c291cmNlIjogc291cmNlIHRoZSBsaW5lcyBmcm9tIHRoZSBmaWxlLgorCVlvdSBjYW4gYWxyZWFkeSB5YW5rIGxpbmVzIGFuZCB1c2UgOkAiIHRvIGV4ZWN1dGUgdGhlbS4KKwlNb3N0IG9mIGRvX3NvdXJjZSgpIHdvdWxkIG5vdCBiZSB1c2VkLCBuZWVkIGEgbmV3IGZ1bmN0aW9uLgorCUl0J3MgZWFzeSB3aGVuIG5vdCBkb2luZyBicmVha3BvaW50cyBvciBwcm9maWxpbmcuCisKKworUGF0Y2hlczoKKy0gICBBZGQgJ2NzY29wZWlnbm9yZWNhc2UnIG9wdGlvbi4gKExpYW5nIFdlbnpoaSwgMjAwNiBTZXB0IDMpCistICAgQXJndW1lbnQgZm9yIGZlZWRrZXlzKCkgdG8gcHJlcGVuZCB0byB0eXBlYWhlYWQgKFlha292IExlcm5lciwgMjAwNiBPY3QKKyAgICAyMSkKKy0gICBMb2FkIGludGwuZGxsIHRvbywgbm90IG9ubHkgbGliaW50bC5kbGwuIChNaWtlIFdpbGxpYW1zLCAyMDA2IE1heSA5LCBkb2NzCisgICAgcGF0Y2ggTWF5IDEwKQorLSAgIEV4dHJhIGFyZ3VtZW50IHRvIHN0cnRyYW5zKCkgdG8gdHJhbnNsYXRlIHNwZWNpYWwga2V5cyB0byB0aGVpciBuYW1lIChFcmljCisgICAgQXJub2xkLCAyMDA2IE1heSAyMikKKy0gICAndGhyZWdsb29rZXhwJyBvcHRpb246IG9ubHkgbWF0Y2ggd2l0aCBmaXJzdCB3b3JkIGluIHRoZXNhdXJ1cyBmaWxlLgorICAgIChKYWtzb24gQS4gQXF1aW5vLCAyMDA2IEp1biAxNCkKKy0gICBNYWM6IGluZGljYXRlIHdoZXRoZXIgYSBidWZmZXIgd2FzIG1vZGlmaWVkLiAoTmljb2xhcyBXZWJlciwgMjAwNiBKdW4gMzApCistICAgQWxsb3cgbmVnYXRpdmUgJ25yd2lkdGgnIGZvciBsZWZ0IGFsaWduaW5nLiAoTmF0aGFuIExhcmVkbywgMjAwNiBBdWcgMTYpCistICAgbWxfYXBwZW5kX3N0cmluZygpOiBlZmZpY2llbnRseSBhcHBlbmQgdG8gYW4gZXhpc3RpbmcgbGluZS4gKEJyYWQKKyAgICBCZXZlcmlkZ2UsIDIwMDYgQXVnIDI2KSAgVXNlIGluIHNvbWUgc2l0dWF0aW9ucywgZS5nLiwgd2hlbiBwYXN0aW5nIGEKKyAgICBjaGFyYWN0ZXIgYXQgYSB0aW1lPworLSAgIGdldHRhYnZhcigpIGFuZCBzZXR0YWJ2YXIoKSBmdW5jdGlvbnMuIChZZWdhcHBhbiBMYWtzaG1hbmFuLCAyMDA2IFNlcCA4KQorLSAgIHJlY29nbml6ZSBoZXggbnVtYmVycyBiZXR0ZXIuIChNYXJrIE1hbm5pbmcsIDIwMDYgU2VwIDEzKQorCiAKIEF3YWl0aW5nIHVwZGF0ZWQgcGF0Y2hlczoKIDkgICBNYWMgdW5pY29kZSBwYXRjaCAoRGEgV29vbiBKdW5nLCBFY2tlaGFyZCBCZXJucyk6CkBAIC00NCw2ICs1MTEsOCBAQAogICAgIC0gV2l0aCAnbm9wYXN0ZScgcGFzdGluZyBpcyB3cm9uZywgd2l0aCAncGFzdGUnIENvbW1hbmQtViBkb2Vzbid0IHdvcmsuCiAgICAgICAoQWxhbiBTY2htaXR0KQogICAgIC0gcmVtb3ZlICdtYWNhdHN1aScgb3B0aW9uIHdoZW4gdGhpcyBoYXMgYmVlbiBmaXhlZC4KKyAgICAtIHdoZW4gJ21hY2F0c3VpJyBpcyBvZmYgc2hvdWxkIHdlIGFsd2F5cyBjb252ZXJ0IHRvICJtYWNyb21hbiIgYW5kIGlnbm9yZQorICAgICAgJ3Rlcm1lbmNvZGluZyc/CiA5ICAgSFRNTCBpbmRlbnRpbmcgY2FuIGJlIHNsb3cuICBDYXVzZWQgYnkgdXNpbmcgc2VhcmNocGFpcigpLiAgQ2FuIHNlYXJjaCgpCiAgICAgYmUgdXNlZCBpbnN0ZWFkPwogOCAgIFdpbjMyOiBBZGQgbWluaWR1bXAgZ2VuZXJhdGlvbi4gKEdlb3JnZSBSZWlsbHksIDIwMDYgQXByIDI0KQpAQCAtODksNiArNTU4LDggQEAKIAkJCSAgICAoMjAwMyBNYXkgMTMpCiAgICAgcmFpc2V3aW4oKQkJcmFpc2UgZ3ZpbSB3aW5kb3cgKHNlZSBIaWVyQXNzaXN0IHBhdGNoIGZvcgogCQkJICAgIFRjbCBpbXBsZW1lbnRhdGlvbiB+L3ZpbS9IaWVyQXNzaXN0LyApCisgICAgdGFnbGlzdCgpCQlhZGQgYXJndW1lbnQgdG8gc3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBtYXRjaGVzLgorCQkJdXNlZnVsIGZvciBpbnRlcmFjdGl2ZSB0aGluZ3Mgb3IgY29tcGxldGlvbi4KIDcgICBNYWtlIGdsb2JwYXRoKCkgYWxzbyB3b3JrIHdpdGggdXB3YXJkcyBzZWFyY2guIChCcmlhbiBNZWRsZXkpCiA3ICAgQWRkIHBhdGNoIGZyb20gQmVub2l0IENlcnJpbmEgdG8gaW50ZWdyYXRlIFZpbSBhbmQgUGVybCBmdW5jdGlvbnMKICAgICBiZXR0ZXIuICBOb3cgYWxzbyB3b3JrcyBmb3IgUnVieSAoMjAwMSBOb3YgMTApCkBAIC0yMTEsNiArNjgyLDggQEAKIFdpbjMyIEdVSSBrbm93biBidWdzOgogLSAgIFdpbjMyOiB0ZWFyb2ZmIG1lbnUgd2luZG93IHNob3VsZCBoYXZlIGEgc2Nyb2xsYmFyIHdoZW4gaXQncyB0YWxsZXIgdGhhbgogICAgIHRoZSBzY3JlZW4uCis4ICAgbm9uLUFTQ0lJIGZvbnQgbmFtZXMgZG9uJ3Qgd29yay4gIE5lZWQgdG8gY29udmVydCBmcm9tICdlbmNvZGluZycgYW5kIHVzZQorICAgIHRoZSB3aWRlIGZ1bmN0aW9ucy4KIDggICBPbiBXaW5kb3dzIDk4IHRoZSB1bmljb3dzIGxpYnJhcnkgaXMgbmVlZGVkIHRvIHN1cHBvcnQgZnVuY3Rpb25zIHdpdGggVUNTMgogICAgIGZpbGUgbmFtZXMuICBDYW4gd2UgbG9hZCB1bmljb3dzLmRsbCBkeW5hbWljYWxseT8KIDggICBXaGVuIHRoZSBwcmltYXJ5IG1vbml0b3IgaXMgYmVsb3cgb3IgcmlnaHQgb2YgdGhlIHNlY29uZGFyeSBtb25pdG9yIGFuZApAQCAtMjUyLDcgKzcyNSw2IEBACiAgICAgbW91c2UgcG9zaXRpb24uICBDYXRjaCBXTV9NT1VTRUFDVElWQVRFLiAoTHVldmVsc21leWVyKQogOCAgIFdpbjMyOiBXaGVuIG1vdXNlIGlzIGhpZGRlbiBhbmQgaW4gdGhlIHRvb2xiYXIsIG1vdmluZyBpdCB3b24ndCBtYWtlIGl0CiAgICAgYXBwZWFyLiAoU2FtaSBTYWxvbmVuKQotOCAgIFdpbmRvd3MgTlQ6IHdyaXRpbmcgdG8gYXV4LiogbWFrZXMgVmltIGhhbmcuIChBY2V2ZWRvKQogOCAgIFdpbjMyIEdVSTogV2l0aCBtYXhpbWl6ZWQgd2luZG93LCAiOnNldCBnby09ciIgZG9lc24ndCB1c2UgdGhlIHNwYWNlIHRoYXQKICAgICBjb21lcyBhdmFpbGFibGUuIChQb3VjZXQpICBJdCB3b3JrcyBPSyBvbiBXaW4gOTggYnV0IGRvZXNuJ3Qgd29yayBvbiBXaW4KICAgICBOVCA0LjAuICBMZWF2ZXMgYSBncmV5IGFyZWEgd2hlcmUgdGhlIHNjcm9sbGJhciB3YXMuICAiOnNldCBnbys9ciIgYWxzbwpAQCAtNTY5LDEyICsxMDQxLDE2IEBACiA4ICAgSW5wdXR0aW5nIFVuaWNvZGUgY2hhcmFjdGVycyBkb2VzIG5vdCB3b3JrIGluIHRoZSB0ZXJtaW5hbC4gIFRoZXkgYXBwZWFyCiAgICAgdG8gYXJyaXZlIGFzIHVwcGVyIGFuZCBsb3dlciBieXRlcy4gKERhdmlkIEJyb3duLCAyMDA0IEFwcmlsIDE3KQogOCAgIFR5cGluZyBVbmljb2RlIGNoYXJhY3RlcnMgZG9lc24ndCB3b3JrIGF0IGFsbCBpbiB0aGUgR1VJLgorOCAgIGlucHV0ZGlhbG9nKCkgZG9lc24ndCByZXNpemUgd2hlbiBnaXZpbmcgbW9yZSB0ZXh0IGxpbmVzLiAoRGF2aWQgRmlzaGJ1cm4sCisgICAgMjAwNiBTZXB0IDI4KQogOSAgIFByb2JsZW1zIGluIENhcmJvbiB2ZXJzaW9uIGZvciBPUyBYOiAoQmVuamkgRmlzaGVyKQogICAgIC0ga2V5Ym9hcmQgc2hvcnRjdXRzIGluIHRoZSBtZW51cyBnZXQgbG9zdC4KIDggICBUaGUgVmltL0Fib3V0IG1lbnUgZG9lc24ndCB3b3JrLgogOCAgICI6Z3VpIiBkb2Vzbid0IGZvcmsuICBFbmFibGluZyB0aGUgY29kZSBpbiBndWkuYyB0byBmb3JrIGNhdXNlcyBhIFNFR1YuCiA4ICAgRGVmaW5lIHZpbV9ta2RpcigpIGZvciBNYWNpbnRvc2guCiA4ICAgRGVmaW5lIG1jaF93cml0YWJsZSgpIGZvciBNYWNpbnRvc2guCis4ICAgU29tZSBmaWxlIHN5c3RlbXMgYXJlIGNhc2Utc2Vuc2l0aXZlLCBzb21lIGFyZSBub3QuICBUdXJuCisgICAgQ0FTRV9JTlNFTlNJVElWRV9GSUxFTkFNRSBpbnRvIGFuIG9wdGlvbiwgYXQgbGVhc3QgZm9yIGNvbXBsZXRpb24uCiA5ICAgV2hlbiBEaXNrTG9jayBpcyBydW5uaW5nLCB1c2luZyBhIHN3YXAgZmlsZSBjYXVzZXMgYSBjcmFzaC4gIEFwcGVhcnMgdG8gYmUKICAgICBhIHByb2JsZW0gd2l0aCB3cml0aW5nIGEgZmlsZSB0aGF0IHN0YXJ0cyB3aXRoIGEgZG90LiAoR2lhY2Fsb25lKQogOSAgIE9uIEczIE1hYywgT1MgdmVyc2lvbiA4LCBjb250cm9sIHN0cmlwIGNhdXNlcyBjaGFyYWN0ZXJzIG1lc3NlZCB1cCB3aGVuCkBAIC01ODcsNiArMTA2MywxMCBAQAogCiAKICJTbWFsbCIgcHJvYmxlbXM6CistICAgV2hlbiB1c2luZyBlX3NlY3VyZSBpbiBkb19vbmVfY21kKCkgbWVudGlvbiB0aGUgY29tbWFuZCBiZWluZyBleGVjdXRlZCwKKyAgICBvdGhlcndpc2UgaXQncyBub3QgY2xlYXIgd2hlcmUgaXQgY29tZXMgZnJvbS4KKzggICBXaGVuIGRpc2FibGluZyBGRUFUX0NNRExfQ09NUEwgY29tcGlsYXRpb24gZmFpbHMuICBXb3VsZCBuZWVkIHRvIGF2b2lkCisgICAgdXNpbmcgcGFyc2VfY29tcGxfYXJnKCkgaW4gZXZhbC5jIGFuZCB1Y19zY2FuX2F0dHIoKS4KIDkgICBGb3IgVHVya2lzaCB2aW1fdG9sb3dlcigpIGFuZCB2aW1fdG91cHBlcigpIGFsc28gbmVlZCB0byB1c2UgdXRmXwogICAgIGZ1bmN0aW9ucyBmb3IgY2hhcmFjdGVycyBiZWxvdyAweDgwLiAoU2VydGFjeWlsZGl6KQogOSAgIFdoZW4gdGhlIGxhc3QgZWRpdGVkIGZpbGUgaXMgYSBoZWxwIGZpbGUsIHVzaW5nICcwIGluIGEgbmV3IFZpbSBkb2Vzbid0CkBAIC02MDYsMTEgKzEwODYsMTAgQEAKIDggICBXaGVuIHJlZGlyZWN0aW5nIGFuZCB1c2luZyAiOnNpbGVudCIgdGhlIGN1cnJlbnQgY29sdW1uIGZvciBkaXNwbGF5aW5nIGFuZAogICAgIHJlZGlyZWN0aW9uIGNhbiBiZSBkaWZmZXJlbnQuICBVc2UgYSBzZXBhcmF0ZSB2YXJpYWJsZSB0byBob2xkIHRoZSBjb2x1bW4KICAgICBmb3IgcmVkaXJlY3Rpb24uCi03ICAgVGhlcmUgaXMgbm8gd2F5IHRvIGNoYW5nZSBkaXJlY3RvcnkgYW5kIGdvIGJhY2sgd2l0aG91dCBjaGFuZ2luZyB0aGUgbG9jYWwKLSAgICBhbmQvb3IgZ2xvYmFsIGRpcmVjdG9yeS4gIEFkZCBhIHdheSB0byBmaW5kIG91dCBpZiB0aGUgY3VycmVudCB3aW5kb3cgdXNlcwotICAgIGEgbG9jYWwgZGlyZWN0b3J5LiAgQWRkIGNkY21kKCkgdGhhdCByZXR1cm5zICI6Y2QiIG9yICI6bGNkIj8KIDcgICBUaGUgbWVzc2FnZXMgZm9yICJ2aW0gLS1oZWxwIiBhbmQgInZpbSAtLXZlcnNpb24iIGRvbid0IHVzZQogICAgICd0ZXJtZW5jb2RpbmcnLgorLSAgIENvdWxkIHRoZSBoaXQtZW50ZXIgcHJvbXB0IGJlIGF2b2lkZWQgd2hlbiBhIG1lc3NhZ2Ugb25seSBvdmVybGFwcyB0aGUKKyAgICAnc2hvd2NtZCcgYXJlYT8gIENsZWFyIHRoYXQgYXJlYSB3aGVuIHRoZSBuZXh0IGNtZCBpcyB0eXBlZC4KIDggICBXaGVuICdzY3JvbGxiaW5kJyBpcyBzZXQsIGEgd2luZG93IHdvbid0IHNjcm9sbCBob3Jpem9udGFsbHkgaWYgdGhlIGN1cnNvcgogICAgIGxpbmUgaXMgdG9vIHNob3J0LiAgQWRkIGEgd29yZCBpbiAnc2Nyb2xsb3B0JyB0byBhbGxvdyBtb3ZpbmcgdGhlIGN1cnNvcgogICAgIHRvIGxvbmdlciBsaW5lIHRoYXQgaXMgdmlzaWJsZS4gIEEgc2ltaWxhciB0aGluZyBpcyBkb25lIGZvciB0aGUgR1VJIHdoZW4KQEAgLTYyOSw2ICsxMTA4LDcgQEAKIDggICBXaGVuIGRvaW5nIEluc2VydCBtb2RlIGNvbXBsZXRpb24gYSBtYXBwaW5nIGNhbm5vdCByZWN1cnNpdmVseSBjYWxsCiAgICAgZWRpdCgpLCBiZWNhdXNlIHRoZSBjb21wbGV0aW9uIGluZm9ybWF0aW9uIGlzIGdsb2JhbC4gIFB1dCBldmVyeXRoaW5nIGluCiAgICAgYW4gYWxsb2NhdGVkIHN0cnVjdHVyZT8KKzYgICBQeXRob246ICI6cHkgcmF3X2lucHV0KCdwcm9tcHQnKSIgZG9lc24ndCB3b3JrLiAoTWFudSBIYWNrKQogOCAgIENvbW1hbmQgbGluZSBjb21wbGV0aW9uOiBidWZmZXJzICJmb28udHh0IiBhbmQgIi4uL2IvZm9vLnR4dCIsIGNvbXBsZXRpbmcKICAgICAiOmJ1ZiBmb288VGFiPiIgZG9lc24ndCBmaW5kIHRoZSBzZWNvbmQgb25lLiAoR2VvcmdlIFYuIFJlaWxseSkKIDcgICBPdXRwdXQgZm9yICI6c2NyaXB0bmFtZXMiIGFuZCAiOmJyZWFrbGlzdCIgc2hvdWxkIHNob3J0ZW4gdGhlIGZpbGUgbmFtZXM6CkBAIC02NTAsOSArMTEzMCw2IEBACiA3ICAgIltwIiBkb2Vzbid0IHdvcmsgaW4gVmlzdWFsIG1vZGUuIChEYXZpZCBCcm93bikKIDcgICBUaGUgQ3lnd2luIGFuZCBNaW5nVyBtYWtlZmlsZXMgZGVmaW5lICJQQyIsIGJ1dCBpdCdzIG5vdCB1c2VkIGFueXdoZXJlLgogICAgIFJlbW92ZT8gKERhbiBTaGFycCkKLTkgICBUaGUgYXJndW1lbnQgPGYtYXJncz4gb2YgYSB1c2VyIGNvbW1hbmQgZG9lc24ndCBoYW5kbGUgYmFja3NsYXNoZXMKLSAgICBwcm9wZXJseS4gICJDbWQgXCBlIiBpcyBvbmUgYXJndW1lbnQsICJDbWQgXFwgZSIgc3RpbGwgaXMgb25lIGFyZ3VtZW50LgotICAgICJDbWQgXCAgZSIgaXMgdHdvIGFyZ3VtZW50cywgZmlyc3Qgb25lIGVuZGluZyBpbiBzcGFjZS4gKEtvbnRyYSBHZXJnZWx5KQogOSAgIFVzZXIgY29tbWFuZHMgdXNlIHRoZSBjb250ZXh0IG9mIHRoZSBzY3JpcHQgdGhleSB3ZXJlIGRlZmluZWQgaW4uICBUaGlzCiAgICAgY2F1c2VzIGEgInM6dmFyIiBhcmd1bWVudCB0byB1bmV4cGVjdGVkbHkgdXNlIGEgdmFyaWFibGUgaW4gdGhlIGRlZmluaW5nCiAgICAgc2NyaXB0LCBub3QgdGhlIGNhbGxpbmcgc2NyaXB0LiAgQWRkIGFuIGFyZ3VtZW50IHRvICI6Y29tbWFuZCI6CkBAIC02ODQsNiArMTE2MSw4IEBACiAgICAgZmxhZyB0byB0byB0aGUgY29tbWFuZC4gIFNhbWUgZm9yICI6c25vbWFnaWMiLiAoSm9oYW4gU3BldHopCiA4ICAgVXNpbmcgIjpzIiBpbiBhIGZ1bmN0aW9uIGNoYW5nZXMgdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50IHN0cmluZy4gIFNhdmUKICAgICAib2xkX3N1YiIgaW4gc2F2ZV9zZWFyY2hfcGF0dGVybnMoKT8KKzggICBTaG91bGQgYWxsb3cgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGZvciB0aGUgZGVsaW1pdGVyOiAiOnMrYStiKyIgd2hlcmUgIisiCisgICAgaXMgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KIDggICBXaGVuIGFwcGVuZGluZyB0byBhIGZpbGUgYW5kICdwYXRjaG1vZGUnIGlzbid0IGVtcHR5LCBhIGJhY2t1cCBmaWxlIGlzCiAgICAgYWx3YXlzIHdyaXR0ZW4sIGV2ZW4gd2hlbiB0aGUgb3JpZ2luYWwgZmlsZSBhbHJlYWR5IGV4aXN0cy4KIDcgICBXaGVuIHVzaW5nICJkYXciIG9uIHRoZSBsYXN0IHdvcmQgaW4gYSBmaWxlIGFuZCB0aGlzIGlzIGEgc2luZ2xlIGxldHRlciwKQEAgLTY5OSw2ICsxMTc4LDggQEAKICAgICAnZm9sZGxldmVsJyBpcyBzZXQgZnJvbSAnZm9sZGxldmVsc3RhcnQnLgogOCAgIEFsc28gc3RvcmUgdGhlIGxpbmUgbnVtYmVyIHdpdGggdGhlIHNjcmlwdCBJRCBhbmQgdXNlIGl0IGZvciAiOnZlcmJvc2UiLAogICAgIHNvIHRoYXQgInNldCBub2NvbXBhdGlibGUiIGlzIGZvdW5kIHdoZW4gaXQgY2hhbmdlcyBvdGhlciBvcHRpb24gdmFsdWVzLgorICAgIFdoZW4gYW4gb3B0aW9uIGlzIHNldCBpbmRpcmVjdGx5IG1lbnRpb24gdGhlIGNvbW1hbmQ/ICBFLmcuIHdoZW4KKyAgICAiOmRpZmZzcGxpdCIgc2V0cyAnZm9sZG1ldGhvZCcuCiA4ICAgSW4gdGhlIGZpbGVmb3JtYXQgZGlhbG9nLCAiQ2FuY2VsIiBpc24ndCB0cmFuc2xhdGVkLiAgQWRkIGEgZ2xvYmFsCiAgICAgdmFyaWFibGUgZm9yIHRoaXMuIChFZHVhcmRvIEZlcm5hbmRleikKIDkgICBXaGVuIGVkaXRpbmcgYSBmaWxlIHdpdGggJ3JlYWRvbmx5JyBzZXQsIHRoZXJlIGlzIG5vIGNoZWNrIGZvciBhbiBleGlzdGluZwpAQCAtODMxLDYgKzEzMTIsOCBAQAogOCAgIERyYWdnaW5nIHRoZSBzdGF0dXMgbGluZSBkb2Vzbid0IHNjcm9sbCBidXQgcmVkcmF3LgogOSAgIEV2YWx1YXRpbmcgJ3N0YXR1c2xpbmUnIGluIGJ1aWxkX3N0bF9zdHJfaGwoKSBkb2VzIG5vdCBwcm9wZXJseSBjaGVjayBmb3IKICAgICByZWFjaGluZyB0aGUgZW5kIG9mIHRoZSBhdmFpbGFibGUgYnVmZmVyLgorICAgIFBhdGNoIHRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSBidWZmZXIgZm9yICUgaXRlbXMuIChFcmljIEFybm9sZCwgMjAwNgorICAgIE1heSAxNCkKIDggICBXaGVuIHBlcmZvcm1pbmcgaW5jcmVtZW50YWwgc2VhcmNoLCBzaG91bGQgYWJvcnQgc2VhcmNoaW5nIGFzIHNvb24gYXMgYQogICAgIGNoYXJhY3RlciBpcyB0eXBlZC4KIDggICBXaGVuIHRoZSB2YWx1ZSBvZiAkTUFLRSBjb250YWlucyBhIHBhdGgsIGNvbmZpZ3VyZSBjYW4ndCBoYW5kbGUgdGhpcy4KQEAgLTg5MCw2ICsxMzczLDcgQEAKICAgICBYdE9wZW5EaXNwbGF5KCkgcHJpbnRzIHRoaXMgZGlyZWN0bHksIHRoZXJlIGlzIG5vIHdheSB0byBhdm9pZCBpdC4KIC0gICBYIHdpbmRvd3M6IFNldHRpbmcgJ2d1aWZvbnRzZXQnIHRvIGFuIGlsbGVnYWwgdmFsdWUgc29tZXRpbWVzIGNyYXNoZXMgVmltLgogICAgIFRoaXMgaXMgY2F1c2VkIGJ5IGEgZmF1bHQgaW4gYSBYIGxpYnJhcnkgZnVuY3Rpb24sIGNhbid0IGJlIHNvbHZlZCBpbiBWaW0uCistICAgV2luMzIgdGNsOiBoYXMoInRjbCIpIGhhbmdzIHdoZW4gdGhlIHRjbDg0LmRsbCBpcyBmcm9tIGN5Z3dpbi4KIC0gICBNb3RpZjogV2hlbiBhZGRpbmcgYSBtZW51IGl0ZW0gIkZpbmQgdGhpcyAmU3ltYm9sIiwgdGhlICJzIiBpbiAidGhpcyIgd2lsbAogICAgIGJlIHVuZGVybGluZWQsIGluc3RlYWQgb2YgaW4gIlN5bWJvbCIuICBNb3RpZiBkb2Vzbid0IGxldCB1cyBzcGVjaWZ5IHdoaWNoCiAgICAgY2hhcmFjdGVyIGdldHMgdGhlIGhpZ2hsaWdodGluZy4KQEAgLTk4Nyw2ICsxNDcxLDcgQEAKICAgICAxOTggc3RhbmRhcmQgaHR0cDovL3d3dy5qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MTk4LgogICAgIEVjbGltIGRvZXMgaXQ6IGh0dHA6Ly9lY2xpbS5zb3VyY2Vmb3JnZS5uZXQvICAoRXJpYyBWYW4gRGV3b2VzdGluZSkKICAgICBQbHVnaW4gdGhhdCB1c2VzIGEgdGVybWluYWwgZW11bGF0b3I6IGh0dHA6Ly92aW1wbHVnaW4uc2YubmV0CisgICAgQW5kIGFub3RoZXIgb25lOiBodHRwOi8vd3d3LnNhdG9rYXIuY29tL3ZpcGx1Z2luL2luZGV4LnBocAogLSAgIFNUSUNLWSBDVVJTT1I6IEFkZCBhIHdheSBvZiBzY3JvbGxpbmcgdGhhdCBsZWF2ZXMgdGhlIGN1cnNvciB3aGVyZSBpdCBpcy4KICAgICBFc3BlY2lhbGx5IHdoZW4gdXNpbmcgdGhlIHNjcm9sbGJhci4gIFR5cGluZyBhIGN1cnNvci1tb3ZlbWVudCBjb21tYW5kCiAgICAgc2Nyb2xscyBiYWNrIHRvIHdoZXJlIHRoZSBjdXJzb3IgaXMuCkBAIC0xMDAzLDYgKzE0ODgsOCBAQAogCiAKIERvY3VtZW50YXRpb246Cis4ICAgTGlzdCBvZiBWaW0gcnVudGltZSBkaXJlY3Rvcmllcy4gIGRvdHZpbS50eHQgZnJvbSBDaGFybGVzIENhbXBiZWxsLCAyMDA3CisgICAgRmViIDIwLgogOCAgIFRoZSBHVUkgaGVscCBzaG91bGQgZXhwbGFpbiB0aGUgRmluZCBhbmQgRmluZC9SZXBsYWNlIGRpYWxvZ3MuICBBZGQgYSBsaW5rCiAgICAgdG8gaXQgZnJvbSAiOnByb21wdHJlcGwiIGFuZCAiOnByb21wdGZpbmQiLgogOCAgIExpc3Qgb2Ygb3B0aW9ucyBzaG91bGQgbWVudGlvbiB3aGV0aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgZXhwYW5kZWQKQEAgLTEwODQsNiArMTU3MSwxMCBAQAogCiBUYWIgcGFnZXM6CiA5ICAgR1VJIGltcGxlbWVudGF0aW9uIGZvciB0aGUgdGFiIHBhZ2VzIGxpbmUgZm9yIG90aGVyIHN5c3RlbXMuCis3ICAgR1VJOiBDb250cm9sIG92ZXIgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIHRleHQgaW4gdGhlIGxhYmVscyAoYm9sZCwgY29sb3IsCisgICAgZm9udCwgZXRjLikKKzkgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRyYWcgYSB0YWIgcGFnZSBsYWJlbCB0byBhbm90aGVyIHBvc2l0aW9uIHdpdGggdGhlCisgICAgbW91c2UuCiA4ICAgTWFrZSBHVUkgbWVudSBpbiB0YWIgcGFnZXMgbGluZSBjb25maWd1cmFibGUuICBMaWtlIHRoZSBwb3B1cCBtZW51LgogOCAgIGJhbGxvb25zIGZvciB0aGUgdGFiIHBhZ2UgbGFiZWxzIHRoYXQgYXJlIHNob3J0ZW5lZCB0byBzaG93IHRoZSBmdWxsIHBhdGguCiA4ICAgOnRhYm1vdmUgK04JIG1vdmUgdGFiIHBhZ2UgTiBwYWdlcyBmb3J3YXJkCkBAIC0xMDk1LDE1ICsxNTg2LDI3IEBACiA4ICAgQWRkIGxvY2FsIG9wdGlvbnMgZm9yIGVhY2ggdGFiIHBhZ2U/ICBFLmcuLCAnZGlmZm9wdCcgY291bGQgZGlmZmVyIGJldHdlZW4KICAgICB0YWIgcGFnZXMuCiA3ICAgQWRkIGxvY2FsIGhpZ2hsaWdodGluZyBmb3IgZWFjaCB0YWIgcGFnZT8KKzcgICBBZGQgbG9jYWwgZGlyZWN0b3J5IGZvciB0YWIgcGFnZXM/ICBIb3cgd291bGQgdGhpcyBpbnRlcmZlcmUgd2l0aAorICAgIHdpbmRvdy1sb2NhbCBkaXJlY3Rvcmllcz8KIAogCiBTcGVsbCBjaGVja2luZzoKKy0gICBTdXBwb3J0IG1vcmUgcmVnaW9ucz8gQ2FvbGFuIE1jTmFtYXJhIGFyZ3VlcyBpdCdzIG5lZWRlZCBmb3IgZXNfWFguCisgICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMTk3NzcgICAgCistICAgVW5pY29kZSBkZWZpbmVzIGFub3RoZXIgcXVvdGUgY2hhcmFjdGVyOiAweDIwMTkuICBVc2UgaXQgYXMgYW4gZXF1aXZhbGVudAorICAgIG9mIGEgc2luZ2xlIHF1b3RlLCB0aHVzIHVzZSBpdCBhcyBhIHdvcmQgY2hhcmFjdGVyIGxpa2UgYSBxdW90ZSBhbmQgbWF0Y2gKKyAgICB3aXRoIHdvcmRzLCByZXBsYWNpbmcgdGhlIGN1cmx5IHF1b3RlIHdpdGggYSBzaW5nbGUgcXVvdGUuCistICAgQ291bGQgZmlsdGVyICZlYWN1dGU7IHRoaW5ncyBmb3IgSFRNTCBiZWZvcmUgZG9pbmcgc3BlbGwgY2hlY2tpbmcuCisgICAgU2ltaWxhcmx5IGZvciBUZVguCiAtICAgVGhlIEh1bmdhcmlhbiBzcGVsbCBmaWxlIHVzZXMgZm91ciBleHRyYSBjaGFyYWN0ZXJzIGluIHRoZSBGT0wvVVBQL0xPVwogICAgIGl0ZW1zIHRoYW4gb3RoZXIgc3BlbGwgZmlsZXMgd2l0aCB0aGUgSVNPLTg4NTktMiBlbmNvZGluZywgdGhhdCBjYXVzZXMKICAgICBwcm9ibGVtIHdoZW4gY2hhbmdpbmcgJ3NwZWxsbGFuZycuICBUaGVyZSBpcyBubyBvYnZpb3VzIHdheSB0byBmaXggdGhpcy4KIC0gICBDb25zaWRlcmluZyBIdW5zcGVsbCAxLjEuNDoKICAgICBXaGF0IGRvZXMgTUFYTkdSQU1TVUdTIGRvPwogICAgIElzIENPTVBMRVhQUkVGSVhFUyBuZWNlc3Nhcnkgd2hlbiB3ZSBoYXZlIGZsYWdzIGZvciBhZmZpeGVzPworLSAgIFRoZXJlIGlzIG5vIEZpbm5pc2ggc3BlbGwgY2hlY2tpbmcgZmlsZS4gIEZvciBvcGVub2ZmaWMgVm9pa2tvIGlzIG5vdworICAgIHVzZWQsIHdoaWNoIGlzIGJhc2VkIG9uIE1hbGFnYTogaHR0cDovL2hvbWUuYXJjb3IuZGUvYmpvZXJuLWJldXRlbC9tYWxhZ2EvCisgICAgKFRlZW11IExpa29uZW4pCiA4ICAgIjpta3NwZWxsIiBzdGlsbCB0YWtlcyBtdWNoIHRvbyBsb25nIGluIEh1bmdhcmlhbiBkaWN0aW9uYXJ5IGZyb20KICAgICBodW5zcGVsbC4gIE9ubHkgc29sdXRpb24gYXBwZWFycyB0byBiZSB0byBwb3N0cG9uZSBzZWNvbmRhcnkgc3VmZml4ZXMuCiA4ICAgSGFuZGxlIHBvc3Rwb25lZCBwcmVmaXggd2l0aCBDT01QT1VORFBFUk1JVEZMQUcgb3IgQ09NUE9VTkRGT1JCSURGTEFHLgpAQCAtMTE5MCw3ICsxNjkzLDExIEBACiBGb2xkaW5nOgogICAgIChjb21tYW5kcyBzdGlsbCBhdmFpbGFibGU6IHpJIHpKIHpLIHpwIHpQIHpxIHpRIHpWIHp5IHpZOwogICAgIHNlY29uZGFyeTogekIgelMgelQgelosIHo9KQorOCAgIFZlcnRpY2FsIGZvbGRzOiBsb29rcyBsaWtlIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cywgYnV0IHRoZSBjdXJzb3IgbW92ZXMKKyAgICB0aHJvdWdoIHRoZSB2ZXJ0aWNhbCBzZXBhcmF0b3IsIHNlcGFyYXRvciBtb3ZlcyB3aGVuIHNjcm9sbGluZy4KIDggICBBZGQgInovIiBhbmQgIno/IiBmb3Igc2VhcmNoaW5nIGluIG5vdCBmb2xkZWQgdGV4dCBvbmx5LgorOSAgIEFkZCBzZWFyY2ggcGF0dGVybiBpdGVtIHRvIG9ubHkgbWF0Y2ggaW4gY2xvc2VkIG9yIG9wZW4gZm9sZCBhbmQvb3IgZm9sZAorICAgIHdpdGggY2VydGFpbiBsZXZlbC4gIEFsbG93cyBkb2luZyAiOmcvcGF0L2NtZCIgdG8gd29yayBvbiBjbG9zZWQgZm9sZHMuCiA4ICAgQWRkIGRpZmZlcmVudCBoaWdobGlnaHRpbmcgZm9yIGEgZm9sZCBsaW5lIGRlcGVuZGluZyBvbiB0aGUgZm9sZCBsZXZlbC4KICAgICAoTm9lbCBIZW5zb24pCiA3ICAgVXNlICIrKy0tIiwgIisrKy0tIiBmb3IgZGlmZmVyZW50IGxldmVscyBpbnN0ZWFkIG9mICIrLS0tIiAiKy0tLS0iLgpAQCAtMTI5Miw2ICsxNzk5LDcgQEAKIDcgICBJbiAiLS0gSU5TRVJUIChsYW5nKSAtLSIgc2hvdyB0aGUgbmFtZSBvZiB0aGUga2V5bWFwIHVzZWQgaW5zdGVhZCBvZgogICAgICJsYW5nIi4gKElseWEgRG9nb2xhemt5KQogLSAgIE1ha2UgJ2xhbmdtYXAnIGFjY2VwdCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCisJUGF0Y2ggZnJvbSBLb25zdGFudGluIEtvcmlrb3YsIDIwMDYgT2N0IDE1LgogLSAgIE1ha2UgJ2JyZWFrYXQnIGFjY2VwdCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuICBQcm9ibGVtOiBjYW4ndCB1c2UgYSBsb29rdXAKICAgICB0YWJsZSBhbnltb3JlIChicmVha2F0X2ZsYWdzW10pLgogICAgIFNpbXBsaXN0aWMgc29sdXRpb246IHdoZW4gJ2Zvcm1hdG9wdGlvbnMnIGNvbnRhaW5zICJtIiBhbHNvIGJyZWFrIGEgbGluZQpAQCAtMTMxNyw4ICsxODI1LDggQEAKIC0gICBXaW4zMjogd2hlbiAncHJpbnRmb250JyBpcyBlbXB0eSB1c2UgJ2d1aWZvbnQnLgogLSAgIFVuaXg6IFVzZSBzb21lIGRpYWxvZyBib3ggdG8gZG8gdGhlIG9idmlvdXMgc2V0dGluZ3MgKHBhcGVyIHNpemUsIHByaW50ZXIKICAgICBuYW1lLCBwb3J0cmFpdC9sYW5kc2NhcGUsIGV0YykuCi0tICAgUG9zdFNjcmlwdDogb25seSB3b3JrcyBmb3IgNy1iaXQgQVNDSUkgYW5kIEVCQ0RJQy4gIFNob3VsZCBzdXBwb3J0Ci0gICAgZGlmZmVyZW50ICdlbmNvZGluZycgdmFsdWVzIHNvbWVob3cuCistICAgUG9zdFNjcmlwdDogT25seSB3b3JrcyBmb3IgdGV4dCB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQKKyAgICBjaGFyYWN0ZXIgc2V0LiAgSG93IHRvIHN1cHBvcnQgVW5pY29kZSBmdWxseT8KIC0gICBBbGxvdyBzcGVjaWZ5aW5nIHRoZSBwYXBlciBzaXplLCBpbnN0ZWFkIG9mIHVzaW5nIGEgc3RhbmRhcmQgc2l6ZS4gIFNhbWUKICAgICB1bml0cyBhcyBmb3IgdGhlIG1hcmdpbnMuCiAtICAgU3VwcG9ydCByaWdodC10by1sZWZ0IHRleHQ/CkBAIC0xMzM4LDYgKzE4NDYsOSBAQAogOCAgIFdoZW4gZWRpdGluZyBhIG5ldyBmaWxlIHdpdGhvdXQgYSBuYW1lIGFuZCBnaXZpbmcgaXQgYSBuYW1lIChieSB3cml0aW5nCiAgICAgaXQpIGFuZCAnZmlsZXR5cGUnIGlzIG5vdCBzZXQsIGRldGVjdCB0aGUgZmlsZXR5cGUuICBBdm9pZCBkb2luZyBpdCBmb3IKICAgICAiOndxIGZpbGUiLgorNyAgIEZvciAibmV4dGdyb3VwIiB3ZSBoYXZlIHNraXB3aGl0ZSwgc2tpcG5sIGFuZCBza2lwZW1wdHkuICBJdCB3b3VsZCBiZQorICAgIHJlYWxseSBuaWNlIHRvIGJlIGFibGUgdG8gc2tpcCB3aXRoIGEgcGF0dGVybi4gIE9yIHNraXAgd2l0aCBhIHN5bnRheAorICAgIGdyb3VwLiAoTmlrb2xhaSBXZWlidWxsLCAyMDA3IEZlYiAyNykKIDggICBNYWtlIGNvbnZlcnNpb24gdG8gSFRNTCBmYXN0ZXIgKFdyaXRlIGl0IGluIEMgb3IgcHJlLWNvbXBpbGUgdGhlIHNjcmlwdCkuCiA5ICAgVGhlcmUgaXMgc3RpbGwgYSByZWRyYXcgYnVnIHNvbWV3aGVyZS4gIFByb2JhYmx5IGJlY2F1c2UgYSBjYWNoZWQgc3RhdGUgaXMKICAgICB1c2VkIGluIGEgd3Jvbmcgd2F5LiAgSSBjYW4ndCByZXByb2R1Y2UgaXQuLi4KQEAgLTE0MTUsNiArMTkyNiw5IEBACiA4ICAgV2hlbiB1c2luZyBhIHJlZ2V4cCBmb3IgImNvbnRhaW5zPSIsIHNob3VsZCBkZWxheSBtYXRjaGluZyB3aXRoIGl0IHVudGlsCiAgICAgcmVkcmF3aW5nIGhhcHBlbnMuICBTZXQgYSBmbGFnIHdoZW4gYSBncm91cCBpcyBhZGRlZCwgY2hlY2sgdGhpcyBmbGFnIHdoZW4KICAgICBoaWdobGlnaHRpbmcgc3RhcnRzLgorOCAgIFNvbWUgdGVybWluYWxzIGNhbiBkaXNwbGF5IGNvbG9ycyBsaWtlIHRoZSBHVUkuICBBZGQgc29tZSBzZXR0aW5nIHRvIHVzZQorICAgIEdVSSBjb2xvcnMgZm9yIHRoZSB0ZXJtaW5hbD8gIFdpdGggc29tZXRoaW5nIHRvIGRlZmluZSB0aGUgZXNjYXBlCisgICAgc2VxdWVuY2UuCiA3ICAgSXQncyBwb3NzaWJsZSBmb3IgYW4gaXRlbSB0byBiZSB0cmFuc3BhcmVudCwgc28gdGhhdCB0aGUgY29sb3JzIG9mIGFuIGl0ZW0KICAgICBsb3dlciBvbiB0aGUgc3RhY2sgaXMgdXNlZC4gIEFsc28gZG8gdGhpcyB3aXRoIGhpZ2hsaWdodGluZywgc28gdGhhdCB0aGUKICAgICB1c2VyIGNhbiBzZXQgdHJhbnNwYXJlbnQgaGlnaGxpZ2h0aW5nPyAgRS5nLiBhIG51bWJlciBpbiBhIEMgY29tbWVudCB3b3VsZApAQCAtMTQ4MywyNCArMTk5NywxNCBAQAogCiAKIEJ1aWx0LWluIHNjcmlwdCBsYW5ndWFnZToKLTkgICBBdXRvbG9hZDogIEFkZCBhIFZpbSBzY3JpcHQgaW4gJFZJTVJVTlRJTUUvdG9vbHMgdGhhdCB0YWtlcyBhIGZpbGUgd2l0aCBhCi0gICAgbGlzdCBvZiBzY3JpcHQgbmFtZXMgYW5kIGEgaGVscCBmaWxlIGFuZCBwcm9kdWNlcyBhIHNjcmlwdCB0aGF0IGNhbiBiZQotICAgIHNvdXJjZWQgdG8gaW5zdGFsbCB0aGUgc2NyaXB0cyBpbiB0aGUgdXNlcidzIGRpcmVjdG9yaWVzLgotICAgICAgVXNlIGZpbmRmaWxlKCksIHNvIHRoYXQgb25seSBmaWxlIG5hbWVzIG5lZWQgdG8gYmUgZ2l2ZW46Ci0Jc2NyaXB0IHBsdWdpbi9teXNjcmlwdC52aW0KLQlzY3JpcHQgYXV0b2xvYWQvbXlsaWIudmltCi0Jc2NyaXB0IGF1dG9sb2FkL3lvdXJsaWIudmltCi0JaGVscGZpbGUgZG9jL215c2NyaXB0LnR4dAotICAgICAgRm9yIHRoZSAiaGVscGZpbGUiIGl0ZW0gIjpoZWxwdGFncyIgaXMgcnVuLgogNyAgIEV4ZWN1dGUgYSBmdW5jdGlvbiB3aXRoIHN0YW5kYXJkIG9wdGlvbiB2YWx1ZXMuICBObyBuZWVkIHRvIHNhdmUgYW5kCiAgICAgcmVzdG9yZSBvcHRpb24gdmFsdWVzLiAgRXNwZWNpYWxseSB1c2VmdWwgZm9yIG5ldyBvcHRpb25zLiAgUHJvYmxlbTogaG93CiAgICAgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IChlc3AuIGZvciBzdHJpbmcgb3B0aW9ucyk/CiA4ICAgQWRkIHJlZmVycmluZyB0byBrZXkgb3B0aW9ucyB3aXRoICImdF94eCIuICBCb3RoIGZvciAiZWNobyAmdF94eCIgYW5kCiAgICAgIjpsZXQgJnRfeHggPSIuICBVc2VmdWwgZm9yIG1ha2luZyBwb3J0YWJsZSBtYXBwaW5ncy4KLS0gICBBZGQgIntyYW5nZX1zb3VyY2UiOiBleGVjdXRlIGxpbmVzIGZyb20gYSBidWZmZXIuCi0gICAgQWx0ZXJuYXRpdmU6IEFsbG93IHJhbmdlIGZvciAiOmV4ZWMiLCBwYXNzIGl0IG9uIHRvIHRoZSBleGVjdXRlZCBjb21tYW5kLgotICAgIChXZWJiKQotICAgIFlvdSBjYW4gYWxyZWFkeSB5YW5rIGxpbmVzIGFuZCB1c2UgOkAiIHRvIGV4ZWN1dGUgdGhlbS4KKy0gICBBZGQgIjpsZXQgdmFyID89IHZhbHVlIiwgY29uZGl0aW9uYWwgYXNzaWdubWVudC4gIFBhdGNoIGJ5IERhdmUgRWdndW0sCisgICAgMjAwNiBEZWMgMTEuCistICAgcmFuZ2UgZm9yICI6ZXhlYyIsIHBhc3MgaXQgb24gdG8gdGhlIGV4ZWN1dGVkIGNvbW1hbmQuICAoV2ViYikKIDcgICAiOmluY2x1ZGUiIGNvbW1hbmQ6IGp1c3QgbGlrZSAiOnNvdXJjZSIgYnV0IGRvZXNuJ3Qgc3RhcnQgYSBuZXcgc2NyaXB0SUQ/CiAgICAgV2lsbCBiZSB0cmlja3kgZm9yIHRoZSBsaXN0IG9mIHNjcmlwdCBuYW1lcy4KIDggICBIYXZlIGEgbG9vayBhdCBWU0VMLiAgV291bGQgaXQgYmUgdXNlZnVsIHRvIGluY2x1ZGU/IChCaWdoYW0pCkBAIC0xNTIzLDcgKzIwMjcsMTYgQEAKICAgICAgICBmaWxlIGJlbG9uZ3MgdG8gYSBzb3VyY2VkIHNjcmlwdD8KIDcgICBBZGQgYXJndW1lbnQgdG8gd2lud2lkdGgoKSB0byBzdWJ0cmFjdCB0aGUgc3BhY2UgdGFrZW4gYnkgJ2ZvbGRjb2x1bW4nLAogICAgIHNpZ25zIGFuZC9vciAnbnVtYmVyJy4KKzYgICBBZGQgKysgYW5kIC0tIG9wZXJhdG9ycz8gIFRoZXkgb25seSB3b3JrIG9uIHZhcmlhYmxlcyAobHZhbHMpLCBob3cgdG8KKyAgICBpbXBsZW1lbnQgdGhpcz8KIDggICBBZGQgZnVuY3Rpb25zOgorCWhhcygiOmNvbW1hbmQiKQkJQ2hlY2sgaWYgIjpjb21tYW5kIiB3b3Jrcy4gIGNvbXBhcmUgZnVuY3Rpb24KKwkJCQl3aXRoICJleF9uaSIuICBFLmcuIGZvciAiOnNpbWFsdCIuCisJc3lzdGVtKCkJCVdpdGggYSBMaXN0IGFyZ3VtZW50LiAgQnlwYXNzZXMgdGhlIHNoZWxsLCB1c2UKKwkJCQlleGVjKCkgZGlyZWN0bHkuICAoQm9iIEhpZXN0YW5kKQorCWVzY2FwZSgpCQlBZGQgYXJndW1lbnQgdG8gc3BlY2lmeSB3aGF0IHRvIGVzY2FwZSB3aXRoLgorCW1vZGVzdGFjaygpCQlJbnN0ZWFkIG9mIGp1c3QgdGhlIGN1cnJlbnQgbW9kZSByZXR1cm4gdGhlCisJCQkJc3RhY2sgb2YgSW5zZXJ0IC8gQ1RSTC1PIC8gOm5vcm1hbCB0aGluZ3MuCiAJcmVhbG5hbWUoKQkJR2V0IHVzZXIgbmFtZSAoZmlyc3QsIGxhc3QsIGZ1bGwpCiAJCQkJdXNlcl9mdWxsbmFtZSgpIHBhdGNoIGJ5IE5pa29sYWkgV2VpYnVsbCwgTm92CiAJCQkJMyAyMDAyCkBAIC0xNTYxLDcgKzIwNzQsOCBAQAogICAgIGNvbHVtbiBhbmQgbGluZSBudW1iZXI/ICBjb2woIicwIikgY3VycmVudGx5IHJldHVybnMgemVyby4KIDggICBhcmdjKCkgcmV0dXJucyAwIHdoZW4gdXNpbmcgInZpbSAtdCB0YWciLiAgSG93IHRvIGRldGVjdCB0aGF0IG5vIGZpbGUgd2FzCiAgICAgc3BlY2lmaWVkIGluIGFueSB3YXk/ICBUbyBiZSBhYmxlIHRvIGp1bXAgdG8gdGhlIGxhc3QgZWRpdGVkIGZpbGUuCi04ICAgUGFzcyB0aGUgZXhlY3V0YWJsZSBuYW1lIHRvIHRoZSBWaW0gc2NyaXB0cyBpbiBzb21lIHdheS4gIEFzIHY6YXJndjA/Cis4ICAgUGFzcyB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBWaW0gc2NyaXB0cyBpbiBzb21lIHdheS4gIEFzIHY6YXJncworICAgIExpc3Q/ICBPciBleHRyYSBwYXJhbWV0ZXIgdG8gYXJndigpPwogOCAgIEFkZCBjb21tYW5kIGFyZ3VtZW50cyB3aXRoIHRocmVlIGRhc2hlcywgcGFzc2VkIG9uIHRvIFZpbSBzY3JpcHRzLgogNyAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdXNlciBmdW5jdGlvbnM6CiAJOmZ1bmMgbXlGdW5jKGFyZzEsIGFyZzIsIGFyZzMgPSAiYmxhaCIsIGFyZzQgPSAxNykKQEAgLTE1NzEsNiArMjA4NSw3IEBACiA4ICAgVGhlICI9IHJlZ2lzdGVyIHNob3VsZCBiZSB3cml0YWJsZSwgaWYgZm9sbG93ZWQgYnkgdGhlIG5hbWUgb2YgYSB2YXJpYWJsZSwKICAgICBvcHRpb24gb3IgZW52aXJvbm1lbnQgdmFyaWFibGUuCiA4ICAgIjpsZXQgJm9wdGlvbiIgc2hvdWxkIGxpc3QgdGhlIHZhbHVlIG9mIHRoZSBvcHRpb24uCis4ICAgIjpsZXQgRnVuYygpLmZvbyA9IHZhbHVlIiBzaG91bGQgd29yaywgYWxzbyB3aGVuICJmb28iIGRvZXNuJ3QgZXhpc3QuCiA3ICAgQWRkIHN5bklEbGlzdCgpLCBtYWtpbmcgdGhlIHdob2xlIGxpc3Qgb2Ygc3ludGF4IGl0ZW1zIG9uIHRoZSBzeW50YXggc3RhY2sKICAgICBhdmFpbGFibGUgYXMgYSBMaXN0LgogOCAgIEFkZCBhdXRvY29tbWFuZC1ldmVudCBmb3Igd2hlbiBhIHZhcmlhYmxlIGlzIGNoYW5nZWQ6CkBAIC0xNjA2LDYgKzIxMjEsOSBAQAogUGVyZm9ybWFuY2U6CiA3ICAgRm9yIHN0cmluZ3MgdXAgdG8gMyBieXRlcyBkb24ndCBhbGxvY2F0ZSBtZW1vcnksIHVzZSB2X2xpc3QgaXRzZWxmIGFzIGEKICAgICBjaGFyYWN0ZXIgYXJyYXkuICBVc2UgVkFSX1NTVFJJTkcgKHNob3J0IHN0cmluZykuCis4ICAgSW5zdGVhZCBvZiBsb2FkaW5nIHJnYi50eHQgZXZlcnkgdGltZSBhIGNvbG9yIHdhc24ndCByZWNvZ25pemVkIGxvYWQgaXQKKyAgICBvbmNlIGFuZCBrZWVwIGl0IGluIG1lbW9yeS4gIE1vdmUgdGhlIGNvZGUgdG8gYSBjb21tb24gcGxhY2UgdG8gYXZvaWQKKyAgICByZXBlYXRpbmcgaXQgaW4gdmFyaW91cyBzeXN0ZW0gZmlsZXMuCiA4ICAgVHVybiBiX3N5bl9pYyBhbmQgYl9zeW5fY29udGFpbmVkaW4gaW50byBiX3N5bl9mbGFncy4KIDkgICBMb2FkaW5nIG1lbnUudmltIHN0aWxsIHRha2VzIHF1aXRlIGEgYml0IG9mIHRpbWUuICBIb3cgdG8gbWFrZSBpdCBmYXN0ZXI/CiA4ICAgaW5faWRfbGlzdCgpIHRha2VzIG11Y2ggdGltZSBmb3Igc3ludGF4IGhpZ2hsaWdodGluZy4gIENhY2hlIHRoZSByZXN1bHQ/CkBAIC0xNzE5LDYgKzIyMzcsOCBAQAogLSAgIERlbGV0ZSBtZXNzYWdlIGFmdGVyIG5ldyBjb21tYW5kIGhhcyBiZWVuIGVudGVyZWQgYW5kIGhhdmUgd2FpdGVkIGZvciBrZXkuCiAgICAgUGVyaGFwcyBhZnRlciB0ZW4gc2Vjb25kcz8KIC0gICBNYWtlIG1lc3NhZ2UgaGlzdG9yeSBhdmFpbGFibGUgaW4gIm1zZyIgdmFyaWFibGVzOiBtc2cxLCBtc2cyLCAuLiBtc2c5LgorOCAgIFdoZW4gcmVhZGluZyBmcm9tIHN0ZGluIGFsbG93IHN1cHByZXNzaW5nIHRoZSAicmVhZGluZyBmcm9tIHN0ZGluIgorICAgIG1lc3NhZ2UuCiA5ICAgQ2hlY2sgaGFuZGxpbmcgb2Ygb3ZlcndyaXRpbmcgb2YgbWVzc2FnZXMgYW5kIGRlbGF5czoKICAgICBWZXJ5IHdyb25nOiBlcnJvcnMgd2hpbGUgcmVkcmF3aW5nIGNhdXNlIGVuZGxlc3MgbG9vcC4KICAgICBXaGVuIHN3aXRjaGluZyB0byBhbm90aGVyIGZpbGUgYW5kIHNjcmVlbiBzY3JvbGxzIGJlY2F1c2Ugb2YgdGhlIGxvbmcKQEAgLTE4NDAsNiArMjM2MCw5IEBACiAgICAgYmVmb3JlIHRoZSBwcmV2aW91cyAiOnRhZyIgY29tbWFuZC4gKFdlYmIpCiAtICAgV2hlbiBkb2luZyAiW15JIiBvciAiW15EIiBhZGQgcG9zaXRpb24gdG8gdGFnIHN0YWNrLgogLSAgIEFkZCBjb21tYW5kIHRvIHB1dCBjdXJyZW50IHBvc2l0aW9uIHRvIHRhZyBzdGFjazogIjp0cHVzaCIuCistICAgQWRkIGZ1bmN0aW9ucyB0byBzYXZlIGFuZCByZXN0b3JlIHRoZSB0YWcgc3RhY2s/ICBPciBhIGNvbW1hbmQgdG8gc3dpdGNoCisgICAgdG8gYW5vdGhlciB0YWcgc3RhY2s/ICBTbyB0aGF0IHlvdSBjYW4gZG8gc29tZXRoaW5nIGVsc2UgYW5kIGNvbWUgYmFjayB0bworICAgIHdoYXQgeW91IHdlcmUgd29ya2luZyBvbi4KIDcgICBXaGVuIHVzaW5nIENUUkwtXSBvbiBzb21lQ2xhc3M6OnNvbWVNZXRob2QsIHNlcGFyYXRlIGNsYXNzIGZyb20gbWV0aG9kIGFuZAogICAgIHVzZSAiOnRhIGNsYXNzOnNvbWVDbGFzcyBzb21lTWV0aG9kIi4KICAgICBJbmNsdWRlIEMrKyB0YWdzIGNoYW5nZXMgKEJlcnRpbikuCUNoYW5nZSAiY2xhc3M6OmZ1bmMiIHRhZyBpbnRvICJmdW5jIgpAQCAtMjAwMCw2ICsyNTIzLDggQEAKIDggICBBdXRvY29tbWFuZCBmb3Igd2hlbiBtb2RpZmllZCBmaWxlcyBoYXZlIGJlZW4gZm91bmQsIHdoZW4gZ2V0dGluZyBpbnB1dAogICAgIGZvY3VzIGFnYWluIChlLmcuLCBGaWxlQ2hhbmdlZEZvY3VzKS4KICAgICBDaGVjayB3aGVuOiBnZXR0aW5nIGZvY3VzLCBqdW1waW5nIHRvIGFub3RoZXIgYnVmZmVyLCAuLi4KKzcgICBBdXRvY29tbWFuZCBmb3Igd2hlbiBhbiBvcHRpb24gaXMgY2hhbmdlZC4gIE1hdGNoIGJ1ZmZlciBuYW1lIG9yIG9wdGlvbgorICAgIG5hbWU/CiA4ICAgQXV0b2NvbW1hbmRzIHNob3VsZCBub3QgY2hhbmdlIHJlZ2lzdGVycy4gIEFuZCBtYXJrcz8gIEFuZCB0aGUganVtcGxpc3Q/CiAgICAgQW5kIGFueXRoaW5nIGVsc2U/ICBBZGQgYSBjb21tYW5kIHRvIHNhdmUgYW5kIHJlc3RvcmUgdGhlc2UgdGhpbmdzLgogOCAgIEFkZCBhdXRvY29tbWFuZHMsIHVzZXIgZnVuY3Rpb25zIGFuZCB1c2VyIGNvbW1hbmRzIHRvICI6bWt2aW1yYyIuCkBAIC0yMDI5LDYgKzI1NTQsNyBAQAogICAgICpMZWF2ZQkgICAgLSBMZWF2aW5nIGEgbW9kZSAoaW4gcGFpciB3aXRoIHRoZSBhYm92ZSAqRW50ZXIpCiAgICAgVmltTGVhdmVDaGVjayAgICAtIEJlZm9yZSBWaW0gZGVjaWRlcyB0byBleGl0LCBzbyB0aGF0IGl0IGNhbiBiZSBjYW5jZWxsZWQKIAkJICAgICAgd2hlbiBleGl0aW5nIGlzbid0IGEgZ29vZCBpZGVhLgorICAgIEN1cnNvckhvbGRDICAgICAtIEN1cnNvckhvbGQgd2hpbGUgY29tbWFuZC1saW5lIGVkaXRpbmcKICAgICBXaW5Nb3ZlZAkgICAgLSB3aGVuIHdpbmRvd3MgaGF2ZSBiZWVuIG1vdmVkIGFyb3VuZCwgZS5nLCAiOndpbmNtZCBKIgogICAgIENtZFVuZGVmaW5lZCAgICAtIExpa2UgRnVuY1VuZGVmaW5lZCBidXQgZm9yIHVzZXIgY29tbWFuZHMuCiAgICAgU2VhcmNoUG9zdAkgICAgLSBBZnRlciBkb2luZyBhIHNlYXJjaCBjb21tYW5kIChlLmcuIHRvIGRvICJNIikKQEAgLTIwNTMsNyArMjU3OSwxMCBAQAogCQkgICAgICB0aGUgcG9zaXRpb24gYW5kIG51bWJlciBvZiBpbnNlcnRlZC9kZWxldGVkIGxpbmVzLCBzbwogCQkgICAgICB0aGF0IG1hcmtzIGNhbiBiZSB1cGRhdGVkLiAgSGllckFzc2lzdCBoYXMgcGF0Y2ggdG8gYWRkCiAJCSAgICAgIEJ1ZkNoYW5nZVByZSwgQnVmQ2hhbmdlUG9zdCBhbmQgUmV2ZXJ0QnVmLiAoU2hhaCkKLSAgICBXaW5SZXNpemVkCSAgICAtIFdoZW4gYSB3aW5kb3cgaGFzIGJlZW4gcmVzaXplZAorICAgIFZpZXdDaGFuZ2VkCSAgICAtIHRyaWdnZXJlZCB3aGVuIHRoZSB0ZXh0IHNjcm9sbHMgYW5kIHdoZW4gdGhlIHdpbmRvdyBzaXplCisJCSAgICAgIGNoYW5nZXMuCisgICAgV2luUmVzaXplZAkgICAgLSBBZnRlciBhIHdpbmRvdyBoYXMgYmVlbiByZXNpemVkCisgICAgV2luQ2xvc2UJICAgIC0gSnVzdCBiZWZvcmUgY2xvc2luZyBhIHdpbmRvdwogLSAgIFdyaXRlIHRoZSBmaWxlIG5vdyBhbmQgdGhlbiAoJ2F1dG9zYXZlJyk6CiAJCQkJICAqJ2F1dG9zYXZlJyogKidhcycqIConbm9hdXRvc2F2ZScqIConbm9hcycqCiAgICAgJ2F1dG9zYXZlJyAnYXcnIG51bWJlciAgKGRlZmF1bHQgMCkKQEAgLTIwNzAsOCArMjU5OSw2IEBACiAJICBTaG91bGQgd29yayBmb3IgSmF2YSAoRWNsaXBzZSBkb2VzIHRoaXMpLCBQeXRob24sIFRjbCwgZXRjLgogCSAgUmljaGFyZCBFbWJlcnNvbiBtZW50aW9uZWQgd29ya2luZyBvbiBhbiBpbnRlcmZhY2UgdG8gSmF2YS4KIAktIENoZWNrIFJlYWRsaW5lIGZvciBpdHMgY29tcGxldGlvbiBpbnRlcmZhY2UuCi0JLSBVc2UgY3RhZ3MgZm9yIG90aGVyIGxhbmd1YWdlcy4gIFdyaXRpbmcgYSBmaWxlIGNvdWxkIHRyaWdnZXIgcnVubmluZwotCSAgY3RhZ3MsIG1lcmdpbmcgdGhlIHRhZ3Mgb2YgdGhlIGNoYW5nZWQgZmlsZS4KIC0gICBJZGVhcyBmcm9tIG90aGVyczoKIAlodHRwOi8vd3d3Lndob2xldG9tYXRvLmNvbS8KIAlodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD03NDcKQEAgLTIxMDYsNiArMjYzMywxMiBAQAogOCAgIEFkZCBvcHRpb24gdG8gc2V0IGRpZmZlcmVudCBiZWhhdmlvciBmb3IgSW5zZXJ0IG1vZGUgY29tcGxldGlvbjoKICAgICAtIGlnbm9yZS9tYXRjaCBjYXNlCiAgICAgLSBkaWZmZXJlbnQgY2hhcmFjdGVycyB0aGFuICdpc2tleXdvcmQnCis4ICAgQWRkIG9wdGlvbiAnaXNleHBhbmQnLCBjb250YWluaW5nIGNoYXJhY3RlcnMgd2hlbiBkb2luZyBleHBhbnNpb24gKHNvIHRoYXQKKyAgICAiLiIgYW5kICJcIiBjYW4gYmUgaW5jbHVkZWQsIHdpdGhvdXQgY2hhbmdpbmcgJ2lza2V5d29yZCcpLiAoR29sZGZhcmIpCisgICAgQWxzbzogJ2lzdGFnd29yZCc6IGNoYXJhY3RlcnMgdXNlZCBmb3IgQ1RSTC1dLgorICAgIFdoZW4gJ2lzZXhwYW5kJyBvciAnaXN0YWd3b3JkJyBhcmUgZW1wdHksIHVzZSAnaXNrZXl3b3JkJy4KKyAgICBBbHRlcm5hdGl2ZTogVXNlIGEgcGF0dGVybiBzbyB0aGF0IHN0YXJ0IGFuZCBlbmQgb2YgYSBrZXl3b3JkIGNhbiBiZQorICAgIGRlZmluZWQsIG9ubHkgYWxsb3cgZGFzaCBpbiB0aGUgbWlkZGxlLCBldGMuCiA4ICAgQWRkIGEgY29tbWFuZCB0byB1bmRvIHRoZSBjb21wbGV0aW9uLCBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCB0ZXh0LgogNyAgIENvbXBsZXRpb24gb2YgYW4gYWJicmV2aWF0aW9uOiBDYW4gbGVhdmUgbGV0dGVycyBvdXQsIGxpa2Ugd2hhdCBJbnN0YW50CiAgICAgdGV4dCBkb2VzOiB3d3cudGV4dHdhcmUuY29tCkBAIC0yMTM2LDEwICsyNjY5LDYgQEAKIC0gICBDVFJMLVggQ1RSTC1GOiBVc2UgJ3BhdGgnIHRvIGZpbmQgY29tcGxldGlvbnMuCiAtICAgQ1RSTC1YIENUUkwtRjogT3B0aW9uIHRvIHVzZSBmb3J3YXJkIHNsYXNoZXMgb24gTVMtV2luZG93cz8KIC0gICBDVFJMLVggQ1RSTC1GOiBEb24ndCByZXBsYWNlICIkVklNIiB3aXRoIHRoZSBhY3R1YWwgdmFsdWUuIChLZWxseSkKLTggICBBZGQgb3B0aW9uICdpc2V4cGFuZCcsIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB3aGVuIGRvaW5nIGV4cGFuc2lvbiAoc28gdGhhdAotICAgICIuIiBhbmQgIlwiIGNhbiBiZSBpbmNsdWRlZCwgd2l0aG91dCBjaGFuZ2luZyAnaXNrZXl3b3JkJykuIChHb2xkZmFyYikKLSAgICBBbHNvOiAnaXN0YWd3b3JkJzogY2hhcmFjdGVycyB1c2VkIGZvciBDVFJMLV0uCi0gICAgV2hlbiAnaXNleHBhbmQnIG9yICdpc3RhZ3dvcmQnIGFyZSBlbXB0eSwgdXNlICdpc2tleXdvcmQnLgogLSAgIEFsbG93IGxpc3RpbmcgYWxsIG1hdGNoZXMgaW4gc29tZSB3YXkgKGFuZCBwaWNraW5nIG9uZSBmcm9tIHRoZSBsaXN0KS4KIAogCkBAIC0yMjU1LDYgKzI3ODQsNyBAQAogCiAKICdjaW5kZW50JywgJ3NtYXJ0aW5kZW50JzoKKzggICBMaXNwIGluZGVudGluZzogIlxcIiBjb25mdXNlcyB0aGUgaW5kZW50ZXIuIChEb3JhaSBTaXRhcmFtLCAyMDA2IE1heSAxNykKIDggICBKYXZhOiBJbnNpZGUgYW4gYW5vbnltb3VzIGNsYXNzLCBhZnRlciBhbiAiZWxzZSIgb3IgInRyeSIgdGhlIGluZGVudCBpcwogICAgIHRvbyBzbWFsbC4gKFZpbmNlbnQgQmVyZ2JhdWVyKQogICAgIFByb2JsZW0gb2YgdXNpbmcge30gaW5zaWRlICgpLCAnY2luZGVudCcgZG9lc24ndCB3b3JrIHRoZW4uCkBAIC0yMjY1LDYgKzI3OTUsMTEgQEAKIAkJCSAgICAiYXNkZiIKIAkJCX0KIAkJICAgICk7Cis2ICAgQWRkICdjaW5vJyBmbGFnIGZvciB0aGlzIGZ1bmN0aW9uIGFyZ3VtZW50IGxheW91dDogKFNwZW5jZXIgQ29sbHllcikKKwkgICAgZnVuYyggYXJnMQorCSAgICAgICAgLCBhcmcyCisJCSwgYXJnMworCQkpOwogNyAgIEFkZCBzZXBhcmF0ZSAiKDAiIG9wdGlvbiBpbnRvIGluc2lkZS9vdXRzaWRlIGEgZnVuY3Rpb24gKFplbGxuZXIpOgogCWZ1bmMoCiAJICAgaW50IHgpCS8vIGluZGVudCBsaWtlICIoNCIKQEAgLTI0MzksNyArMjk3NCw2IEBACiA2ICAgSW4gbm9uLUJsb2NrIG1vZGUsICJJIiBzaG91bGQgaW5zZXJ0IHRoZSBzYW1lIHRleHQgaW4gZnJvbnQgb2YgZWFjaCBsaW5lLAogICAgIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWJsYW5rLCAiZ0kiIGluIGNvbHVtbiAxLgogNiAgIEluIG5vbi1CbG9jayBtb2RlLCAiQSIgc2hvdWxkIGFwcGVuZCB0aGUgc2FtZSB0ZXh0IGFmdGVyIGVhY2ggbGluZS4KLTYgICAiOic8LCc+c291cmNlIiBzaG91bGQgcmVhZCB0aGUgc2VsZWN0ZWQgbGluZXMgYW5kICI6c291cmNlIiB0aGVtLgogNiAgIFdoZW4gaW4gYmxvY2t3aXNlIHZpc3VhbCBzZWxlY3Rpb24gKENUUkwtViksIGFsbG93IGN1cnNvciB0byBiZSBwbGFjZWQKICAgICByaWdodCBvZiB0aGUgbGluZS4gIENvdWxkIGFsc28gYWxsb3cgY3Vyc29yIHRvIGJlIHBsYWNlZCBhbnl3aGVyZSBvbiBhIFRBQgogICAgIG9yIG90aGVyIHNwZWNpYWwgY2hhcmFjdGVyLgpAQCAtMjU0OSw3ICszMDgzLDkgQEAKIFNlYXJjaGluZzoKIDggICBBZGQgImcvIiBhbmQgImdiIiB0byBzZWFyY2ggZm9yIGEgcGF0dGVybiBpbiB0aGUgVmlzdWFsbHkgc2VsZWN0ZWQgdGV4dD8KICAgICAiZz8iIGlzIGFscmVhZHkgdXNlZCBmb3Igcm90MTMuCisgICAgVGhlIHZpcy52aW0gc2NyaXB0IGhhcyBhICI6UyIgY29tbWFuZCB0aGF0IGRvZXMgc29tZXRoaW5nIGxpa2UgdGhpcy4KICAgICBDYW4gdXNlICJnLyIgaW4gTm9ybWFsIG1vZGUsIHVzZXMgdGhlICc8IHRvICc+IGFyZWEuCisgICAgVXNlICImLyIgZm9yIHNlYXJjaGluZyB0aGUgdGV4dCBpbiB0aGUgVmlzdWFsIGFyZWE/CiA4ICAgQWRkIGEgbWVjaGFuaXNtIGZvciByZWN1cnNpdmVuZXNzOiAiXEAoKFteKCldKlxAZ1teKCldKilcKSIuICBcQGcgc3RhbmRzCiAgICAgZm9yICJnbyByZWN1cnNpdmUgaGVyZSIgYW5kIFxAKCBcKSBtYXJrcyB0aGUgcmVjdXJzaXZlIHBhcnQuCiAgICAgUGVybCBkb2VzIGl0IHRoaXMgd2F5OgpAQCAtMjU1Nyw2ICszMDkzLDkgQEAKICAgICBIZXJlICRwYXJlbiBpcyBldmFsdWF0ZWQgd2hlbiBpdCdzIGVuY291bnRlcmVkLiAgVGhpcyBpcyBsaWtlIGEgcmVnZXhwCiAgICAgaW5zaWRlIGEgcmVnZXhwLiAgSW4gdGhlIGFib3ZlIHRlcm1zIGl0IHdvdWxkIGJlOgogCSAgICBcQCgoXChbXigpXVx8XEBnXCkqKVwpCis4ICAgU2hvdyB0aGUgcHJvZ3Jlc3MgZXZlcnkgc2Vjb25kLiAgQ291bGQgdXNlIHRoZSBjb2RlIHRoYXQgY2hlY2tzIGZvciBDVFJMLUMKKyAgICB0byBmaW5kIG91dCBob3cgbXVjaCB0aW1lIGhhcyBwYXNzZWQuICBPciB1c2UgU0lHQUxSTS4gIFdoZXJlIHRvIHNob3cgdGhlCisgICAgbnVtYmVyPwogNyAgIFN1cHBvcnQgZm9yIGFwcHJveGltYXRlLXJlZ2V4cHMgdG8gZmluZCBzaW1pbGFyIHdvcmRzIChhZ3JlcAogICAgIGh0dHA6Ly93d3cudGdyaWVzLmRlL2FncmVwLyB0cmU6IGh0dHA6Ly9sYXVyaWthcmkubmV0L3RyZS9pbmRleC5odG1sKS4KIDggICBBZGQgYW4gaXRlbSBmb3IgYSBiaWcgY2hhcmFjdGVyIHJhbmdlLCBzbyB0aGF0IG9uZSBjYW4gc2VhcmNoIGZvciBhCkBAIC0yNjYxLDYgKzMyMDAsMTMgQEAKIAogCiBVbmRvOgorOCAgIFVuZG8gdHJlZTogdmlzdWFsbHkgc2hvdyB0aGUgdHJlZSBzb21laG93IChEYW1pYW4gQ29ud2F5KQorICAgIFNob3cgb25seSB0aGUgbGVhdmVzLCBpbmRpY2F0aW5nIGhvdyBtYW55IGNoYW5nZWQgZnJvbSB0aGUgYnJhbmNoIGFuZCB0aGUKKyAgICB0aW1lc3RhbXA/CisgICAgUHV0IGJyYW5jaCB3aXRoIG1vc3QgcmVjZW50IGNoYW5nZSBvbiB0aGUgbGVmdCwgb2xkZXIgY2hhbmdlcyBnZXQgbW9yZQorICAgIGluZGVudD8KKzggICBTZWFyY2ggZm9yIHBhdHRlcm4gaW4gdW5kbyB0cmVlLCBzaG93aW5nIHdoZW4gaXQgaGFwcGVuZWQgYW5kIHRoZSB0ZXh0CisgICAgc3RhdGUsIHNvIHRoYXQgeW91IGNhbiBqdW1wIHRvIGl0LgogLSAgIFBlcnNpc3RlbnQgdW5kbzogc3RvcmUgdW5kbyBpbiBhIGZpbGUuCiAgICAgVXNlIHRpbWVzdGFtcHMsIHNvIHRoYXQgYSB2ZXJzaW9uIGEgY2VydGFpbiB0aW1lIGFnbyBjYW4gYmUgZm91bmQgYW5kIGluZm8KICAgICBiZWZvcmUgc29tZSB0aW1lL2RhdGUgY2FuIGJlIGZsdXNoZWQuICd1bmRvcGVyc2lzdCcgZ2l2ZXMgbWF4aW11bSB0aW1lIHRvCkBAIC0zMDMzLDggKzM1NzksMTMgQEAKICAgICBuZXh0IDxsaT4sIF08IHRvIG5leHQgPC9saT4sIFs8IHRvIHByZXZpb3VzIDwvbGk+LgogOCAgIEFkZCAiOnJlbmFtZSIgY29tbWFuZDogcmVuYW1lIHRoZSBmaWxlIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBhbmQgcmVuYW1lCiAgICAgdGhlIGJ1ZmZlci4gIEJ1ZmZlciBtYXkgYmUgbW9kaWZpZWQuCis3ICAgSW5zdGVhZCBvZiBmaWx0ZXJpbmcgZXJyb3JzIHdpdGggYSBzaGVsbCBzY3JpcHQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvCisgICAgZG8gdGhpcyB3aXRoIFZpbSBzY3JpcHQuICBBIGZ1bmN0aW9uIHRoYXQgZmlsdGVycyB0aGUgcmF3IHRleHQgdGhhdCBjb21lcworICAgIGZyb20gdGhlICdtYWtlcHJnJz8KIC0gICBBZGQgJWIgdG8gJ2Vycm9yZm9ybWF0JzogYnVmZmVyIG51bWJlci4gKFllZ2FwcGFuIExha3NobWFuYW4gLyBTdXJlc2gKICAgICBHb3ZpbmRhY2hhcikKKzcgICBBZGQgYSBjb21tYW5kIHRoYXQgZ29lcyBiYWNrIHRvIHRoZSBwb3NpdGlvbiBmcm9tIGJlZm9yZSBqdW1waW5nIHRvIHRoZQorICAgIGZpcnN0IHF1aWNrZml4IGxvY2F0aW9uLiAgIjpjYmVmb3JlIj8KIDYgICBJbiB0aGUgcXVpY2tmaXggd2luZG93IHN0YXR1c2xpbmUgYWRkIHRoZSBjb21tYW5kIHVzZWQgdG8gZ2V0IHRoZSBsaXN0IG9mCiAgICAgZXJyb3JzLCBlLmcuICI6bWFrZSBmb28iLCAiOmdyZXAgc29tZXRoaW5nICouYyIuCiA2ICAgUHl0aG9uIGludGVyZmFjZTogYWRkIHZpbS5tZXNzYWdlKCkgZnVuY3Rpb24uIChNaWNoYWwgVml0ZWNlaywgMjAwMiBOb3YgNSkKQEAgLTMwNDcsNyArMzU5OCw2IEBACiAgICAgdG8gbWFuaXB1bGF0ZSB0ZXh0IHdpdGhvdXQgY2hhbmdpbmcgdGhlIHdpbmRvdyBsYXlvdXQuCiA4ICAgQWRkIGEgY29tbWFuZCB0byByZXZlcnQgdG8gdGhlIHNhdmVkIHZlcnNpb24gb2YgZmlsZTsgdW5kbyBvciByZWRvIHVudGlsCiAgICAgYWxsIGNoYW5nZXMgYXJlIGdvbmUuCi03ICAgQWRkIGEgIjpjcGZpbGUiLCBnbyBpbiB0aGUgb3RoZXIgZGlyZWN0aW9uIGFzICI6Y25maWxlIi4KIDYgICAidmltIC1xIC0iIHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGVycm9ycyBmcm9tIHN0ZGluLiAoR2F1dGFtIE11ZHVudXJpKQogOCAgIEFkZCAiLS1yZW1vdGUtZmFpbCI6IFdoZW4gY29udGFjdGluZyB0aGUgc2VydmVyIGZhaWxzLCBleGl0IFZpbS4KICAgICBBZGQgIi0tcmVtb3RlLXNlbGYiOiBXaGVuIGNvbnRhY3RpbmcgdGhlIHNlcnZlciBmYWlscywgZG8gaXQgaW4gdGhpcyBWaW0uCkBAIC0zMDY4LDcgKzM2MTgsNiBAQAogICAgIGV0Yy4gIENvbWJpbmF0aW9ucyBvZiBBbHQsIEN0cmwgYW5kIFNoaWZ0IGFyZSBhbHNvIHBvc3NpYmxlLiAgUmVjb2duaXplCiAgICAgdGhlc2UgdG8gYXZvaWQgaW5zZXJ0aW5nIHRoZSByYXcgYnl0ZSBzZXF1ZW5jZSwgaGFuZGxlIGxpa2UgdGhlIGtleQogICAgIHdpdGhvdXQgbW9kaWZpZXIgKHVubGVzcyBtYXBwZWQpLgotOCAgIEFkZCAiOmJyZWFrZGVsICoiOiBkZWxldGUgYWxsIGJyZWFrcG9pbnRzLgogNyAgIFN1cHBvcnQgIjpicm93c2UgZWRpdCIgaW4gY29uc29sZSwgdXNpbmcgZXhwbG9yZXIudmltPwogNiAgIEFkZCAiZ0ciOiBsaWtlIHdoYXQgImdqIiBpcyB0byAiaiI6IGdvIHRvIHRoZSBOJ3RoIHdpbmRvdyBsaW5lLgogOCAgIEFkZCBjb21tYW5kIGxpa2UgIjpub3JtYWwiIHRoYXQgYWNjZXB0cyA8S2V5PiBub3RhdGlvbiBsaWtlICI6bWFwIi4KQEAgLTMxMDcsMTMgKzM2NTYsNiBAQAogNyAgIEhhdmUgYSBsb29rIGF0IHZpSCAoSGVsbGVuaWMgb3IgR3JlZWsgdmVyc2lvbiBvZiBWaW0pLiAgQnV0IGEgc29sdXRpb24KICAgICBvdXRzaWRlIG9mIFZpbSBtaWdodCBiZSBzYXRpc2ZhY3RvcnkgKEhhcml0c2lzKS4KIDMgICBNYWtlICIyZCUiIHdvcmsgbGlrZSAiZCVkJSIgaW5zdGVhZCBvZiAiZDIlIj8KLTggICBNYWtlICJtb3JlIiBwcm9tcHQgYWNjZXB0IGNvbW1hbmQgY2hhcmFjdGVycywgbGlrZSAiaGl0LWVudGVyIiBwcm9tcHQ/Ci0gICAgT3IgZXh0ZW5kIGl0IHdpdGggbW9yZSBjb21tYW5kcywgbGlrZSAibGVzcyI6ICdiJyBmb3IgYmFjaywgJ2onIGZvciBvbmUKLSAgICBsaW5lIGRvd24sIGV0Yy4KLTggICBGb3IgdGhlICItLW1vcmUtLSIgcHJvbXB0LCBzdXBwb3J0IHRoZSAnYidhY2sgY29tbWFuZCBmb3IgbW9yZSBjb21tYW5kcy4KLSAgICBQb3NzaWJsZSBpbXBsZW1lbnRhdGlvbjogRG8gaXQgYXQgYSB2ZXJ5IGxvdyBsZXZlbCwgY2FjaGluZyB0aGUgbGluZXMgdGhhdAotICAgIGFyZSBvbiB0aGUgc2NyZWVuICh3aXRoIGhpZ2hsaWdodCBhdHRyaWJ1dGVzKS4gIEF2b2lkcyB0aGF0IGNoYW5nZXMgaGF2ZQotICAgIHRvIGJlIG1hZGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBsaXN0IHNvbWV0aGluZy4KIDcgICAiZyBDVFJMLU8iIGp1bXBzIGJhY2sgdG8gbGFzdCB1c2VkIGJ1ZmZlci4JU2tpcCBDVFJMLU8ganVtcHMgaW4gdGhlIHNhbWUKICAgICBidWZmZXIuICBNYWtlIGp1bXBsaXN0IHJlbWVtYmVyIHRoZSBsYXN0IHRlbiBhY2Nlc3NlZCBidWZmZXJzPwogLSAgIEtlZXAgYSBsaXN0IG9mIG1vc3QgcmVjZW50bHkgdXNlZCBmaWxlcyBmb3IgZWFjaCB3aW5kb3csIHVzZSAiW28iIHRvIGdvCkBAIC0zMTQ2LDggKzM2ODgsNiBAQAogICAgIG9mIHRoZSBmaWxlcy4gIE9ubHkgY2hlY2sgd2hlbiBhbiBldmVudCBvY2N1cnMgKGUuZy4sIGNoYXJhY3RlciB0eXBlZCwKICAgICBtb3VzZSBtb3ZlZCkuICBVc2VmdWwgZm9yIG5vbi1HVUkgdmVyc2lvbnMgd2hlcmUga2V5Ym9hcmQgZm9jdXMgaXNuJ3QKICAgICBub3RpY2VhYmxlLgotOSAgIFdoZW4gdXNpbmcgIjp3IDxmbmFtZT4iIGl0J3MgcG9zc2libGUgdGhhdCB0aGlzIGZpbGUgaXMgbG9hZGVkIGluIGFub3RoZXIKLSAgICBidWZmZXIuICBHaXZlIGEgd2FybmluZyByaWdodCBhd2F5LCBkb24ndCB3YWl0IGZvciBhIHNoZWxsIGNvbW1hbmQuCiAtICAgTWFrZSAnc21hcnRjYXNlJyB3b3JrIGV2ZW4gdGhvdWdoICdpYycgaXNuJ3Qgc2V0IChXZWJiKS4KIDcgICBXaGVuIGZvcm1hdHRpbmcgdGV4dCwgYWxsb3cgdG8gYnJlYWsgdGhlIGxpbmUgYXQgYSBudW1iZXIgb2YgY2hhcmFjdGVycy4KICAgICBVc2UgYW4gb3B0aW9uIGZvciB0aGlzOiAnYnJlYWtjaGFycyc/ICBVc2VmdWwgZm9yIGZvcm1hdHRpbmcgRm9ydHJhbiBjb2RlLgpAQCAtMzE1Niw4ICszNjk2LDggQEAKICAgICBwYXJhZ3JhcGhzKS4gIENvbXBsZW1lbnRzIHRoZSAnMicgZmxhZy4gIFVzZSAnPicgZmxhZyB3aGVuIGxhcmdlciBpbmRlbnQKICAgICBzdGFydHMgYSBuZXcgcGFyYWdyYXBoLCB1c2UgJzwnIGZsYWcgd2hlbiBzbWFsbGVyIGluZGVudCBzdGFydHMgYSBuZXcKICAgICBwYXJhZ3JhcGguCUJvdGggc3RhcnQgYSBuZXcgcGFyYWdyYXBoIG9uIGFueSBpbmRlbnQgY2hhbmdlLgotNyAgIEFkZCBhIHdheSB0byBkZWZpbmUgYW4gaXRlbSBsaXN0IHdpdGggYSBwYXR0ZXJuIGluICdmb3JtYXRvcHRpb25zJy4gIFRoZQotICAgICduJyBmbGFnIGRvZXNuJ3Qgd29yayBmb3IgIjYuMyIgb3IgIjZhLiIuCis4ICAgVGhlICdhJyBmbGFnIGluICdmb3JtYXRvcHRpb25zJyBpcyB0b28gZGFuZ2Vyb3VzLiAgSW4gc29tZSB3YXkgb25seSBkbworICAgIGF1dG8tZm9ybWF0dGluZyBpbiBzcGVjaWZpYyByZWdpb25zLCBlLmcuIGRlZmluZWQgYnkgc3ludGF4IGhpZ2hsaWdodGluZy4KIDggICBBbGxvdyB1c2luZyBhIHRyYWlsaW5nIHNwYWNlIHRvIHNpZ25hbCBhIHBhcmFncmFwaCB0aGF0IGNvbnRpbnVlcyBvbiB0aGUKICAgICBuZXh0IGxpbmUgKE1JTUUgdGV4dC9wbGFpbjsgZm9ybWF0PWZsb3dlZCwgUkZDIDI2NDYpLiAgQ2FuIGJlIHVzZWQgZm9yCiAgICAgY29udGludW91cyBmb3JtYXR0aW5nLiAgQ291bGQgdXNlICdhdXRvZm9ybWF0JyBvcHRpb24sIHdoaWNoIHNwZWNpZmllcyBhCkBAIC0zMzU4LDggKzM4OTgsNiBAQAogLSAgIEFtaWdhOiB0ZXN0IGZvciAndycgZmxhZyB3aGVuIHJlYWRpbmcgYSBmaWxlLgogLSAgIDp0YWJsZSBjb21tYW5kIChXZWJiKQogLSAgIEFkZCBuZXcgb3BlcmF0b3I6IGNsZWFyLCBtYWtlIGFyZWEgd2hpdGUgKHJlcGxhY2Ugd2l0aCBzcGFjZXMpOiAiZyAiLgotLSAgIE1ha2UgaXQgcG9zc2libGUgZm9yIGEgdXNlciB0byBkZWZpbmUgYSBuZXcgb3BlcmF0b3IuICBJbXBsZW1lbnRhdGlvbiB3aXRoCi0gICAgaW50ZXJuYWwgc2NyaXB0aW5nIGxhbmd1YWdlIG9yIFBlcmw/CiAtICAgQWRkIGNvbW1hbmQgdG8gIjpyZWFkIiBhIGZpbGUgYXQgYSBjZXJ0YWluIGNvbHVtbiAoYmxvY2t3aXNlIHJlYWQ/KS4KIC0gICBBZGQgc29ydCBvZiByZXBsYWNlIG1vZGUgd2hlcmUgY2FzZSBpcyB0YWtlbiBmcm9tIHRoZSBvbGQgdGV4dCAoR29sZGZhcmIpLgogLSAgIEFsbG93IG11bHRpcGxlIGFyZ3VtZW50cyBmb3IgIjpyZWFkIiwgcmVhZCBhbGwgdGhlIGZpbGVzLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzAxLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKaW5kZXggZmMzYjNlZS4uOTcxNDkwMyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzAxLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IE9jdCAwOAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNTcsMTAgKzU3LDEwIEBACiAJCQkJCQkJKm5vdC1jb21wYXRpYmxlKgogVGhlIG1hbnVhbHMgb2Z0ZW4gYXNzdW1lIHlvdSBhcmUgdXNpbmcgVmltIHdpdGggVmktY29tcGF0aWJpbGl0eSBzd2l0Y2hlZAogb2ZmLiAgRm9yIG1vc3QgY29tbWFuZHMgdGhpcyBkb2Vzbid0IG1hdHRlciwgYnV0IHNvbWV0aW1lcyBpdCBpcyBpbXBvcnRhbnQsCi1lLmcuLCBmb3IgbXVsdGktbGV2ZWwgdW5kby4gIEFuIGVhc3kgd2F5IHRvIG1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIHRoZSByaWdodAotc2V0dXAsIGNvcHkgdGhlIGV4YW1wbGUgdmltcmMgZmlsZS4gIEJ5IGRvaW5nIHRoaXMgaW5zaWRlIFZpbSB5b3UgZG9uJ3QgaGF2ZQotdG8gY2hlY2sgb3V0IHdoZXJlIGl0IGlzIGxvY2F0ZWQuICBIb3cgdG8gZG8gdGhpcyBkZXBlbmRzIG9uIHRoZSBzeXN0ZW0geW91Ci1hcmUgdXNpbmc6CitlLmcuLCBmb3IgbXVsdGktbGV2ZWwgdW5kby4gIEFuIGVhc3kgd2F5IHRvIG1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgbmljZQorc2V0dXAgaXMgdG8gY29weSB0aGUgZXhhbXBsZSB2aW1yYyBmaWxlLiAgQnkgZG9pbmcgdGhpcyBpbnNpZGUgVmltIHlvdSBkb24ndAoraGF2ZSB0byBjaGVjayBvdXQgd2hlcmUgaXQgaXMgbG9jYXRlZC4gIEhvdyB0byBkbyB0aGlzIGRlcGVuZHMgb24gdGhlIHN5c3RlbQoreW91IGFyZSB1c2luZzoKIAogVW5peDogPgogCTohY3AgLWkgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0gfi8udmltcmMKQEAgLTE1NSw3ICsxNTUsNyBAQAogTW9vbGVuYWFyLiAgVGhpcyBtYXRlcmlhbCBtYXkgYmUgZGlzdHJpYnV0ZWQgb25seSBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQKIGNvbmRpdGlvbnMgc2V0IGZvcnRoIGluIHRoZSBPcGVuIFB1YmxpY2F0aW9uIExpY2Vuc2UsIHYxLjAgb3IgbGF0ZXIuICBUaGUKIGxhdGVzdCB2ZXJzaW9uIGlzIHByZXNlbnRseSBhdmFpbGFibGUgYXQ6Ci0JICAgICBodHRwOi8vd3d3Lm9wZW5jb250ZW50Lm9yZy9vcGwuc2h0bWwKKwkgICAgIGh0dHA6Ly93d3cub3BlbmNvbnRlbnQub3JnL29wZW5wdWIvCiAKIFBlb3BsZSB3aG8gY29udHJpYnV0ZSB0byB0aGUgbWFudWFscyBtdXN0IGFncmVlIHdpdGggdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLgpAQCAtMTY0LDggKzE2NCw4IEBACiBPdWFsbGluZSAocHVibGlzaGVkIGJ5IE5ldyBSaWRlcnMgUHVibGlzaGluZywgSVNCTjogMDczNTcxMDAxNSkuICBUaGUgT3BlbgogUHVibGljYXRpb24gTGljZW5zZSBhcHBsaWVzIHRvIHRoaXMgYm9vay4gIE9ubHkgc2VsZWN0ZWQgcGFydHMgYXJlIGluY2x1ZGVkCiBhbmQgdGhlc2UgaGF2ZSBiZWVuIG1vZGlmaWVkIChlLmcuLCBieSByZW1vdmluZyB0aGUgcGljdHVyZXMsIHVwZGF0aW5nIHRoZQotdGV4dCBmb3IgVmltIDYuMCBhbmQgZml4aW5nIG1pc3Rha2VzKS4gIFRoZSBvbWlzc2lvbiBvZiB0aGUgfGZyb21ib29rfCB0YWcKLWRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdGV4dCBkb2VzIG5vdCBjb21lIGZyb20gdGhlIGJvb2suCit0ZXh0IGZvciBWaW0gNi4wIGFuZCBsYXRlciwgZml4aW5nIG1pc3Rha2VzKS4gIFRoZSBvbWlzc2lvbiBvZiB0aGUgfGZyb21ib29rfAordGFnIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdGV4dCBkb2VzIG5vdCBjb21lIGZyb20gdGhlIGJvb2suCiAKIE1hbnkgdGhhbmtzIHRvIFN0ZXZlIE91YWxsaW5lIGFuZCBOZXcgUmlkZXJzIGZvciBjcmVhdGluZyB0aGlzIGJvb2sgYW5kCiBwdWJsaXNoaW5nIGl0IHVuZGVyIHRoZSBPUEwhICBJdCBoYXMgYmVlbiBhIGdyZWF0IGhlbHAgd2hpbGUgd3JpdGluZyB0aGUgdXNlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA0LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQKaW5kZXggNDAzYTg2MS4uMjlhOWVjOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA0LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wNC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEp1biAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMzkwLDcgKzM5MCw3IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICowNC44KglUZXh0IG9iamVjdHMKIAotSWYgdGhlIGN1cnNvciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZCBhbmQgd2FudCB0byBkZWxldGUgdGhhdCB3b3JkLCB5b3UKK0lmIHRoZSBjdXJzb3IgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQgYW5kIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGF0IHdvcmQsIHlvdQogbmVlZCB0byBtb3ZlIGJhY2sgdG8gaXRzIHN0YXJ0IGJlZm9yZSB5b3UgY2FuIGRvICJkdyIuICBUaGVyZSBpcyBhIHNpbXBsZXIgd2F5CiB0byBkbyB0aGlzOiAiZGF3Ii4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wNS50eHQKaW5kZXggOGQyYjg4ZS4uYTk3ODBjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wNS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDUudHh0KglGb3IgVmltIHZlcnNpb24gNy4xYS4gIExhc3QgY2hhbmdlOiAyMDA2IEp1bCAxMAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMjAyLDggKzIwMiw4IEBACiBkZWZpbmVzIHRoYXQgd2hlbiB0aGUgZmlsZSB0eXBlIGlzIHNldCB0byAidGV4dCIgdGhlIGZvbGxvd2luZyBjb21tYW5kIGlzCiBhdXRvbWF0aWNhbGx5IGV4ZWN1dGVkLiAgInNldGxvY2FsIHRleHR3aWR0aD03OCIgc2V0cyB0aGUgJ3RleHR3aWR0aCcgb3B0aW9uCiB0byA3OCwgYnV0IG9ubHkgbG9jYWxseSBpbiBvbmUgZmlsZS4KLT4KIAorCQkJCQkJCSpyZXN0b3JlLWN1cnNvciogID4KIAlhdXRvY21kIEJ1ZlJlYWRQb3N0ICoKIAkgICAgXCBpZiBsaW5lKCInXCIiKSA+IDAgJiYgbGluZSgiJ1wiIikgPD0gbGluZSgiJCIpIHwKIAkgICAgXCAgIGV4ZSAibm9ybWFsIGdgXCIiIHwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQgYi9ydW50aW1lL2RvYy91c3JfMDYudHh0CmluZGV4IGNkNDBiZTQuLmQ5YzBiY2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA2LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDYudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA2LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNy50eHQgYi9ydW50aW1lL2RvYy91c3JfMDcudHh0CmluZGV4IDFmYjdiNWYuLjQxMDhlNDAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDcudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8xMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMTEudHh0CmluZGV4IDAxZTMxNTUuLmUzYWRmNDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8xMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzExLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMTEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzExLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMTIudHh0CmluZGV4IDFlMmVlMjQuLjkxOWNkNGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzEyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMTIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzEyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBOb3YgMTgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTM4LDggKzM4LDggQEAKIAogCTolcy9cPGZvdXIvNC9nCiAKLU9idmlvdXNseSwgdGhpcyBzdGlsbCBnb2VzIHdyb25nIG9uICJmb3VydHkiLiAgVXNlICJcPiIgdG8gbWF0Y2ggdGhlIGVuZCBvZiBhCi13b3JkOiA+CitPYnZpb3VzbHksIHRoaXMgc3RpbGwgZ29lcyB3cm9uZyBvbiAiZm91cnRlZW4iLiAgVXNlICJcPiIgdG8gbWF0Y2ggdGhlIGVuZCBvZgorYSB3b3JkOiA+CiAKIAk6JXMvXDxmb3VyXD4vNC9nCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQgYi9ydW50aW1lL2RvYy91c3JfMjAudHh0CmluZGV4IDc4ZTdhNTYuLmE0MzIwZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzIwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMjMudHh0CmluZGV4IDEyMGZlNzMuLmM2YzM4ZWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzIzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQgYi9ydW50aW1lL2RvYy91c3JfMjcudHh0CmluZGV4IDFlNjFmOTMuLjlkOTA0YTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjcudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzI3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQgYi9ydW50aW1lL2RvYy91c3JfMjgudHh0CmluZGV4IGFkNGYwMjQuLmJiOGRhN2YgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzI4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8zMC50eHQgYi9ydW50aW1lL2RvYy91c3JfMzAudHh0CmluZGV4IDRlNzZiM2QuLmNhOGNiYWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8zMC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzMwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMzAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzMwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjIKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTUwLDcgKzUwLDcgQEAKIAkyIHJldHVybmVkIH4KIAkibWFpbi5jIiAxMUwsIDExMUMgfgogCSgzIG9mIDYpOiB0b28gbWFueSBhcmd1bWVudHMgdG8gZnVuY3Rpb24gJ2RvX3N1YicgfgotCUhpdCBFTlRFUiBvciB0eXBlIGNvbW1hbmQgdG8gY29udGludWUgfgorCVByZXNzIEVOVEVSIG9yIHR5cGUgY29tbWFuZCB0byBjb250aW51ZSB+CiAKIEZyb20gdGhpcyB5b3UgY2FuIHNlZSB0aGF0IHlvdSBoYXZlIGVycm9ycyBpbiB0aGUgZmlsZSAibWFpbi5jIi4gIFdoZW4geW91CiBwcmVzcyA8RW50ZXI+LCBWaW0gZGlzcGxheXMgdGhlIGZpbGUgIm1haW4uYyIsIHdpdGggdGhlIGN1cnNvciBwb3NpdGlvbmVkIG9uCkBAIC0xNDgsNyArMTQ4LDcgQEAKIAogT0xEIEVSUk9SIExJU1RTCiAKLVN1cHBvc2UgeW91ICI6bWFrZSIgYSBwcm9ncmFtLiAgVGhlcmUgaXMgYW4gd2FybmluZyBtZXNzYWdlIGluIG9uZSBmaWxlIGFuZCBhbgorU3VwcG9zZSB5b3UgIjptYWtlIiBhIHByb2dyYW0uICBUaGVyZSBpcyBhIHdhcm5pbmcgbWVzc2FnZSBpbiBvbmUgZmlsZSBhbmQgYW4KIGVycm9yIG1lc3NhZ2UgaW4gYW5vdGhlci4gIFlvdSBmaXggdGhlIGVycm9yIGFuZCB1c2UgIjptYWtlIiBhZ2FpbiB0byBjaGVjayBpZgogaXQgd2FzIHJlYWxseSBmaXhlZC4gIE5vdyB5b3Ugd2FudCB0byBsb29rIGF0IHRoZSB3YXJuaW5nIG1lc3NhZ2UuICBJdCBkb2Vzbid0CiBzaG93IHVwIGluIHRoZSBsYXN0IGVycm9yIGxpc3QsIHNpbmNlIHRoZSBmaWxlIHdpdGggdGhlIHdhcm5pbmcgd2Fzbid0CkBAIC0yNDIsNyArMjQyLDcgQEAKIFRoaXMgaW5kZW50cyB0aGUgY3VycmVudCBsaW5lLiAgTGlrZSB3aXRoIGFsbCBvcGVyYXRvcnMsIHRoZXJlIGFyZSB0aHJlZSB3YXlzCiB0byB1c2UgaXQuICBJbiBWaXN1YWwgbW9kZSAiPSIgaW5kZW50cyB0aGUgc2VsZWN0ZWQgbGluZXMuICBBIHVzZWZ1bCB0ZXh0CiBvYmplY3QgaXMgImF7Ii4gIFRoaXMgc2VsZWN0cyB0aGUgY3VycmVudCB7fSBibG9jay4gIFRodXMsIHRvIHJlLWluZGVudCB0aGUKLWNvZGUgY29kZSBibG9jayB0aGUgY3Vyc29yIGlzIGluOiA+Citjb2RlIGJsb2NrIHRoZSBjdXJzb3IgaXMgaW46ID4KIAogCT1hewogCkBAIC0zMTUsNyArMzE1LDcgQEAKIAogCWZpbGV0eXBlPWhlbHAgfgogCi1UaGlzIHlvdSB3b3VsZCB1c2UgImhlbHAiIGZvciB7ZmlsZXR5cGV9LgorVGh1cyB5b3Ugd291bGQgdXNlICJoZWxwIiBmb3Ige2ZpbGV0eXBlfS4KICAgIEZvciB0aGUge2RpcmVjdG9yeX0gcGFydCB5b3UgbmVlZCB0byB1c2UgeW91ciBydW50aW1lIGRpcmVjdG9yeS4gIExvb2sgYXQKIHRoZSBvdXRwdXQgb2YgdGhpcyBjb21tYW5kOiA+CiAKQEAgLTMzOSw3ICszMzksNyBAQAogVGhlIG1vc3Qgc2ltcGxlIGZvcm0gb2YgYXV0b21hdGljIGluZGVudGluZyBpcyB3aXRoIHRoZSAnYXV0b2luZGVudCcgb3B0aW9uLgogSXQgdXNlcyB0aGUgaW5kZW50IGZyb20gdGhlIHByZXZpb3VzIGxpbmUuICBBIGJpdCBzbWFydGVyIGlzIHRoZSAnc21hcnRpbmRlbnQnCiBvcHRpb24uICBUaGlzIGlzIHVzZWZ1bCBmb3IgbGFuZ3VhZ2VzIHdoZXJlIG5vIGluZGVudCBmaWxlIGlzIGF2YWlsYWJsZS4KLSdzbWFydGluZGVudCdpcyBub3QgYXMgc21hcnQgYXMgJ2NpbmRlbnQnLCBidXQgc21hcnRlciB0aGFuICdhdXRvaW5kZW50Jy4KKydzbWFydGluZGVudCcgaXMgbm90IGFzIHNtYXJ0IGFzICdjaW5kZW50JywgYnV0IHNtYXJ0ZXIgdGhhbiAnYXV0b2luZGVudCcuCiAgICBXaXRoICdzbWFydGluZGVudCcgc2V0LCBhbiBleHRyYSBsZXZlbCBvZiBpbmRlbnRhdGlvbiBpcyBhZGRlZCBmb3IgZWFjaCB7CiBhbmQgcmVtb3ZlZCBmb3IgZWFjaCB9LiAgQW4gZXh0cmEgbGV2ZWwgb2YgaW5kZW50YXRpb24gd2lsbCBhbHNvIGJlIGFkZGVkIGZvcgogYW55IG9mIHRoZSB3b3JkcyBpbiB0aGUgJ2NpbndvcmRzJyBvcHRpb24uICBMaW5lcyB0aGF0IGJlZ2luIHdpdGggIyBhcmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MC50eHQgYi9ydW50aW1lL2RvYy91c3JfNDAudHh0CmluZGV4IDg3OWQxNDUuLjMwYzg2YTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzQwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNiBKdW4gMjEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTYwNSw4ICs2MDUsOSBAQAogCiBVU0lORyBOT1JNQUwgTU9ERSBDT01NQU5EUwogCi1UaGUgY29tbWFuZHMgZXhlY3V0ZWQgYnkgYW4gYXV0b2NvbW1hbmQgYXJlIENvbW1hbmQtbGluZSBjb21tYW5kLiAgSWYgeW91IHdhbnQKLXRvIHVzZSBhIE5vcm1hbCBtb2RlIGNvbW1hbmQsIHRoZSAiOm5vcm1hbCIgY29tbWFuZCBjYW4gYmUgdXNlZC4gIEV4YW1wbGU6ID4KK1RoZSBjb21tYW5kcyBleGVjdXRlZCBieSBhbiBhdXRvY29tbWFuZCBhcmUgQ29tbWFuZC1saW5lIGNvbW1hbmRzLiAgSWYgeW91Cit3YW50IHRvIHVzZSBhIE5vcm1hbCBtb2RlIGNvbW1hbmQsIHRoZSAiOm5vcm1hbCIgY29tbWFuZCBjYW4gYmUgdXNlZC4KK0V4YW1wbGU6ID4KIAogCTphdXRvY21kIEJ1ZlJlYWRQb3N0ICoubG9nIG5vcm1hbCBHCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0IGIvcnVudGltZS9kb2MvdmFyaW91cy50eHQKaW5kZXggMmYxZDNmZi4uZDJjZjA3MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQKKysrIGIvcnVudGltZS9kb2MvdmFyaW91cy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmFyaW91cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNQorKnZhcmlvdXMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDcgSmFuIDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjEsNiArMTIxLDEyIEBACiA6W3JhbmdlXSMgW2NvdW50XSBbZmxhZ3NdCiAJCQlzeW5vbnltIGZvciA6bnVtYmVyLgogCisJCQkJCQkJKjojISoKKzojIXthbnl0aGluZ30JCUlnbm9yZWQsIHNvIHRoYXQgeW91IGNhbiBzdGFydCBhIFZpbSBzY3JpcHQgd2l0aDogPgorCQkJCSMhL3Vzci9iaW4vZW52IHZpbSAtUworCQkJCWVjaG8gInRoaXMgaXMgYSBWaW0gc2NyaXB0IgorCQkJCXF1aXQKKzwKIAkJCQkJCQkqOnoqICpFMTQ0KgogOntyYW5nZX16WystXi49XXtjb3VudH0JRGlzcGxheSBzZXZlcmFsIGxpbmVzIG9mIHRleHQgc3Vycm91bmRpbmcgdGhlIGxpbmUKIAkJCXNwZWNpZmllZCB3aXRoIHtyYW5nZX0sIG9yIGFyb3VuZCB0aGUgY3VycmVudCBsaW5lCkBAIC0xNjMsNiArMTY5LDcgQEAKIAkJCWl0IHBvc3NpYmxlIHRvIGV4ZWN1dGUgTm9ybWFsIG1vZGUgY29tbWFuZHMgdHlwZWQgb24KIAkJCXRoZSBjb21tYW5kLWxpbmUuICB7Y29tbWFuZHN9IGlzIGV4ZWN1dGVkIGxpa2UgaXQgaXMKIAkJCXR5cGVkLiAgRm9yIHVuZG8gYWxsIGNvbW1hbmRzIGFyZSB1bmRvbmUgdG9nZXRoZXIuCisJCQlFeGVjdXRpb24gc3RvcHMgd2hlbiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4KIAkJCUlmIHRoZSBbIV0gaXMgZ2l2ZW4sIG1hcHBpbmdzIHdpbGwgbm90IGJlIHVzZWQuCiAJCQl7Y29tbWFuZHN9IHNob3VsZCBiZSBhIGNvbXBsZXRlIGNvbW1hbmQuICBJZgogCQkJe2NvbW1hbmRzfSBkb2VzIG5vdCBmaW5pc2ggYSBjb21tYW5kLCB0aGUgbGFzdCBvbmUKQEAgLTM3Nyw3ICszODQsNyBAQAogTiAgKit0ZXJtcmVzcG9uc2UqCXN1cHBvcnQgZm9yIHx0X1JWfCBhbmQgfHY6dGVybXJlc3BvbnNlfAogTiAgKit0ZXh0b2JqZWN0cyoJfHRleHQtb2JqZWN0c3wgc2VsZWN0aW9uCiAgICAqK3RnZXRlbnQqCQlub24tVW5peCBvbmx5OiBhYmxlIHRvIHVzZSBleHRlcm5hbCB0ZXJtY2FwCi1OICAqK3RpdGxlKgkJU2V0dGluZyB0aGUgd2luZG93IHRpdGxlIHwndGl0bGUnfAorTiAgKit0aXRsZSoJCVNldHRpbmcgdGhlIHdpbmRvdyAndGl0bGUnIGFuZCAnaWNvbicKIE4gICordG9vbGJhcioJCXxndWktdG9vbGJhcnwKIE4gICordXNlcl9jb21tYW5kcyoJVXNlci1kZWZpbmVkIGNvbW1hbmRzLiB8dXNlci1jb21tYW5kc3wKIE4gICordmltaW5mbyoJCXwndmltaW5mbyd8CkBAIC00MzQsMTAgKzQ0MSwxNCBAQAogCQkJYWZ0ZXIgdGhlIHJlZ2lzdGVyIG5hbWUgY2FuIGJlIG9taXR0ZWQuIHtub3QgaW4gVml9CiA6cmVkaVtyXSBAe2Eten0+PglBcHBlbmQgbWVzc2FnZXMgdG8gcmVnaXN0ZXIge2Eten0uIHtub3QgaW4gVml9CiAKLTpyZWRpW3JdIEAqPgkJUmVkaXJlY3QgbWVzc2FnZXMgdG8gdGhlIGNsaXBib2FyZC4gRm9yIGJhY2t3YXJkCi0JCQljb21wYXRpYmlsaXR5LCB0aGUgIj4iIGFmdGVyIHRoZSByZWdpc3RlciBuYW1lIGNhbiBiZQotCQkJb21pdHRlZC4ge25vdCBpbiBWaX0KLTpyZWRpW3JdIEAqPj4JCUFwcGVuZCBtZXNzYWdlcyB0byB0aGUgY2xpcGJvYXJkLiB7bm90IGluIFZpfQorOnJlZGlbcl0gQCo+CQkKKzpyZWRpW3JdIEArPgkJUmVkaXJlY3QgbWVzc2FnZXMgdG8gdGhlIHNlbGVjdGlvbiBvciBjbGlwYm9hcmQuIEZvcgorCQkJYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdGhlICI+IiBhZnRlciB0aGUgcmVnaXN0ZXIKKwkJCW5hbWUgY2FuIGJlIG9taXR0ZWQuIFNlZSB8cXVvdGVzdGFyfCBhbmQgfHF1b3RlcGx1c3wuCisJCQl7bm90IGluIFZpfQorOnJlZGlbcl0gQCo+PgkJCis6cmVkaVtyXSBAKz4+CQlBcHBlbmQgbWVzc2FnZXMgdG8gdGhlIHNlbGVjdGlvbiBvciBjbGlwYm9hcmQuCisJCQl7bm90IGluIFZpfQogCiA6cmVkaVtyXSBAIj4JCVJlZGlyZWN0IG1lc3NhZ2VzIHRvIHRoZSB1bm5hbWVkIHJlZ2lzdGVyLiBGb3IKIAkJCWJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSAiPiIgYWZ0ZXIgdGhlIHJlZ2lzdGVyCkBAIC00NDcsNiArNDU4LDcgQEAKIDpyZWRpW3JdID0+IHt2YXJ9CVJlZGlyZWN0IG1lc3NhZ2VzIHRvIGEgdmFyaWFibGUuICBJZiB0aGUgdmFyaWFibGUKIAkJCWRvZXNuJ3QgZXhpc3QsIHRoZW4gaXQgaXMgY3JlYXRlZC4gIElmIHRoZSB2YXJpYWJsZQogCQkJZXhpc3RzLCB0aGVuIGl0IGlzIGluaXRpYWxpemVkIHRvIGFuIGVtcHR5IHN0cmluZy4KKwkJCVRoZSB2YXJpYWJsZSB3aWxsIHJlbWFpbiBlbXB0eSB1bnRpbCByZWRpcmVjdGlvbiBlbmRzLgogCQkJT25seSBzdHJpbmcgdmFyaWFibGVzIGNhbiBiZSB1c2VkLiAgQWZ0ZXIgdGhlCiAJCQlyZWRpcmVjdGlvbiBzdGFydHMsIGlmIHRoZSB2YXJpYWJsZSBpcyByZW1vdmVkIG9yCiAJCQlsb2NrZWQgb3IgdGhlIHZhcmlhYmxlIHR5cGUgaXMgY2hhbmdlZCwgdGhlbiBmdXJ0aGVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggNGE2MDU5Yy4uNjgyZGNmYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw5ICsxLDkgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWF5IDA3CisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMWEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXkgMDUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKIAotCisJCQkJCQkJCQkqdmltNyoKIFdlbGNvbWUgdG8gVmltIDchICBBIGxhcmdlIG51bWJlciBvZiBmZWF0dXJlcyBoYXMgYmVlbiBhZGRlZC4gIFRoaXMgZmlsZQogbWVudGlvbnMgYWxsIHRoZSBuZXcgaXRlbXMsIGNoYW5nZXMgdG8gZXhpc3RpbmcgZmVhdHVyZXMgYW5kIGJ1ZyBmaXhlcwogc2luY2UgVmltIDYueC4gIFVzZSB0aGlzIGNvbW1hbmQgdG8gc2VlIHRoZSB2ZXJzaW9uIHlvdSBhcmUgdXNpbmc6ID4KQEAgLTQ2LDYgKzQ2LDExIEBACiAKIEJVRyBGSVhFUwkJCQl8YnVnLWZpeGVzLTd8CiAKK1ZFUlNJT04gNy4xCQkJfHZlcnNpb24tNy4xfAorQ2hhbmdlZAkJCQkJfGNoYW5nZWQtNy4xfAorQWRkZWQJCQkJCXxhZGRlZC03LjF8CitGaXhlZAkJCQkJfGZpeGVkLTcuMXwKKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBJTkNPTVBBVElCTEUgQ0hBTkdFUwkJCQkqaW5jb21wYXRpYmxlLTcqCiAKQEAgLTQ2NCw3ICs0NjksNyBAQAogY29uZmxpY3Qgd2l0aCB0cmFkaXRpb25hbCBWaSBvciBleHBlY3RlZCBiZWhhdmlvci4gIFRoZSAkVklNX1BPU0lYIGVudmlyb25tZW50CiB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGdldCBQT1NJWCBjb21wYXRpYmlsaXR5LiAgU2VlIHxwb3NpeHwuCiAKLUl0ZW1zIHRoYXQgd2VyZSBmaXhlZCBmb3IgYm90aCBWaSBhbmQgUE9TSVggY29tcGF0aWJpbHR5OgorSXRlbXMgdGhhdCB3ZXJlIGZpeGVkIGZvciBib3RoIFZpIGFuZCBQT1NJWCBjb21wYXRpYmlsaXR5OgogLSByZXBlYXRpbmcgIlIiIHdpdGggYSBjb3VudCBvbmx5IG92ZXJ3cml0ZXMgdGV4dCBvbmNlOyBhZGRlZCB0aGUgJ1gnIGZsYWcgdG8KICAgJ2Nwb3B0aW9ucycgfGNwby1YfAogLSBhIHZlcnRpY2FsIG1vdmVtZW50IGNvbW1hbmQgdGhhdCBtb3ZlcyB0byBhIG5vbi1leGlzdGluZyBsaW5lIGZhaWxzOyBhZGRlZApAQCAtODU2LDggKzg2MSw4IEBACiB8Z2V0cmVnKCl8CQlnZXQgY29udGVudHMgb2YgYSByZWdpc3RlcgogfGdldHRhYndpbnZhcigpfAlnZXQgdmFyaWFibGUgZnJvbSB3aW5kb3cgaW4gc3BlY2lmaWVkIHRhYiBwYWdlLgogfGhhc19rZXkoKXwJCWNoZWNrIHdoZXRoZXIgYSBrZXkgYXBwZWFycyBpbiBhIERpY3Rpb25hcnkKK3xoYXNsb2NhbGRpcigpfAkJY2hlY2sgaWYgY3VycmVudCB3aW5kb3cgdXNlZCB8OmxjZHwKIHxoYXNtYXB0bygpfAkJY2hlY2sgZm9yIGEgbWFwcGluZyB0byBhIHN0cmluZwotfGlucHV0bGlzdCgpfAkJc2VsZWN0IGFuIGVudHJ5IGZyb20gYSBsaXN0CiB8aW5kZXgoKXwJCWluZGV4IG9mIGl0ZW0gaW4gTGlzdAogfGlucHV0bGlzdCgpfAkJcHJvbXB0IHRoZSB1c2VyIHRvIG1ha2UgYSBzZWxlY3Rpb24gZnJvbSBhIGxpc3QKIHxpbnNlcnQoKXwJCWluc2VydCBhbiBpdGVtIHNvbWV3aGVyZSBpbiBhIExpc3QKQEAgLTkzNyw3ICs5NDIsNyBAQAogfHY6YmV2YWxfdGV4dHwJCXRleHQgdW5kZXIgdGhlIG1vdXNlIHBvaW50ZXIgZm9yICdiYWxsb29uZXhwcicKIHx2OnNjcm9sbHN0YXJ0fAkJd2hhdCBjYXVzZWQgdGhlIHNjcmVlbiB0byBiZSBzY3JvbGxlZCB1cAogfHY6c3dhcG5hbWV8CQluYW1lIG9mIHRoZSBzd2FwIGZpbGUgZm9yIHRoZSB8U3dhcEV4aXN0c3wgZXZlbnQKLXx2OnN3YXBjaG9pY2V8CQl3aGF0IGRvIGRvIGZvciBhbiBleGlzdGluZyBzd2FwIGZpbGUKK3x2OnN3YXBjaG9pY2V8CQl3aGF0IHRvIGRvIGZvciBhbiBleGlzdGluZyBzd2FwIGZpbGUKIHx2OnN3YXBjb21tYW5kfAkJY29tbWFuZCB0byBiZSBleGVjdXRlZCBhZnRlciBoYW5kbGluZyB8U3dhcEV4aXN0c3wKIHx2OmNoYXJ8CQlhcmd1bWVudCBmb3IgZXZhbHVhdGluZyAnZm9ybWF0ZXhwcicKIApAQCAtMTEwNSw3ICsxMTEwLDYgQEAKIHByb3RvY29scyBzeW50YXggYW5kIGZ0cGx1Z2luIGZpbGUuIChOaWtvbGFpIFdlaWJ1bGwpCiBxdWFrZSBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogcmFjYyBzeW50YXggYW5kIGZ0cGx1Z2luIGZpbGUuIChOaWtvbGFpIFdlaWJ1bGwpCi1yZCBzeW50YXggZmlsZS4gKEpvaGFubmVzIFJhbmtlKQogcmVhZGxpbmUgZnRwbHVnaW4gZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKIHJoZWxwIHN5bnRheCBmaWxlLiAoSm9oYW5uZXMgUmFua2UpCiBybm93ZWIgc3ludGF4IGZpbGUuIChKb2hhbm5lcyBSYW5rZSkKQEAgLTExNTIsNyArMTE1Niw3IEBACiBHcmVlayBpbiBjcDczNyAoUGFuYWdpb3RpcyBMb3VyaWRhcykKIFBvbGlzaC1zbGFzaCAoSFM2XzA2KQogVWtyYWluaWFuLWpjdWtlbiAoQW5hdG9saSBTYWtobmlrKQotS2FuYSAoRWR3YXJkIEwuIEZvKQorS2FuYSAoRWR3YXJkIEwuIEZveCkKIAogCiBOZXcgbWVzc2FnZSB0cmFuc2xhdGlvbnM6IH4KQEAgLTE5ODMsNyArMTk4Nyw3IEBACiAiOncgZm5hbWUiIGRpZG4ndCB3b3JrIGZvciBmaWxlcyB3aXRoICdidWZ0eXBlJyBzZXQgdG8gIm5vZmlsZSIuCiAKIFRoZSBtZXRob2QgdXNlZCB0byBsb2NhdGUgdXNlciBjb21tYW5kcyBmb3IgY29tcGxldGlvbiBkaWZmZXJlZCBmcm9tIHdoZW4gdGhleQotYXJlIGV4ZWN1dGVkLiAgQWJpZ3VvdXMgY29tbWFuZCBuYW1lcyB3ZXJlIG5vdCBjb21wbGV0ZWQgcHJvcGVybHkuCithcmUgZXhlY3V0ZWQuICBBbWJpZ3VvdXMgY29tbWFuZCBuYW1lcyB3ZXJlIG5vdCBjb21wbGV0ZWQgcHJvcGVybHkuCiAKIEluY3JlbWVudGFsIHNlYXJjaCBtYXkgY2F1c2UgYSBjcmFzaCB3aGVuIHRoZXJlIGlzIGEgY3VzdG9tIHN0YXR1c2xpbmUgdGhhdAogaW5kaXJlY3RseSBpbnZva2VzICI6bm9ybWFsIi4KQEAgLTIwMjMsNyArMjAyNyw3IEBACiB0byB0aGUgZmlyc3QgbGluZS4gIFRoYXQgYnJlYWtzIGEgQnVmUmVhZFBvc3QgYXV0b2NvbW1hbmQgdGhhdCB1c2VzIGdgIi4KIERvbid0IG1vdmUgdGhlIGN1cnNvciBpZiBpdCdzIHNvbWV3aGVyZSBwYXN0IHRoZSBmaXJzdCBsaW5lLgogCi0iZ2c9RyIgd2hpbGUgJ21vZGlmaWFibGUnIGlzIG9mZiB3YXMgdW5pbnRlcnJ1cHRhYmxlLgorImdnPUciIHdoaWxlICdtb2RpZmlhYmxlJyBpcyBvZmYgd2FzIHVuaW50ZXJydXB0aWJsZS4KIAogV2hlbiAnZW5jb2RpbmcnIGlzICJzamlzIiBpbnNlcnRpbmcgQ1RSTC1WIHUgZDgwMCBhIGZldyB0aW1lcyBjYXVzZXMgYSBjcmFzaC4KIERvbid0IGluc2VydCBhIERCQ1MgY2hhcmFjdGVyIHdpdGggYSBOVUwgc2Vjb25kIGJ5dGUuCkBAIC0yMTc1LDcgKzIxNzksNyBAQAogV2hlbiBhcHBlbmRpbmcgdG8gYSBmaWxlIHdpdGggIjp3ID4+Zm5hbWUiIGluIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lLCBjYXVzaW5nCiB0aGUgYnVmZmVyIHRvIHVzZSAiZm5hbWUiLCB0aGUgbW9kaWZpZWQgZmxhZyB3YXMgcmVzZXQuCiAKLVdoZW4gYXBwZW5kaW5nIHRvIHRvIGN1cnJlbnQgZmlsZSB0aGUgIm5vdCBlZGl0ZWQiIGZsYWcgd291bGQgYmUgcmVzZXQuCitXaGVuIGFwcGVuZGluZyB0byB0aGUgY3VycmVudCBmaWxlIHRoZSAibm90IGVkaXRlZCIgZmxhZyB3b3VsZCBiZSByZXNldC4KICI6dyIgd291bGQgb3ZlcndyaXRlIHRoZSBmaWxlIGFjY2lkZW50YWxseS4KIAogVW5peDogV2hlbiBmaWx0ZXJpbmcgdGV4dCB3aXRoIGFuIGV4dGVybmFsIGNvbW1hbmQgVmltIHdvdWxkIHN0aWxsIHJlYWQgaW5wdXQsCkBAIC0yMzkyLDcgKzIzOTYsNyBAQAogVG8gbWFrZSB0aGUgMTYgYml0IERPUyB2ZXJzaW9uIGNvbXBpbGUgZXhjbHVkZSBub3QgdXNlZCBoaWdobGlnaHQKIGluaXRpYWxpemF0aW9ucyBhbmQgYnVpbGQgYSB0aW55IGluc3RlYWQgb2Ygc21hbGwgdmVyc2lvbi4KIAotZmluZGRpcigpIGFuZCBmaW5kZmlsZSgpIGFjY2VwdCBhIG5lZ2F0aXZlIGNvdW5kIGFuZCByZXR1cm4gYSBMaXN0IHRoZW4uCitmaW5kZGlyKCkgYW5kIGZpbmRmaWxlKCkgYWNjZXB0IGEgbmVnYXRpdmUgY291bnQgYW5kIHJldHVybiBhIExpc3QgdGhlbi4KIAogVGhlIFB5dGhvbiBpbmRlbnQgZmlsZSBjb250YWluZWQgYSBmZXcgZGVidWdnaW5nIHN0YXRlbWVudHMsIHJlbW92ZWQuCiAKQEAgLTI3MzEsNyArMjczNSw3IEBACiBudW1iZXIgZm9sbG93aW5nIHRoZSBmaWxlIG5hbWUuCiBBZGRlZCAnZ3VpdGFidG9vbHRpcCcuICBJbXBsZW1lbnRlZCBmb3IgV2luMzIgKFllZ2FwcGFuIExha3NobWFuYW4pLgogCi1BZGRlZCAidGhyb3ciIHRvICdkZWJ1Zycgb3B0aW9uOiB0aG93IGFuIGV4Y2VwdGlvbiBmb3IgZXJyb3IgbWVzc2FnZXMgZXZlbgorQWRkZWQgInRocm93IiB0byAnZGVidWcnIG9wdGlvbjogdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBlcnJvciBtZXNzYWdlcyBldmVuCiB3aGV5IHRoZXkgd291bGQgb3RoZXJ3aXNlIGJlIGlnbm9yZWQuCiAKIFdoZW4gJ2tleW1hcCcgaXMgc2V0IGFuZCBhIGxpbmUgY29udGFpbnMgYW4gaW52YWxpZCBlbnRyeSBjb3VsZCBnZXQgYSAiTm8KQEAgLTI5NjksNCArMjk3MywxNTg3IEBACiBDVFJMLU4gb3IgYSBwcmludGFibGUgY2hhcmFjdGVyIHdoaWxlIHN0aWxsIHNlYXJjaGluZyBmb3IgbWF0Y2hlcy4KIAogCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1ZFUlNJT04gNy4xCQkJCQkJKnZlcnNpb24tNy4xKgorCitUaGlzIHNlY3Rpb24gaXMgYWJvdXQgaW1wcm92ZW1lbnRzIG1hZGUgYmV0d2VlbiB2ZXJzaW9uIDcuMCBhbmQgNy4xLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCB0aGVyZSBhcmUgbm8gZmFuY3kgbmV3IGZlYXR1cmVzLgorCisKK0NoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNy4xKgorLS0tLS0tLQorCitBZGRlZCBzZXR0aW5nICdtb3VzZScgaW4gdmltcmNfZXhhbXBsZS52aW0uCisKK1doZW4gYnVpbGRpbmcgd2l0aCBNWnNjaGVtZSBhbHNvIGxvb2sgZm9yIGluY2x1ZGUgZmlsZXMgaW4gdGhlICJwbHQiCitzdWJkaXJlY3RvcnkuICBUaGF0J3Mgd2hlcmUgdGhleSBhcmUgZm9yIEZyZWVCU0QuCisKKworQWRkZWQJCQkJCQkJKmFkZGVkLTcuMSoKKy0tLS0tCisKK05ldyBzeW50YXggZmlsZXM6CisJQXV0b0l0IHYzIChKYXJlZCBCcmVsYW5kKQorCUJhemFhciBjb21taXQgZmlsZSAiYnpyIi4gKERtaXRyeSBWYXNpbGlldikKKwlDbXVzcmMgKE5pa29sYWkgV2VpYnVsbCkKKwlGcmVlQmFzaWMgKE1hcmsgTWFubmluZykKKwlIYW1zdGVyIChEYXZpZCBGaXNoYnVybikKKwlJQmFzaWMgKE1hcmsgTWFubmluZykKKwlpbml0bmcgKEVsYW4gUnV1c2FtYWUpCisJL3Zhci9sb2cvbWVzc2FnZXMgKFlha292IExlcm5lcikKKwlQcml2b3h5IGFjdGlvbnMgZmlsZSAoRG91ZyBLZWFybnMpCisJU3RyZWFtaW5nIERlc2NyaXB0b3JzICJzZCIgKFB1cmlhIE5hZmlzaSBBeml6aSkKKworTmV3IHR1dG9yIGZpbGVzOgorCUh1bmdhcmlhbiAoQXJwYWQgSG9ydmF0aCkKKwlDemVjaCAoTHVib3MgVHVyZWspCisJVHVya2lzaCAoU2Vya2FuIGtraykKKwl1dGYtOCB2ZXJzaW9uIG9mIEdyZWVrIHR1dG9yLgorCXV0Zi04IHZlcnNpb24gb2YgUnVzc2lhbiB0dXRvci4KKwl1dGYtOCB2ZXJzaW9uIG9mIFNsb3dhayB0dXRvci4KKworTmV3IGZpbGV0eXBlIHBsdWdpbnM6CisJQnN0IChUaW0gUG9wZSkKKwlDb2JvbCAoVGltIFBvcGUpCisJRnZ3bSAoR2F1dGFtIEl5ZXIpCisJSGFtc3RlciAoRGF2aWQgRmlzaGJ1cm4pCisJRGphbmdvIEhUTUwgdGVtcGxhdGUgKERhdmUgSG9kZGVyKQorCitOZXcgaW5kZW50IGZpbGVzOgorCUJzdCAoVGltIFBvcGUpCisJQ29ib2wgKFRpbSBQb3BlKQorCUhhbXN0ZXIgKERhdmlkIEZpc2hidXJuKQorCURqYW5nbyBIVE1MIHRlbXBsYXRlIChEYXZlIEhvZGRlcikKKwlKYXZhc2NyaXB0CisJSlNQIChEYXZpZCBGaXNoYnVybikKKworTmV3IGtleW1hcCBmaWxlczoKKwlCdWxnYXJpYW4gKEJveWtvIEJhbnRjaGV2KQorCU1vbmdvbGlhbiAoTmF0c2FnZG9yaiBTaGFnZGFyKQorCVRoYWFuYSAoSWJyYWhpbSBGYXlheikKKwlWaWV0bmFtZXNlIChTYW11ZWwgVGhpYmF1bHQpCisKK090aGVyIG5ldyBydW50aW1lIGZpbGVzOgorCUFkYSBzdXBwb3J0IGZpbGVzLiAoTmVpbCBCaXJkLCBNYXJ0aW4gS3Jpc2NoaWspCisJU2xvdmVuaWFuIG1lbnUgdHJhbnNsYXRpb25zIChNb2pjYSBNaWtsYXZlYykKKwlNb25vIEMjIGNvbXBpbGVyIHBsdWdpbiAoSmFyZWsgU29iaWVja2kpCisKKworRml4ZWQJCQkJCQkJKmZpeGVkLTcuMSoKKy0tLS0tCisKK0NvdWxkIG5vdCBidWlsZCB0aGUgV2luMzJzIHZlcnNpb24uICBBZGRlZCBhIGZldyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgaW4KK3NyYy9ndWlfdzMyLmMKKworCitQYXRjaCA3LjAuMDAxCitQcm9ibGVtOiAgICAiOnNldCBzcGVsbHN1Z2dlc3QrPTEwIiBkb2VzIG5vdCB3b3JrLiAoU3VyZXNoIEdvdmluZGFjaGFyKQorU29sdXRpb246ICAgQWRkIFBfQ09NTUEgdG8gdGhlICdzcGVsbHN1Z2dlc3QnIGZsYWdzLgorRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKKworUGF0Y2ggNy4wLjAwMgorUHJvYmxlbTogICAgQyBvbW5pIGNvbXBsZXRpb24gaGFzIGEgcHJvYmxlbSB3aXRoIHRhZ3MgZmlsZXMgd2l0aCBhIHBhdGgKKwkgICAgY29udGFpbmluZyAiIyIgb3IgIiUiLgorU29sdXRpb246ICAgRXNjYXBlIHRoZXNlIGNoYXJhY3RlcnMuIChTZWJhc3RpYW4gQmFiZXJvd3NraSkKK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9jY29tcGxldGUudmltCisKK1BhdGNoIDcuMC4wMDMKK1Byb2JsZW06ICAgIEdVSTogY2xpY2tpbmcgaW4gdGhlIGxvd2VyIHBhcnQgb2YgYSBsYWJlbCBpbiB0aGUgdGFiIHBhZ2VzIGxpbmUKKwkgICAgd2hpbGUgJ21vdXNlZm9jdXMnIGlzIHNldCBtYXkgd2FycCB0aGUgbW91c2UgcG9pbnRlci4gKFJvYmVydAorCSAgICBXZWJiKQorU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgbmVnYXRpdmUgbW91c2UgcG9zaXRpb24uCitGaWxlczoJICAgIHNyYy9ndWkuYworCitQYXRjaCA3LjAuMDA0CitQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciBkZWJ1Z19zYXZlZCB1c2VkIGJlZm9yZSBzZXQuIChUb2RkIEJsdW1lcikKK1NvbHV0aW9uOiAgIFJlbW92ZSB0aGUgImVsc2UiIGZvciBjYWxsaW5nIHNhdmVfZGJnX3N0dWZmKCkuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4wMDUgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IFRoZSBpbnN0YWxsZXIgZG9lc24ndCByZW1vdmUgdGhlICJhdXRvbG9hZCIgYW5kICJzcGVsbCIKKwkgICAgZGlyZWN0b3JpZXMuIChEYXZpZCBGaXNoYnVybikKK1NvbHV0aW9uOiAgIEFkZCB0aGUgZGlyZWN0b3JpZXMgdG8gdGhlIGxpc3QgdG8gYmUgcmVtb3ZlZC4KK0ZpbGVzOgkgICAgbnNpcy9ndmltLm5zaQorCitQYXRjaCA3LjAuMDA2CitQcm9ibGVtOiAgICBNYWM6ICJtYWtlIHNoYWRvdyIgZG9lc24ndCBtYWtlIGEgbGluayBmb3IgaW5mcGxpc3QueG1sLiAoQXhlbAorCSAgICBLaWVsaG9ybikKK1NvbHV0aW9uOiAgIE1ha2UgdGhlIGxpbmsuCitGaWxlczoJICAgIHNyYy9NYWtlZmlsZQorCitQYXRjaCA3LjAuMDA3CitQcm9ibGVtOiAgICBBSVg6IGNvbXBpbGluZyBmYWlscyBmb3IgbWVzc2FnZS5jLiAoUnVlZGlnZXIgSG9ybmlnKQorU29sdXRpb246ICAgTW92ZSB0aGUgI2lmIG91dHNpZGUgb2YgbWVtY2hyKCkuCitGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKKworUGF0Y2ggNy4wLjAwOAorUHJvYmxlbTogICAgQ2FuJ3QgY2FsbCBhIGZ1bmN0aW9uIHRoYXQgdXNlcyBib3RoIDxTSUQ+IGFuZCB7ZXhwcn0uIChUaG9tYXMpCitTb2x1dGlvbjogICBDaGVjayBib3RoIHRoZSBleHBhbmRlZCBhbmQgdW5leHBhbmRlZCBuYW1lIGZvciA8U0lEPi4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDA5CitQcm9ibGVtOiAgICBtbF9nZXQgZXJyb3JzIHdpdGggYm90aCAnc2lkZXNjcm9sbCcgYW5kICdzcGVsbCcgc2V0LgorU29sdXRpb246ICAgVXNlIG1sX2dldF9idWYoKSBpbnN0ZWFkIG9mIG1sX2dldCgpLCBnZXQgdGhlIGxpbmUgZnJvbSB0aGUgcmlnaHQKKwkgICAgYnVmZmVyLCBub3QgdGhlIGN1cnJlbnQgb25lLgorRmlsZXM6CSAgICBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMDEwCitQcm9ibGVtOiAgICBUaGUgc3BlbGxmaWxlIHBsdWdpbiByZXF1aXJlZCB0eXBpbmcgbG9naW4gbmFtZSBhbmQgcGFzc3dvcmQuCitTb2x1dGlvbjogICBVc2UgImFub255bW91cyIgYW5kICJ2aW03dXNlciIgYnkgZGVmYXVsdC4gIE5vIG5lZWQgdG8gc2V0dXAgYQorCSAgICAubmV0cmMgZmlsZS4KK0ZpbGVzOgkgICAgcnVudGltZS9hdXRvbG9hZC9zcGVsbGZpbGUudmltCisKK1BhdGNoIDcuMC4wMTEKK1Byb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aG91dCB0aGUgZm9sZGluZyBhbmQgd2l0aCB0aGUgZXZhbCBmZWF0dXJlLgorU29sdXRpb246ICAgQWRkIGFuICNpZmRlZi4gKFZhbGxpbWFyKQorRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKKworUGF0Y2ggNy4wLjAxMgorUHJvYmxlbTogICAgVXNpbmcgdGhlIG1hdGNocGFyZW4gcGx1Z2luLCBtb3ZpbmcgdGhlIGN1cnNvciBpbiBJbnNlcnQgbW9kZSB0byBhCisJICAgIHNob3J0ZXIgbGluZSB0aGF0IGVuZHMgaW4gYSBicmFjZSwgY2hhbmdlcyB0aGUgcHJlZmVycmVkIGNvbHVtbgorU29sdXRpb246ICAgVXNlIHdpbnNhdmV2aWV3KCkvd2lucmVzdHZpZXcoKSBpbnN0ZWFkIG9mIGdldHBvcygpL3NldHBvcygpLgorRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9tYXRjaHBhcmVuLnZpbQorCitQYXRjaCA3LjAuMDEzCitQcm9ibGVtOiAgICBJbnNlcnQgbW9kZSBjb21wbGV0aW9uOiB1c2luZyBDVFJMLUwgdG8gYWRkIGFuIGV4dHJhIGNoYXJhY3RlcgorCSAgICBhbHNvIGRlc2VsZWN0cyB0aGUgY3VycmVudCBtYXRjaCwgbWFraW5nIGl0IGltcG9zc2libGUgdG8gdXNlCisJICAgIENUUkwtTCBhIHNlY29uZCB0aW1lLgorU29sdXRpb246ICAgS2VlcCB0aGUgY3VycmVudCBtYXRjaC4gIEFsc28gbWFrZSBDVFJMLUwgd29yayBhdCB0aGUgb3JpZ2luYWwKKwkgICAgdGV4dCwgdXNpbmcgdGhlIGZpcnN0IGRpc3BsYXllZCBtYXRjaC4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDE0CitQcm9ibGVtOiAgICBDb21waWxpbmcgZ3VpX3htZWJ3LmMgZmFpbHMgb24gRGVjIEFscGhhIFRydTY0LiAoUm9sZmUpCitTb2x1dGlvbjogICBEaXNhYmxlIHNvbWUgY29kZSBmb3IgTW90aWYgMS4yIGFuZCBvbGRlci4KK0ZpbGVzOgkgICAgc3JjL2d1aV94bWVidy5jCisKK1BhdGNoIDcuMC4wMTUKK1Byb2JsZW06ICAgIEF0aGVuYTogY29tcGlsYXRpb24gcHJvYmxlbXMgd2l0aCBtb2Rlcm4gY29tcGlsZXIuCitTb2x1dGlvbjogICBBdm9pZCB0eXBlIGNhc3RzIGZvciBsdmFsdWUuIChBbGV4ZXkgRnJvbG9mZikKK0ZpbGVzOgkgICAgc3JjL2d1aV9hdF9mcy5jCisKK1BhdGNoIDcuMC4wMTYKK1Byb2JsZW06ICAgIFByaW50aW5nIGRvZXNuJ3Qgd29yayBmb3IgImRlYy1tY3MiIGVuY29kaW5nLgorU29sdXRpb246ICAgQWRkICJkZWMtbWNzIiwgIm1hYy1yb21hbiIgYW5kICJocC1yb21hbjgiIHRvIHRoZSBsaXN0IG9mCisJICAgIHJlY29nbml6ZWQgOC1iaXQgZW5jb2RpbmdzLiAoTWlrZSBXaWxsaWFtcykKK0ZpbGVzOgkgICAgc3JjL21ieXRlLmMKKworUGF0Y2ggNy4wLjAxNyAoYWZ0ZXIgNy4wLjAxNCkKK1Byb2JsZW06ICAgIExpbmtpbmcgZ3VpX3htZWJ3LmMgZmFpbHMgb24gRGVjIEFscGhhIFRydTY0LiAoUm9sZmUpCitTb2x1dGlvbjogICBBZGp1c3QgZGVmaW5lcyBmb3IgTW90aWYgMS4yIGFuZCBvbGRlci4KK0ZpbGVzOgkgICAgc3JjL2d1aV94bWVidy5jCisKK1BhdGNoIDcuMC4wMTgKK1Byb2JsZW06ICAgIFZNUzogcGx1Z2lucyBhcmUgbm90IGxvYWRlZCBvbiBzdGFydHVwLgorU29sdXRpb246ICAgUmVtb3ZlICIqKiIgZnJvbSB0aGUgcGF0aC4gKFpvbHRhbiBBcnBhZGZmeSkKK0ZpbGVzOgkgICAgc3JjL21haW4uYworCitQYXRjaCA3LjAuMDE5CitQcm9ibGVtOiAgICBSZXBlYXRpbmcgIlZqQTc4OSIgbWF5IGNhdXNlIGEgY3Jhc2guIChKYW1lcyBWZWdhKQorU29sdXRpb246ICAgQ2hlY2sgdGhlIGN1cnNvciBjb2x1bW4gYWZ0ZXIgbW92aW5nIGl0IHRvIGFub3RoZXIgbGluZS4KK0ZpbGVzOgkgICAgc3JjL29wcy5jCisKK1BhdGNoIDcuMC4wMjAKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgJ21vdXNlZm9jdXMnLiAoV2lsbGlhbSBGdWx0b24pCitTb2x1dGlvbjogICBNYWtlIGJ1ZmZlciBmb3IgbW91c2UgY29vcmRpbmF0ZXMgMiBieXRlcyBsb25nZXIuIChKdWVyZ2VuIFdlaWdlcnQpCitGaWxlczoJICAgIHNyYy9ndWkuYworCitQYXRjaCA3LjAuMDIxCitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nICJcXFsiIGFuZCAiXFxdIiBpbiAnZXJyb3Jmb3JtYXQnLiAoTWFyYyBXZWJlcikKK1NvbHV0aW9uOiAgIENoZWNrIGZvciB2YWxpZCBzdWJtYXRjaGVzIGFmdGVyIG1hdGNoaW5nIHRoZSBwYXR0ZXJuLgorRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYworCitQYXRjaCA3LjAuMDIyCitQcm9ibGVtOiAgICBVc2luZyBidWZmZXIuYXBwZW5kKCkgaW4gUnVieSBtYXkgYXBwZW5kIHRoZSBsaW5lIHRvIHRoZSB3cm9uZworCSAgICBidWZmZXIuIChBbGV4IE5vcm1hbikKK1NvbHV0aW9uOiAgIFByb3Blcmx5IHN3aXRjaCB0byB0aGUgYnVmZmVyIHRvIGRvIHRoZSBhcHBlbmRpbmcuICBBbHNvIGZvcgorCSAgICBidWZmZXIuZGVsZXRlKCkgYW5kIHNldHRpbmcgYSBidWZmZXIgbGluZS4KK0ZpbGVzOgkgICAgc3JjL2lmX3J1YnkuYworCitQYXRjaCA3LjAuMDIzCitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGRvaW5nIHNwZWxsIGNvbXBsZXRpb24gaW4gYW4gZW1wdHkgbGluZSBhbmQgcHJlc3NpbmcKKwkgICAgQ1RSTC1FLgorU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgemVybyBwb2ludGVyLiAoSmFtZXMgVmVnYSkKKwkgICAgQWxzbyBoYW5kbGUgYSBzaXR1YXRpb24gd2l0aG91dCBhIG1hdGNoaW5nIHBhdHRlcm4gYmV0dGVyLCByZXBvcnQKKwkgICAgIk5vIG1hdGNoZXMiIGluc3RlYWQgb2YgcmVtYWluaW5nIGluIHVuZGVmaW5lZCBDVFJMLVggbW9kZS4gIEFuZAorCSAgICBnZXQgb3V0IG9mIENUUkwtWCBtb2RlIHdoZW4gdHlwaW5nIGEgbGV0dGVyLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4wMjQKK1Byb2JsZW06ICAgIEl0IGlzIHBvc3NpYmxlIHRvIHNldCBhcmJpdHJhcnkgInY6IiB2YXJpYWJsZXMuCitTb2x1dGlvbjogICBEaXNhbGxvdyBzZXR0aW5nICJ2OiIgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCBwcmVkZWZpbmVkLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wMjUKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gcmVtb3ZpbmcgYW4gZWxlbWVudCBvZiBhOjAwMC4gIChOaWtvbGFpIFdlaWJ1bGwpCitTb2x1dGlvbjogICBNYXJrIHRoZSBhOjAwMCBsaXN0IHdpdGggVkFSX0ZJWEVELgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wMjYKK1Byb2JsZW06ICAgIFVzaW5nIGxpYmNhbGwoKSBtYXkgc2hvdyBhbiBvbGQgZXJyb3IuCitTb2x1dGlvbjogICBJbnZva2UgZGxlcnJvcigpIHRvIGNsZWFyIGEgcHJldmlvdXMgZXJyb3IuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9vc191bml4LmMKKworUGF0Y2ggNy4wLjAyNyAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBjb21waWxlZCB3aXRoIFNOSUZGIGd2aW0gbWF5IGhhbmcgb24gZXhpdC4KK1NvbHV0aW9uOiAgIFRyYW5zbGF0ZSBhbmQgZGlzcGF0Y2ggdGhlIFdNX1VTRVIgbWVzc2FnZS4gKE1hdGhpYXMgTWljaGFlbGlzKQorRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCisKK1BhdGNoIDcuMC4wMjggKGV4dHJhKQorUHJvYmxlbTogICAgT1MvMjogVmltIGRvZXNuJ3QgY29tcGlsZSB3aXRoIGdjYyAzLjIuMS4KK1NvbHV0aW9uOiAgIEFkZCBhcmd1bWVudCB0byBhZnRlcl9wYXRoc2VwKCksIGRvbid0IGRlZmluZSB2aW1faGFuZGxlX3NpZ25hbCgpLAorCSAgICBkZWZpbmUgSEFWRV9TVERBUkdfSC4gKERhdmlkIFNhbmRlcnMpCitGaWxlczoJICAgIHNyYy9vc191bml4LmMsIHNyYy92aW0uaCwgc3JjL29zX29zMl9jZmcuaAorCitQYXRjaCA3LjAuMDI5CitQcm9ibGVtOiAgICBnZXRjaGFyKCkgbWF5IG5vdCBwb3NpdGlvbiB0aGUgY3Vyc29yIGFmdGVyIGEgc3BhY2UuCitTb2x1dGlvbjogICBQb3NpdGlvbiB0aGUgY3Vyc29yIGV4cGxpY2l0bHkuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjAzMAorUHJvYmxlbTogICAgVGhlICI6Y29tcGlsZXIiIGNvbW1hbmQgY2FuJ3QgYmUgdXNlZCBpbiBhIEZpbGVDaGFuZ2VkUk8gZXZlbnQuCisJICAgIChIYXJpIEtyaXNobmEgRGFyYSkKK1NvbHV0aW9uOiAgIEFkZCB0aGUgQ01EV0lOIGZsYWcgdG8gdGhlICI6Y29tcGlsZXIiIGNvbW1hbmQuCitGaWxlczoJICAgIHNyYy9leF9jbWRzLmgKKworUGF0Y2ggNy4wLjAzMQorUHJvYmxlbTogICAgV2hlbiBkZWxldGluZyBhIGJ1ZmZlciB0aGUgYnVmZmVyLWxvY2FsIG1hcHBpbmdzIGZvciBTZWxlY3QgbW9kZQorCSAgICByZW1haW4uCitTb2x1dGlvbjogICBBZGQgdGhlIFNlbGVjdCBtb2RlIGJpdCB0byBNQVBfQUxMX01PREVTLiAoRWR3aW4gU3RlaW5lcikKK0ZpbGVzOgkgICAgc3JjL3ZpbS5oCisKK1BhdGNoIDcuMC4wMzIgKGV4dHJhLCBhZnRlciA3LjAuMDI3KQorUHJvYmxlbTogICAgTWlzc2luZyBzZW1pY29sb24uCitTb2x1dGlvbjogICBBZGQgdGhlIHNlbWljb2xvbi4KK0ZpbGVzOgkgICAgc3JjL2d1aV93NDguYworCitQYXRjaCA3LjAuMDMzCitQcm9ibGVtOiAgICBXaGVuIHBhc3RpbmcgdGV4dCwgd2l0aCB0aGUgbWVudSBvciBDVFJMLVYsIGF1dG9pbmRlbnQgaXMgcmVtb3ZlZC4KK1NvbHV0aW9uOiAgIFVzZSAieDxCUz4iIHRvIGF2b2lkIGluZGVudCB0byBiZSByZW1vdmVkLiAoQmVuamkgRmlzaGVyKQorRmlsZXM6CSAgICBydW50aW1lL2F1dG9sb2FkL3Bhc3RlLnZpbQorCitQYXRjaCA3LjAuMDM0CitQcm9ibGVtOiAgICBBZnRlciBkb2luZyBjb21wbGV0aW9uIGFuZCB0eXBpbmcgbW9yZSBjaGFyYWN0ZXJzIG9yIHVzaW5nIEJTCisJICAgIHJlcGVhdGluZyB3aXRoICIuIiBkaWRuJ3Qgd29yayBwcm9wZXJseS4gKE1hcnRpbiBTdHViZW5zY2hyb3R0KQorU29sdXRpb246ICAgRG9uJ3QgcHV0IEJTIGFuZCBvdGhlciBjaGFyYWN0ZXJzIGluIHRoZSByZWRvIGJ1ZmZlciByaWdodCBhd2F5LAorCSAgICBkbyB0aGlzIHdoZW4gZmluaXNoaW5nIGNvbXBsZXRpb24uCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjAzNQorUHJvYmxlbTogICAgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiB3b3JrcyB3aGVuIHR5cGVkIGJ1dCBub3Qgd2hlbiByZXBsYXllZCBmcm9tCisJICAgIGEgcmVnaXN0ZXIuIChIYXJpIEtyaXNobmEgRGFyYSkKKwkgICAgQWxzbzogTWFwcGluZ3MgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb24gZG9uJ3QgYWx3YXlzIHdvcmsuCitTb2x1dGlvbjogICBXaGVuIGZpbmRpbmcgYSBub24tY29tcGxldGlvbiBrZXkgaW4gdGhlIGlucHV0IGRvbid0IGludGVycnVwdAorCSAgICBjb21wbGV0aW9uIHdoZW4gaXQgd2Fzbid0IHR5cGVkLgorCSAgICBEbyB1c2UgbWFwcGluZ3Mgd2hlbiBjaGVja2luZyBmb3IgdHlwZWFoZWFkIHdoaWxlIHN0aWxsIGZpbmRpbmcKKwkgICAgY29tcGxldGlvbnMuICBBdm9pZHMgdGhhdCBjb21wbGV0aW9uIGlzIGludGVycnVwdGVkIHRvbyBzb29uLgorCSAgICBVc2UgImNvbXBsX3BlbmRpbmciIGluIGEgZGlmZmVyZW50IHdheS4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDM2CitQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGggc21hbGwgZmVhdHVyZXMgYW5kIHN5bnRheCBoaWdobGlnaHRpbmcgb3IgdGhlCisJICAgIGRpZmYgZmVhdHVyZS4KK1NvbHV0aW9uOiAgIERlZmluZSBMSU5FX0FUVFIgd2hlbmV2ZXIgc3ludGF4IGhpZ2hsaWdodGluZyBvciB0aGUgZGlmZiBmZWF0dXJlCisJICAgIGlzIGVuYWJsZWQuCitGaWxlczoJICAgIHNyYy9zY3JlZW4uYworCitQYXRjaCA3LjAuMDM3CitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHJlc2l6aW5nIHRoZSBHVUkgd2luZG93IHZlcnRpY2FsbHkgd2hlbiB0aGVyZSBpcyBhIGxpbmUKKwkgICAgdGhhdCBkb2Vzbid0IGZpdC4KK1NvbHV0aW9uOiAgIERvbid0IHJlZHJhdyB3aGlsZSB0aGUgc2NyZWVuIGRhdGEgaXMgaW52YWxpZC4KK0ZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCisKK1BhdGNoIDcuMC4wMzgKK1Byb2JsZW06ICAgIFdoZW4gY2FsbGluZyBjb21wbGV0ZSgpIGZyb20gYW4gSW5zZXJ0IG1vZGUgZXhwcmVzc2lvbiBtYXBwaW5nCisJICAgIHRleHQgY291bGQgYmUgaW5zZXJ0ZWQgaW4gYW4gaW1wcm9wZXIgd2F5LgorU29sdXRpb246ICAgTWFrZSB1bmRvX2FsbG93ZWQoKSBnbG9iYWwgYW5kIHVzZSBpdCBpbiBjb21wbGV0ZSgpLgorRmlsZXM6CSAgICBzcmMvdW5kby5jLCBzcmMvcHJvdG8vdW5kby5wcm8sIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjAzOQorUHJvYmxlbTogICAgQ2FsbGluZyBpbnB1dGRpYWxvZygpIHdpdGggYSB0aGlyZCBhcmd1bWVudCBpbiB0aGUgY29uc29sZSBkb2Vzbid0CisJICAgIHdvcmsuCitTb2x1dGlvbjogICBNYWtlIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIGlucHV0KCkgYW5kIGlucHV0ZGlhbG9nKCkuIChZZWdhcHBhbgorCSAgICBMYWtzaG1hbmFuKQorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wNDAKK1Byb2JsZW06ICAgIFdoZW4gJ2NtZGhlaWdodCcgaXMgbGFyZ2VyIHRoYW4gMSB1c2luZyBpbnB1dGxpc3QoKSBvciBzZWxlY3RpbmcKKwkgICAgYSBzcGVsbCBzdWdnZXN0aW9uIHdpdGggdGhlIG1vdXNlIGdldHMgdGhlIHdyb25nIGVudHJ5LgorU29sdXRpb246ICAgU3RhcnQgbGlzdGluZyB0aGUgZmlyc3QgYWx0ZXJuYXRpdmUgb24gdGhlIGxhc3QgbGluZSBvZiB0aGUgc2NyZWVuLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMDQxCitQcm9ibGVtOiAgICBjdXJzb3IoWzEsIDFdKSBkb2Vzbid0IHdvcmsuIChQZXRlciBIb2RnZSkKK1NvbHV0aW9uOiAgIEFsbG93IGxlYXZpbmcgb3V0IHRoZSB0aGlyZCBpdGVtIG9mIHRoZSBsaXN0IGFuZCB1c2UgemVybyBmb3IgdGhlCisJICAgIHZpcnR1YWwgY29sdW1uIG9mZnNldC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDQyCitQcm9ibGVtOiAgICBXaGVuIHBhc3RpbmcgYSBibG9jayBvZiB0ZXh0IGluIEluc2VydCBtb2RlIFZpbSBoYW5ncyBvciBjcmFzaGVzLgorCSAgICAoTm9hbSBIYWxldnkpCitTb2x1dGlvbjogICBBdm9pZCB0aGF0IHRoZSBjdXJzb3IgaXMgcG9zaXRpb25lZCBwYXN0IHRoZSBOVUwgb2YgYSBsaW5lLgorRmlsZXM6CSAgICBzcmMvb3BzLmMKKworUGF0Y2ggNy4wLjA0MworUHJvYmxlbTogICAgVXNpbmcgIiUhIiBhdCB0aGUgc3RhcnQgb2YgJ3N0YXR1c2xpbmUnIGRvZXNuJ3Qgd29yay4KK1NvbHV0aW9uOiAgIFJlY29nbml6ZSB0aGUgc3BlY2lhbCBpdGVtIHdoZW4gdGhlIG9wdGlvbiBpcyBiZWluZyBzZXQuCitGaWxlczoJICAgIHNyYy9vcHRpb24uYworCitQYXRjaCA3LjAuMDQ0CitQcm9ibGVtOiAgICBQZXJsOiBzZXR0aW5nIGEgYnVmZmVyIGxpbmUgaW4gYW5vdGhlciBidWZmZXIgbWF5IHJlc3VsdCBpbgorCSAgICBjaGFuZ2luZyB0aGUgY3VycmVudCBidWZmZXIuCitTb2x1dGlvbjogICBQcm9wZXJseSBjaGFuZ2UgdG8gdGhlIGJ1ZmZlciB0byBiZSBjaGFuZ2VkLgorRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cworCitQYXRjaCA3LjAuMDQ1IChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiBXYXJuaW5ncyB3aGVuIGNvbXBpbGluZyBPTEUgdmVyc2lvbiB3aXRoIE1TVkMgMjAwNS4KK1NvbHV0aW9uOiAgIE1vdmUgaW5jbHVkaW5nIHZpbS5oIHRvIGJlZm9yZSB3aW5kb3dzLmguIChJbHlhIEJvYmlyKQorRmlsZXM6CSAgICBzcmMvaWZfb2xlLmNwcAorCitQYXRjaCA3LjAuMDQ2CitQcm9ibGVtOiAgICBUaGUgbWF0Y2hwYXJlbiBwbHVnaW4gaWdub3JlcyBwYXJlbnMgaW4gc3RyaW5ncywgYnV0IG5vdCBpbiBzaW5nbGUKKwkgICAgcXVvdGVzLCBvZnRlbiBtYXJrZWQgd2l0aCAiY2hhcmFjdGVyIi4KK1NvbHV0aW9uOiAgIEFsc28gaWdub3JlIHBhcmVucyBpbiBzeW50YXggaXRlbXMgbWF0Y2hpbmcgImNoYXJhY3RlciIuCitGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL21hdGNocGFyZW4udmltCisKK1BhdGNoIDcuMC4wNDcKK1Byb2JsZW06ICAgIFdoZW4gcnVubmluZyBjb25maWd1cmUgdGhlIGV4aXQgc3RhdHVzIGlzIHdyb25nLgorU29sdXRpb246ICAgSGFuZGxlIHRoZSBleGl0IHN0YXR1cyBwcm9wZXJseS4gKE1hdHRoZXcgV29laGxrZSkKK0ZpbGVzOgkgICAgY29uZmlndXJlLCBzcmMvY29uZmlndXJlCisKK1BhdGNoIDcuMC4wNDgKK1Byb2JsZW06ICAgIFdyaXRpbmcgYSBjb21wcmVzc2VkIGZpbGUgZmFpbHMgd2hlbiB0aGVyZSBhcmUgcGFyZW5zIGluIHRoZSBuYW1lLgorCSAgICAoV2FuZyBKaWFuKQorU29sdXRpb246ICAgUHV0IHF1b3RlcyBhcm91bmQgdGhlIHRlbXAgZmlsZSBuYW1lLgorRmlsZXM6CSAgICBydW50aW1lL2F1dG9sb2FkL2d6aXAudmltCisKK1BhdGNoIDcuMC4wNDkKK1Byb2JsZW06ICAgIFNvbWUgVENMIHNjcmlwdHMgYXJlIG5vdCByZWNvZ25pemVkLiAoU3RldmVuIEF0a2luc29uKQorU29sdXRpb246ICAgQ2hlY2sgZm9yICJleGVjIHdpc2giIGluIHRoZSBmaWxlLgorRmlsZXM6CSAgICBydW50aW1lL3NjcmlwdHMudmltCisKK1BhdGNoIDcuMC4wNTAKK1Byb2JsZW06ICAgIEFmdGVyIHVzaW5nIHRoZSBuZXRiZWFucyBpbnRlcmZhY2UgY2xvc2UgY29tbWFuZCBhIHN0YWxlIHBvaW50ZXIKKwkgICAgbWF5IGJlIHVzZWQuCitTb2x1dGlvbjogICBDbGVhciB0aGUgcG9pbnRlciB0byB0aGUgY2xvc2VkIGJ1ZmZlci4gKFhhdmlldyBkZSBHYXllKQorRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYworCitQYXRjaCA3LjAuMDUxIChhZnRlciA3LjAuNDQpCitQcm9ibGVtOiAgICBUaGUgUGVybCBpbnRlcmZhY2UgZG9lc24ndCBjb21waWxlIG9yIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KK1NvbHV0aW9uOiAgIFJlbW92ZSB0aGUgc3BhY2VzIGJlZm9yZSAjaWZkZWYgYW5kIGF2b2lkIGFuIGVtcHR5IGxpbmUgYWJvdmUgaXQuCitGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzCisKK1BhdGNoIDcuMC4wNTIKK1Byb2JsZW06ICAgIFRoZSB1c2VyIG1heSBub3QgYmUgYXdhcmUgdGhhdCB0aGUgVmltIHNlcnZlciBhbGxvd3Mgb3RoZXJzIG1vcmUKKwkgICAgZnVuY3Rpb25hbGl0eSB0aGFuIGRlc2lyZWQuCitTb2x1dGlvbjogICBXaGVuIHJ1bm5pbmcgVmltIGFzIHJvb3QgZG9uJ3QgYmVjb21lIGEgVmltIHNlcnZlciB3aXRob3V0IGFuCisJICAgIGV4cGxpY2l0IC0tc2VydmVybmFtZSBhcmd1bWVudC4KK0ZpbGVzOgkgICAgc3JjL21haW4uYworCitQYXRjaCA3LjAuMDUzCitQcm9ibGVtOiAgICBTaG9ydGVuaW5nIGEgZGlyZWN0b3J5IG5hbWUgbWF5IGZhaWwgd2hlbiB0aGVyZSBhcmUgbXVsdGktYnl0ZQorCSAgICBjaGFyYWN0ZXJzLgorU29sdXRpb246ICAgQ29weSB0aGUgY29ycmVjdCBieXRlcy4gKFRpdG92IEFuYXRvbHkpCitGaWxlczoJICAgIHNyYy9taXNjMS5jCisKK1BhdGNoIDcuMC4wNTQKK1Byb2JsZW06ICAgIE1hYzogVXNpbmcgYSBtZW51IG5hbWUgdGhhdCBvbmx5IGhhcyBhIG1uZW1vbmljIG9yIGFjY2VsZXJhdG9yCisJICAgIGNhdXNlcyBhIGNyYXNoLiAgKEVsbGlvdCBTaGFuaykKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBhbiBlbXB0eSBtZW51IG5hbWUuICBBbHNvIGRlbGV0ZSBlbXB0eSBzdWJtZW51cyB0aGF0CisJICAgIHdlcmUgY3JlYXRlZCBiZWZvcmUgZGV0ZWN0aW5nIHRoZSBlcnJvci4KK0ZpbGVzOgkgICAgc3JjL21lbnUuYworCitQYXRjaCA3LjAuMDU1CitQcm9ibGVtOiAgICAiOnN0YXJ0aW5zZXJ0IiBpbiBhIENtZHdpbkVudGVyIGF1dG9jb21tYW5kIGRvZXNuJ3QgdGFrZSBpbW1lZGlhdGUKKwkgICAgZWZmZWN0LiAoQnJhZGxleSBXaGl0ZSkKK1NvbHV0aW9uOiAgIFB1dCBhIE5PUCBrZXkgaW4gdGhlIHR5cGVhaGVhZCBidWZmZXIuICBBbHNvIGF2b2lkIHRoYXQgdXNpbmcKKwkgICAgQ1RSTC1DIHRvIGdvIGJhY2sgdG8gdGhlIGNvbW1hbmQgbGluZSBtb3ZlcyB0aGUgY3Vyc29yIGxlZnQuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4wNTYKK1Byb2JsZW06ICAgICIjIXNvbWV0aGluZyIgZ2l2ZXMgYW4gZXJyb3IgbWVzc2FnZS4KK1NvbHV0aW9uOiAgIElnbm9yZSB0aGlzIGxpbmUsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gYW4gZXhlY3V0YWJsZSBWaW0KKwkgICAgc2NyaXB0LgorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMDU3IChleHRyYSwgYWZ0ZXIgNy4wLjQ1KQorUHJvYmxlbTogICAgV2luMzI6IENvbXBpbGF0aW9uIHByb2JsZW0gd2l0aCBCb3JsYW5kIEMgNS41LgorU29sdXRpb246ICAgSW5jbHVkZSB2aW0uaCBhcyBiZWZvcmUuIChNYXJrIFMuIFdpbGxpYW1zKQorRmlsZXM6CSAgICBzcmMvaWZfb2xlLmNwcAorCitQYXRjaCA3LjAuMDU4CitQcm9ibGVtOiAgICBUaGUgZ2JrIGFuZCBhbmQgZ2IxODAzMCBlbmNvZGluZ3MgYXJlIG5vdCByZWNvZ25pemVkLgorU29sdXRpb246ICAgQWRkIGFsaWFzZXMgdG8gY3A5MzYuIChFZHdhcmQgTC4gRm94KQorRmlsZXM6CSAgICBzcmMvbWJ5dGUuYworCitQYXRjaCA3LjAuMDU5CitQcm9ibGVtOiAgICBUaGUgUGVybCBpbnRlcmZhY2UgZG9lc24ndCBjb21waWxlIHdpdGggQWN0aXZlU3RhdGUgUGVybCA1LjguOC4KK1NvbHV0aW9uOiAgIFJlbW92ZSB0aGUgX19hdHRyaWJ1dGVfXygpIGl0ZW1zLiAoTGl1IFl1YmFvKQorRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cworCitQYXRjaCA3LjAuMDYwIChhZnRlciA3LjAuNTEpCitQcm9ibGVtOiAgICBDb2RlIGZvciB0ZW1wb3JhcmlseSBzd2l0Y2hpbmcgdG8gYW5vdGhlciBidWZmZXIgaXMgZHVwbGljYXRlZCBpbgorCSAgICBxdWl0ZSBhIGZldyBwbGFjZXMuCitTb2x1dGlvbjogICBVc2UgYXVjbWRfcHJlcGJ1ZigpIGFuZCBhdWNtZF9yZXN0YnVmKCkgYWxzbyB3aGVuIEZFQVRfQVVUT0NNRCBpcworCSAgICBub3QgZGVmaW5lZC4KK0ZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXZhbC5jLCBzcmMvZmlsZWlvLmMsIHNyYy9pZl9ydWJ5LmMsCisJICAgIHNyYy9pZl9wZXJsLnhzLCBzcmMvcXVpY2tmaXguYywgc3JjL3N0cnVjdHMuaAorCitQYXRjaCA3LjAuMDYxCitQcm9ibGVtOiAgICBJbnNlcnQgbW9kZSBjb21wbGV0aW9uIGZvciBWaW0gY29tbWFuZHMgbWF5IGNyYXNoIGlmIHRoZXJlIGlzCisJICAgIG5vdGhpbmcgdG8gY29tcGxldGUuCitTb2x1dGlvbjogICBJbnN0ZWFkIG9mIGZyZWVpbmcgdGhlIHBhdHRlcm4gbWFrZSBpdCBlbXB0eSwgc28gdGhhdCBhICJub3QKKwkgICAgZm91bmQiIGVycm9yIGlzIGdpdmVuLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4wNjIKK1Byb2JsZW06ICAgIE1hYzogQ3Jhc2ggd2hlbiB1c2luZyB0aGUgcG9wdXAgbWVudSBmb3Igc3BlbGwgY29ycmVjdGlvbi4gIFRoZQorCSAgICBwb3B1cCBtZW51IGFwcGVhcnMgdHdpY2Ugd2hlbiBsZXR0aW5nIGdvIG9mIHRoZSByaWdodCBtb3VzZSBidXR0b24KKwkgICAgZWFybHkuCitTb2x1dGlvbjogICBEb24ndCBzaG93IHRoZSBwb3B1cCBtZW51IG9uIHRoZSByZWxlYXNlIG9mIHRoZSByaWdodCBtb3VzZQorCSAgICBidXR0b24uICBBbHNvIGNoZWNrIHRoYXQgYSBtZW51IHBvaW50ZXIgaXMgYWN0dWFsbHkgdmFsaWQuCitGaWxlczoJICAgIHNyYy9wcm90by9tZW51LnBybywgc3JjL21lbnUuYywgc3JjL25vcm1hbC5jLCBzcmMvdGVybS5jCisKK1BhdGNoIDcuMC4wNjMKK1Byb2JsZW06ICAgIFRpbnkgY2hhbmNlIGZvciBhIG1lbW9yeSBsZWFrLiAoY292ZXJpdHkpCitTb2x1dGlvbjogICBGcmVlIHBvaW50ZXIgd2hlbiBuZXh0IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wNjQKK1Byb2JsZW06ICAgIFVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuIChUb255IE1lY2hlbHluY2spCitTb2x1dGlvbjogICBXaGVuIG5vdCB1c2VkIHNldCAidGVtcCIgdG8gemVyby4gIEFsc28gYXZvaWQgYSB3YXJuaW5nIGZvcgorCSAgICAiZmlsZXMiIGluIGluc19jb21wbF9kaWN0aW9uYXJpZXMoKS4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMDY1IChleHRyYSkKK1Byb2JsZW06ICAgIE1hYzogbGVmdC1yaWdodCBtb3ZlbWVudCBvZiB0aGUgc2Nyb2xsd2hlZWwgY2F1c2VzIHVwLWRvd24KKwkgICAgc2Nyb2xsaW5nLgorU29sdXRpb246ICAgSWdub3JlIG1vdXNlIHdoZWVsIGV2ZW50cyB0aGF0IGFyZSBub3QgdXAtZG93bi4gKE5pY29sYXMgV2ViZXIpCitGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKKworUGF0Y2ggNy4wLjA2NgorUHJvYmxlbTogICAgQWZ0ZXIgdGhlIHBvcHVwIG1lbnUgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb24gb3ZlcmxhcHMgdGhlIHRhYgorCSAgICBwYWdlcyBsaW5lIGl0IGlzIG5vdCBjb21wbGV0ZWx5IHJlbW92ZWQuCitTb2x1dGlvbjogICBSZWRyYXcgdGhlIHRhYiBwYWdlcyBsaW5lIGFmdGVyIHJlbW92aW5nIHRoZSBwb3B1cCBtZW51LiAoT3JpCisJICAgIEF2dGFsaW9uKQorRmlsZXM6CSAgICBzcmMvcG9wdXBtbnUuYworCitQYXRjaCA3LjAuMDY3CitQcm9ibGVtOiAgICBVbmRvIGRvZXNuJ3QgYWx3YXlzIHdvcmsgcHJvcGVybHkgd2hlbiB1c2luZyAic2NpbSIgaW5wdXQgbWV0aG9kLgorCSAgICBVbmRvIGlzIHNwbGl0IHVwIHdoZW4gdXNpbmcgcHJlZWRpdGluZy4KK1NvbHV0aW9uOiAgIFJlc2V0IHhpbV9oYXNfcHJlZWRpdGluZyBhbHNvIHdoZW4gcHJlZWRpdF9zdGFydF9jb2wgaXMgbm90CisJICAgIE1BWENPTC4gIERvbid0IHNwbGl0IHVuZG8gd2hlbiA8TGVmdD4gaXMgdXNlZCB3aGlsZSBwcmVlZGl0aW5nLgorCSAgICAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvbWJ5dGUuYworCitQYXRjaCA3LjAuMDY4CitQcm9ibGVtOiAgICBXaGVuICdpZ25vcmVjYXNlJyBpcyBzZXQgYW5kIHVzaW5nIEluc2VydCBtb2RlIGNvbXBsZXRpb24sCisJICAgIHR5cGluZyBjaGFyYWN0ZXJzIHRvIGNoYW5nZSB0aGUgbGlzdCBvZiBtYXRjaGVzLCBjYXNlIGlzIG5vdAorCSAgICBpZ25vcmVkLiAoSHVnbyBBaGxlbml1cykKK1NvbHV0aW9uOiAgIFN0b3JlIHRoZSAnaWdub3JlY2FzZScgZmxhZyB3aXRoIHRoZSBtYXRjaGVzIHdoZXJlIG5lZWRlZC4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL3NlYXJjaC5jLCBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMDY5CitQcm9ibGVtOiAgICBTZXR0aW5nICdndWl0YWJsYWJlbCcgdG8gJSFleHBhbmQoXCUpICBjYXVzZXMgVmltIHRvIGZyZWUgYW4KKwkgICAgaW52YWxpZCBwb2ludGVyLiAoS2ltIFNjaHVseikKK1NvbHV0aW9uOiAgIERvbid0IHRyeSBmcmVlaW5nIGEgY29uc3RhbnQgc3RyaW5nIHBvaW50ZXIuCitGaWxlczoJICAgIHNyYy9idWZmZXIuYworCitQYXRjaCA3LjAuMDcwCitQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3Igc2hhZG93ZWQgdmFyaWFibGVzIGFuZCB1bmluaXRpYWxpemVkCisJICAgIHZhcmlhYmxlcy4KK1NvbHV0aW9uOiAgIFJlbmFtZSB2YXJpYWJsZXMgc3VjaCBhcyAiaW5kZXgiLCAibXNnIiBhbmQgImR1cCIuICBJbml0aWFsaXplCisJICAgIHZhcmlhYmxlcy4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsCisJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLAorCSAgICBzcmMvaGFyZGNvcHkuYywgc3JjL2lmX2NzY29wZS5jLCBzcmMvbWFpbi5jLCBzcmMvbWJ5dGUuYywKKwkgICAgc3JjL21lbWxpbmUuYywgc3JjL25ldGJlYW5zLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wdGlvbi5jLAorCSAgICBzcmMvb3NfdW5peC5jLCBzcmMvcXVpY2tmaXguYywgc3JjL3JlZ2V4cC5jLCBzcmMvc2NyZWVuLmMsCisJICAgIHNyYy9zZWFyY2guYywgc3JjL3NwZWxsLmMsIHNyYy91aS5jLCBzcmMvdW5kby5jLCBzcmMvd2luZG93LmMsCisJICAgIHNyYy92ZXJzaW9uLmMKKworUGF0Y2ggNy4wLjA3MQorUHJvYmxlbTogICAgVXNpbmcgYW4gZW1wdHkgc2VhcmNoIHBhdHRlcm4gbWF5IGNhdXNlIGEgY3Jhc2guCitTb2x1dGlvbjogICBBdm9pZCB1c2luZyBhIE5VTEwgcG9pbnRlci4KK0ZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCisKK1BhdGNoIDcuMC4wNzIKK1Byb2JsZW06ICAgIFdoZW4gc3RhcnRpbmcgdGhlIEdVSSBmYWlscyB0aGVyZSBpcyBubyB3YXkgdG8gYWRqdXN0IHNldHRpbmdzIG9yCisJICAgIGRvIHNvbWV0aGluZyBlbHNlLgorU29sdXRpb246ICAgQWRkIHRoZSBHVUlGYWlsZWQgYXV0b2NvbW1hbmQgZXZlbnQuCitGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL2d1aS5jLCBzcmMvdmltLmgKKworUGF0Y2ggNy4wLjA3MworUHJvYmxlbTogICAgSW5zZXJ0IG1vZGUgY29tcGxldGlvbjogVHlwaW5nIDxDUj4gc29tZXRpbWVzIHNlbGVjdHMgdGhlIG9yaWdpbmFsCisJICAgIHRleHQgaW5zdGVhZCBvZiBrZWVwaW5nIHdoYXQgd2FzIHR5cGVkLiAgKEp1c3RpbiBDb25zdGFudGlubykKK1NvbHV0aW9uOiAgIERvbid0IGxldCA8Q1I+IHNlbGVjdCB0aGUgb3JpZ2luYWwgdGV4dCBpZiB0aGVyZSBpcyBubyBwb3B1cCBtZW51LgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4wNzQgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IHRvb2x0aXBzIHdlcmUgbm90IGNvbnZlcnRlZCBmcm9tICdlbmNvZGluZycgdG8gVW5pY29kZS4KK1NvbHV0aW9uOiAgIFNldCB0aGUgdG9vbHRpcCB0byB1c2UgVW5pY29kZSBhbmQgZG8gdGhlIGNvbnZlcnNpb24uICBBbHNvCisJICAgIGNsZWFudXAgdGhlIGNvZGUgZm9yIHRoZSB0YWIgcGFnZXMgdG9vbHRpcHMuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKKworUGF0Y2ggNy4wLjA3NQorUHJvYmxlbTogICAgd2luc2F2ZXZpZXcoKSBkaWQgbm90IHN0b3JlIHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIGRlc2lyZWQgY3Vyc29yCisJICAgIGNvbHVtbi4gIFRoaXMgY291bGQgbW92ZSB0aGUgY3Vyc29yIGluIHRoZSBtYXRjaHBhcmVuIHBsdWdpbi4KK1NvbHV0aW9uOiAgIENhbGwgdXBkYXRlX2N1cnN3YW50KCkgYmVmb3JlIHVzaW5nIHRoZSB2YWx1ZSB3X2N1cnN3YW50LgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wNzYgKGFmdGVyIDcuMC4wMTApCitQcm9ibGVtOiAgICBBdXRvbWF0aWMgZG93bmxvYWRpbmcgb2Ygc3BlbGwgZmlsZXMgb25seSB3b3JrcyBmb3IgZnRwLgorU29sdXRpb246ICAgRG9uJ3QgYWRkIGxvZ2luIGFuZCBwYXNzd29yZCBmb3Igbm9uLWZ0cCBVUkxzLiAoQWxleGFuZGVyIFBhdHJha292KQorRmlsZXM6CSAgICBydW50aW1lL2F1dG9sb2FkL3NwZWxsZmlsZS52aW0KKworUGF0Y2ggNy4wLjA3NworUHJvYmxlbTogICAgIjp1bmxldCB2OnRoaXNfc2Vzc2lvbiIgY2F1c2VzIGEgY3Jhc2guIChNYXJpdXMgUm9ldHMpCitTb2x1dGlvbjogICBXaGVuIHRyeWluZyB0byB1bmxldCBhIGZpeGVkIHZhcmlhYmxlIGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDc4CitQcm9ibGVtOiAgICBUaGVyZSBhcmUgdHdvIGVycm9yIG1lc3NhZ2VzIEU0Ni4KK1NvbHV0aW9uOiAgIENoYW5nZSB0aGUgbnVtYmVyIGZvciB0aGUgc2FuZGJveCBtZXNzYWdlIHRvIEU3OTQuCitGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgKKworUGF0Y2ggNy4wLjA3OQorUHJvYmxlbTogICAgUnVzc2lhbiB0dXRvciBkb2Vzbid0IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIuCitTb2x1dGlvbjogICBVc2UgdHV0b3IucnUudXRmLTggYXMgdGhlIG1hc3RlciwgYW5kIGdlbmVyYXRlIHRoZSBvdGhlciBlbmNvZGluZ3MKKwkgICAgZnJvbSBpdC4gIFNlbGVjdCB0aGUgcmlnaHQgdHV0b3IgZGVwZW5kaW5nIG9uICdlbmNvZGluZycuIChBbGV4ZXkKKwkgICAgRnJvbG9mZikKK0ZpbGVzOgkgICAgcnVudGltZS90dXRvci9NYWtlZmlsZSwgcnVudGltZS90dXRvci90dXRvci52aW0sCisJICAgIHJ1bnRpbWUvdHV0b3IvdHV0b3IucnUudXRmLTgKKworUGF0Y2ggNy4wLjA4MAorUHJvYmxlbTogICAgR2VuZXJhdGluZyBhdXRvL3BhdGhkZWYuYyBmYWlscyBmb3IgQ0ZMQUdTIHdpdGggYSBiYWNrc2xhc2guCitTb2x1dGlvbjogICBEb3VibGUgYmFja3NsYXNoZXMgaW4gdGhlIHN0cmluZy4gKEFsZXhleSBGcm9sb2ZmKQorRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKKworUGF0Y2ggNy4wLjA4MQorUHJvYmxlbTogICAgQ29tbWFuZCBsaW5lIGNvbXBsZXRpb24gZG9lc24ndCB3b3JrIGZvciBhIHNoZWxsIGNvbW1hbmQgd2l0aCBhbgorCSAgICBhYnNvbHV0ZSBwYXRoLgorU29sdXRpb246ICAgRG9uJ3QgdXNlICRQQVRIIHdoZW4gdGhlcmUgaXMgYW4gYWJzb2x1dGUgcGF0aC4KK0ZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKKworUGF0Y2ggNy4wLjA4MgorUHJvYmxlbTogICAgQ2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgd2FpdHMgZm9yIGlucHV0IG1heSBjYXVzZSBMaXN0IGFuZAorCSAgICBEaWN0aW9uYXJ5IGFyZ3VtZW50cyB0byBiZSBmcmVlZCBieSB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuCitTb2x1dGlvbjogICBLZWVwIGEgbGlzdCBvZiBhbGwgYXJndW1lbnRzIHRvIGludGVybmFsIGZ1bmN0aW9ucy4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDgzCitQcm9ibGVtOiAgICBDbGlja2luZyB3aXRoIHRoZSBtb3VzZSBvbiBhbiBpdGVtIGZvciBpbnB1dGxpc3QoKSBkb2Vzbid0IHdvcmsKKwkgICAgd2hlbiAnY29tcGF0aWJsZScgaXMgc2V0IGFuZC9vciB3aGVuICdjbWRoZWlnaHQnIGlzIG1vcmUgdGhhbiBvbmUuCisJICAgIChDaHJpc3RpYW4gSi4gIFJvYmluc29uKQorU29sdXRpb246ICAgQWxzbyBkZWNyZW1lbnQgImxpbmVzX2xlZnQiIHdoZW4gJ21vcmUnIGlzbid0IHNldC4gIFNldAorCSAgICAiY21kbGluZV9yb3ciIHRvIHplcm8gdG8gZ2V0IGFsbCBtb3VzZSBldmVudHMuCitGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9taXNjMS5jCisKK1BhdGNoIDcuMC4wODQKK1Byb2JsZW06ICAgIFRoZSBnYXJiYWdlIGNvbGxlY3RvciBtYXkgZG8gaXRzIHdvcmsgd2hpbGUgc29tZSBMaXN0cyBvcgorCSAgICBEaWN0aW9uYXJpZXMgYXJlIHVzZWQgaW50ZXJuYWxseSwgZS5nLiwgYnkgIjplY2hvIiB0aGF0IHJ1bnMgaW50bworCSAgICB0aGUgbW9yZS1wcm9tcHQgb3IgIjplY2hvIFtnYXJiYWdlY29sbGVjdCgpXSIuCitTb2x1dGlvbjogICBPbmx5IGRvIGdhcmJhZ2UgY29sbGVjdGlvbiB3aGVuIHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyIGF0IHRoZQorCSAgICB0b3BsZXZlbC4gIExldCBnYXJiYWdlY29sbGVjdCgpIHNldCBhIGZsYWcgdGhhdCBpcyBoYW5kbGVkIGF0IHRoZQorCSAgICB0b3BsZXZlbCBiZWZvcmUgd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuCitGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9tYWluLmMKKworUGF0Y2ggNy4wLjA4NQorUHJvYmxlbTogICAgV2hlbiBkb2luZyAibWFrZSB0ZXN0IiB0aGUgdmltaW5mbyBmaWxlIGlzIG1vZGlmaWVkLgorU29sdXRpb246ICAgVXNlIGFub3RoZXIgdmltaW5mbyBmaWxlIGFmdGVyIHNldHRpbmcgJ2NvbXBhdGlibGUuCitGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q1Ni5pbgorCitQYXRjaCA3LjAuMDg2CitQcm9ibGVtOiAgICBnZXRxZmxpc3QoKSByZXR1cm5zIGVudHJpZXMgZm9yIHBhdHRlcm4gYW5kIHRleHQgd2l0aCB0aGUgbnVtYmVyCisJICAgIHplcm8uICBQYXNzaW5nIHRoZXNlIHRvIHNldHFmbGlzdCgpIHJlc3VsdHMgaW4gdGhlIHN0cmluZyAiMCIuCitTb2x1dGlvbjogICBVc2UgYW4gZW1wdHkgc3RyaW5nIGluc3RlYWQgb2YgdGhlIG51bWJlciB6ZXJvLgorRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYworCitQYXRjaCA3LjAuMDg3CitQcm9ibGVtOiAgICBBZnRlciAiOmZpbGUgZm5hbWUiIGFuZCAiOnNhdmVhcyBmbmFtZSIgdGhlICdhdXRvY2hkaXInIG9wdGlvbgorCSAgICBkb2VzIG5vdCB0YWtlIGVmZmVjdC4gKFlha292IExlcm5lcikKKwkgICAgQ29tbWFuZHMgZm9yIGhhbmRsaW5nICdhdXRvY2hkaXInIGFyZSByZXBlYXRlZCBtYW55IHRpbWVzLgorU29sdXRpb246ICAgQWRkIHRoZSBET19BVVRPQ0hESVIgbWFjcm8gYW5kIGRvX2F1dG9jaGRpcigpLiAgVXNlIGl0IGZvcgorCSAgICAiOmZpbGUgZm5hbWUiIGFuZCAiOnNhdmVhcyBmbmFtZSIuCitGaWxlczoJICAgIHNyYy9wcm90by9idWZmZXIucHJvLCBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9tYWNyb3MuaCwKKwkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9vcHRpb24uYywgc3JjL3dpbmRvdy5jCisKK1BhdGNoIDcuMC4wODgKK1Byb2JsZW06ICAgIFdoZW4gY29tcGlsZWQgd2l0aCBQZXJsIHRoZSBnZW5lcmF0ZWQgcHJvdG90eXBlcyBoYXZlICJleHRlcm4iCisJICAgIHVubmVjZXNzYXJpbHkgYWRkZWQuCitTb2x1dGlvbjogICBSZW1vdmUgdGhlICItcGlwZSIgYXJndW1lbnQgZnJvbSBQRVJMX0NGTEFHUy4KK0ZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCisKK1BhdGNoIDcuMC4wODkKK1Byb2JsZW06ICAgICJnYSIgZG9lcyBub3Qgd29yayBwcm9wZXJseSBmb3IgYSBub24tVW5pY29kZSBtdWx0aS1ieXRlIGVuY29kaW5nLgorU29sdXRpb246ICAgT25seSBjaGVjayBmb3IgY29tcG9zaW5nIGNoYXJzIGZvciB1dGYtOC4gKFRhcm8gTXVyYW9rYSkKK0ZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYworCitQYXRjaCA3LjAuMDkwCitQcm9ibGVtOiAgICBDYW5jZWxsaW5nIHRoZSBjb25mb3JtKCkgZGlhbG9nIG9uIHRoZSBjb25zb2xlIHdpdGggRXNjIHJlcXVpcmVzCisJICAgIHR5cGluZyBpdCB0d2ljZS4gKEJlbmppIEZpc2hlcikKK1NvbHV0aW9uOiAgIFdoZW4gdGhlIHN0YXJ0IG9mIGFuIGVzY2FwZSBzZXF1ZW5jZSBpcyBmb3VuZCB1c2UgJ3RpbWVvdXRsZW4nIG9yCisJICAgICd0dGltZW91dGxlbicuCitGaWxlczoJICAgIHNyYy9taXNjMS5jCisKK1BhdGNoIDcuMC4wOTEKK1Byb2JsZW06ICAgIFVzaW5nIHdpbnJlc3R2aWV3KCkgd2hpbGUgJ3Nob3djbWQnIGlzIHNldCBjYXVzZXMgdGhlIGN1cnNvciB0byBiZQorCSAgICBkaXNwbGF5ZWQgaW4gdGhlIHdyb25nIHBvc2l0aW9uLiAoWWFrb3YgTGVybmVyKQorU29sdXRpb246ICAgU2V0IHRoZSB3aW5kb3cgdG9wbGluZSBwcm9wZXJseS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMDkyIChhZnRlciA3LjAuMDgyIGFuZCA3LjAuMDg0KQorUHJvYmxlbTogICAgVGhlIGxpc3Qgb2YgaW50ZXJuYWwgZnVuY3Rpb24gYXJndW1lbnRzIGlzIG9ic29sZXRlIG5vdyB0aGF0CisJICAgIGdhcmJhZ2UgY29sbGVjdGlvbiBpcyBvbmx5IGRvbmUgYXQgdGhlIHRvcGxldmVsLgorU29sdXRpb246ICAgUmVtb3ZlIHRoZSBsaXN0IG9mIGFsbCBhcmd1bWVudHMgdG8gaW50ZXJuYWwgZnVuY3Rpb25zLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4wOTMKK1Byb2JsZW06ICAgIFRoZSBtYXRjaHBhcmVuIHBsdWdpbiBjYW4ndCBoYW5kbGUgYSAnbWF0Y2hwYWlycycgdmFsdWUgd2hlcmUgYQorCSAgICBjb2xvbiBpcyBtYXRjaGVkLgorU29sdXRpb246ICAgQ2hhbmdlIHRoZSBzcGxpdCgpIHRoYXQgaXMgdXNlZCB0byBjaGFuZ2UgJ21hdGNocGFpcnMnIGludG8gYQorCSAgICBMaXN0LgorRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9tYXRjaHBhcmVuLnZpbQorCitQYXRjaCA3LjAuMDk0CitQcm9ibGVtOiAgICBXaGVuIGEgaGlkZGVuIGJ1ZmZlciBpcyBtYWRlIHRoZSBjdXJyZW50IGJ1ZmZlciBhbmQgYW5vdGhlciBmaWxlCisJICAgIGVkaXRlZCBsYXRlciwgdGhlIGZpbGUgbWVzc2FnZSB3aWxsIHN0aWxsIGJlIGdpdmVuLiAgVXNpbmcKKwkgICAgIjpzaWxlbnQiIGFsc28gZG9lc24ndCBwcmV2ZW50IHRoZSBmaWxlIG1lc3NhZ2UuIChNYXJ2aW4gUmVuaWNoKQorU29sdXRpb246ICAgUmVzZXQgdGhlIG5lZWRfZmlsZWluZm8gZmxhZyB3aGVuIHJlYWRpbmcgYSBmaWxlLiAgRG9uJ3Qgc2V0CisJICAgIG5lZWRfZmlsZWluZm8gd2hlbiBtc2dfc2lsZW50IGlzIHNldC4KK0ZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZmlsZWlvLmMKKworUGF0Y2ggNy4wLjA5NQorUHJvYmxlbTogICAgVGhlIEdyZWVrIHR1dG9yIGlzIG5vdCBhdmFpbGFibGUgaW4gdXRmLTguICAiZWwiIGlzIHVzZWQgZm9yIHRoZQorCSAgICBsYW5ndWFnZSwgb25seSAiZ3IiIGZvciB0aGUgY291bnRyeSBpcyByZWNvZ25pemVkLgorU29sdXRpb246ICAgQWRkIHRoZSB1dGYtOCBHcmVlayB0dXRvci4gIFVzZSBpdCBmb3IgY29udmVyc2lvbiB0byBpc28tODg1OS03CisJICAgIGFuZCBjcDczNy4gIChMZWZ0ZXJpcyBEaW1pdHJvdWxha2lzKQorRmlsZXM6CSAgICBydW50aW1lL3R1dG9yL01ha2VmaWxlLCBydW50aW1lL3R1dG9yL3R1dG9yLmdyLnV0Zi04LAorCSAgICBydW50aW1lL3R1dG9yL3R1dG9yLnZpbQorCitQYXRjaCA3LjAuMDk2CitQcm9ibGVtOiAgICB0YWdsaXN0KCkgcmV0dXJucyB0aGUgZmlsZW5hbWUgcmVsYXRpdmUgdG8gdGhlIHRhZ3MgZmlsZSwgd2hpbGUKKwkgICAgdGhlIGRpcmVjdG9yeSBvZiB0aGUgdGFncyBmaWxlIGlzIHVua25vd24uIChIYXJpIEtyaXNobmEgRGFyYSkKK1NvbHV0aW9uOiAgIEV4cGFuZCB0aGUgZmlsZSBuYW1lLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK0ZpbGVzOgkgICAgc3JjL3RhZy5jCisKK1BhdGNoIDcuMC4wOTcKK1Byb2JsZW06ICAgICI6dGFiY2xvc2UgTiIgdGhhdCBjbG9zZXMgYW5vdGhlciB0YWIgcGFnZSBkb2VzIG5vdCByZW1vdmUgdGhlIHRhYgorCSAgICBwYWdlcyBsaW5lLiAgU2FtZSBwcm9ibGVtIHdoZW4gdXNpbmcgdGhlIG1vdXNlLgorU29sdXRpb246ICAgQWRqdXN0IHRoZSB0YWIgcGFnZXMgbGluZSB3aGVuIG5lZWRlZCBpbiB0YWJwYWdlX2Nsb3NlX290aGVyKCkuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4wOTgKK1Byb2JsZW06ICAgIFJlZGlyZWN0aW5nIGNvbW1hbmQgb3V0cHV0IGluIGEgY21kbGluZSBjb21wbGV0aW9uIGZ1bmN0aW9uCisJICAgIGRvZXNuJ3Qgd29yay4gKEhhcmkgS3Jpc2huYSBEYXJhKQorU29sdXRpb246ICAgRW5hYmxlIHJlZGlyZWN0aW9uIHdoZW4gcmVkaXJlY3Rpb24gaXMgc3RhcnRlZC4KK0ZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4wOTkKK1Byb2JsZW06ICAgIEdVSTogV2hlbiB0aGUgcG9wdXAgbWVudSBpcyB2aXNpYmxlIHVzaW5nIHRoZSBzY3JvbGxiYXIgbWVzc2VzIHVwCisJICAgIHRoZSBkaXNwbGF5LgorU29sdXRpb246ICAgRGlzYWxsb3cgc2Nyb2xsaW5nIHRoZSBjdXJyZW50IHdpbmRvdy4gIFJlZHJhdyB0aGUgcG9wdXAgbWVudQorCSAgICBhZnRlciBzY3JvbGxpbmcgYW5vdGhlciB3aW5kb3cuCitGaWxlczoJICAgIHNyYy9ndWkuYworCitQYXRjaCA3LjAuMTAwCitQcm9ibGVtOiAgICAienVnIiBtYXkgcmVwb3J0IHRoZSB3cm9uZyBmaWxlbmFtZS4gKExhd3JlbmNlIEtlc3RlbG9vdCkKK1NvbHV0aW9uOiAgIENhbGwgaG9tZV9yZXBsYWNlKCkgdG8gZmlsbCBOYW1lQnVmZltdLgorRmlsZXM6CSAgICBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMTAxCitQcm9ibGVtOiAgICBXaGVuIHRoZSAifi8udmltL3NwZWxsIiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QgInpnIiBtYXkgY3JlYXRlCisJICAgIGEgd3JvbmcgZGlyZWN0b3J5LiAgInp3IiBkb2Vzbid0IHdvcmsuCitTb2x1dGlvbjogICBVc2UgdGhlIGRpcmVjdG9yeSBvZiB0aGUgZmlsZSBuYW1lIGluc3RlYWQgb2YgTmFtZUJ1ZmYuICBGb3IgInp3IgorCSAgICBub3Qgb25seSByZW1vdmUgYSBnb29kIHdvcmQgYnV0IGFsc28gYWRkIHRoZSB3b3JkIHdpdGggIiEiLgorRmlsZXM6CSAgICBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMTAyCitQcm9ibGVtOiAgICBSZWRyYXdpbmcgY21kbGluZSBpcyBub3QgY29ycmVjdCB3aGVuIHVzaW5nIFNDSU0uCitTb2x1dGlvbjogICBEb24ndCBjYWxsIGltX2dldF9zdGF0dXMoKS4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKKworUGF0Y2ggNy4wLjEwMyAoYWZ0ZXIgNy4wLjEwMSkKK1Byb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuIChUb255IE1lY2hlbHluY2spCitTb2x1dGlvbjogICBJbml0IHZhcmlhYmxlLgorRmlsZXM6CSAgICBzcmMvc3BlbGwuYworCitQYXRjaCA3LjAuMTA0CitQcm9ibGVtOiAgICBUaGUgQ3Vyc29ySG9sZEkgZXZlbnQgb25seSB0cmlnZ2VycyBvbmNlIGluIEluc2VydCBtb2RlLiAgSXQgYWxzbworCSAgICB0cmlnZ2VycyBhZnRlciBDVFJMLVYgYW5kIG90aGVyIHR3by1rZXkgY29tbWFuZHMuCitTb2x1dGlvbjogICBTZXQgImRpZF9jdXJzb3Job2xkIiBiZWZvcmUgZ2V0dGluZyBhIHNlY29uZCBrZXkuICBSZXNldAorCSAgICAiZGlkX2N1cnNvcmhvbGQiIGFmdGVyIGhhbmRsaW5nIGEgY29tbWFuZC4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2ZpbGVpby5jCisKK1BhdGNoIDcuMC4xMDUKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgaW5jcmVtZW50YWwgc2VhcmNoIHRoZSBzdGF0dXNsaW5lIHJ1bGVyIGlzbid0IHVwZGF0ZWQuCisJICAgIChDaHJpc3RvcGggS29lZ2wpCitTb2x1dGlvbjogICBVcGRhdGUgdGhlIHN0YXR1c2xpbmUgd2hlbiBpdCBjb250YWlucyB0aGUgcnVsZXIuCitGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCisKK1BhdGNoIDcuMC4xMDYKK1Byb2JsZW06ICAgIFRoZSBzcGVsbCBwb3B1cCBtZW51IHVzZXMgIjphbWVudSIsIHRyaWdnZXJpbmcgbWFwcGluZ3MuICBPdGhlcgorCSAgICBQb3B1cE1lbnUgYXV0b2NvbW1hbmRzIGFyZSByZW1vdmVkLiAoSm9obiBMaXR0bGUpCitTb2x1dGlvbjogICBVc2UgIjphbm9yZW1lbnUiIGFuZCB1c2UgYW4gYXV0b2NtZCBncm91cC4KK0ZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQorCitQYXRjaCA3LjAuMTA3CitQcm9ibGVtOiAgICBJbmNyZW1lbnRhbCBzZWFyY2ggZG9lc24ndCByZWRyYXcgdGhlIHRleHQgdGFibGluZS4gKElseWEgQm9iaXIpCisJICAgIEFsc28gaGFwcGVucyBpbiBvdGhlciBzaXR1YXRpb25zIHdpdGggb25lIHdpbmRvdyBpbiBhIHRhYiBwYWdlLgorU29sdXRpb246ICAgUmVkcmF3IHRoZSB0YWJsaW5lIGFmdGVyIGNsZWFyaW5nIHRoZSBzY3JlZW4uCitGaWxlczoJICAgIHNyYy9zY3JlZW4uYworCitQYXRjaCA3LjAuMTA4IChleHRyYSkKK1Byb2JsZW06ICAgIEFtaWdhOiBDb21waWxhdGlvbiBwcm9ibGVtLgorU29sdXRpb246ICAgSGF2ZSBtY2hfbWtkaXIoKSByZXR1cm4gYSBmYWlsdXJlIGZsYWcuIChXaWxseSBDYXR0ZWF1KQorRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL3Byb3RvL29zX2FtaWdhLnBybworCitQYXRjaCA3LjAuMTA5CitQcm9ibGVtOiAgICBMaXNwIGluZGVudGluZyBpcyBjb25mdXNlZCBieSBlc2NhcGVkIHF1b3RlcyBpbiBzdHJpbmdzLiAoRG9yYWkKKwkgICAgU2l0YXJhbSkKK1NvbHV0aW9uOiAgIENoZWNrIGZvciBiYWNrc2xhc2ggaW5zaWRlIHN0cmluZ3MuIChTZXJnZXkgS2hvcmV2KQorRmlsZXM6CSAgICBzcmMvbWlzYzEuYworCitQYXRjaCA3LjAuMTEwCitQcm9ibGVtOiAgICBBbWlnYTogQ29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbiBub3QgdXNpbmcgbGlibml4LgorU29sdXRpb246ICAgQ2hhbmdlIGEgZmV3ICNpZmRlZnMuIChXaWxseSBDYXR0ZWF1KQorRmlsZXM6CSAgICBzcmMvbWVtZmlsZS5jCisKK1BhdGNoIDcuMC4xMTEKK1Byb2JsZW06ICAgIFRoZSBnemlwIHBsdWdpbiBjYW4ndCBoYW5kbGUgZmlsZW5hbWVzIHdpdGggc2luZ2xlIHF1b3Rlcy4KK1NvbHV0aW9uOiAgIEFkZCBhbmQgdXNlIHRoZSBzaGVsbGVzY2FwZSgpIGZ1bmN0aW9uLiAocGFydGx5IGJ5IEFsZXhleSBGcm9sb2ZmKQorRmlsZXM6CSAgICBydW50aW1lL2F1dG9sb2FkL2d6aXAudmltLCBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYywKKwkgICAgc3JjL21ieXRlLmMsIHNyYy9taXNjMi5jLCBzcmMvcHJvdG8vbWlzYzIucHJvCisKK1BhdGNoIDcuMC4xMTIKK1Byb2JsZW06ICAgIFB5dGhvbiBpbnRlcmZhY2UgZG9lcyBub3Qgd29yayB3aXRoIFB5dGhvbiAyLjUuCitTb2x1dGlvbjogICBDaGFuZ2UgUHlNZW1fREVMKCkgdG8gUHlfREVDUkVGKCkuIChTdW1uZXIgSGF5ZXMpCitGaWxlczoJICAgIHNyYy9pZl9weXRob24uYworCitQYXRjaCA3LjAuMTEzCitQcm9ibGVtOiAgICBVc2luZyBDVFJMLUwgaW4gSW5zZXJ0IGNvbXBsZXRpb24gd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50IG1hdGNoCisJICAgIG1heSBjYXVzZSBhIGNyYXNoLiAoWXVraWhpcm8gTmFrYWRhaXJhKQorU29sdXRpb246ICAgQ2hlY2sgZm9yIGNvbXBsX2xlYWRlciB0byBiZSBOVUxMCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjExNAorUHJvYmxlbTogICAgV2hlbiBhYm9ydGluZyBhbiBpbnNlcnQgd2l0aCBDVFJMLUMgYW4gZXh0cmEgdW5kbyBwb2ludCBpcworCSAgICBjcmVhdGVkIGluIHRoZSBHVUkuIChZdWtpaGlybyBOYWthZGFpcmEpCitTb2x1dGlvbjogICBDYWxsIGdvdGNoYXJzKCkgb25seSB3aGVuIGFkdmFuY2luZy4KK0ZpbGVzOgkgICAgc3JjL2dldGNoYXIuYworCitQYXRjaCA3LjAuMTE1CitQcm9ibGVtOiAgICBXaGVuICdpZ25vcmVjYXNlJyBpcyBzZXQsIEluc2VydCBtb2RlIGNvbXBsZXRpb24gb25seSBhZGRzICJmb28iCisJICAgIGFuZCBub3QgIkZvbyIgd2hlbiBib3RoIGFyZSBmb3VuZC4KKwkgICAgQSBmb3VuZCBtYXRjaCBpc24ndCBkaXNwbGF5ZWQgcmlnaHQgYXdheSB3aGVuICdjb21wbGV0ZW9wdCcgZG9lcworCSAgICBub3QgaGF2ZSAibWVudSIgb3IgIm1lbnVvbmUiLgorU29sdXRpb246ICAgRG8gbm90IGlnbm9yZSBjYXNlIHdoZW4gY2hlY2tpbmcgaWYgYSBjb21wbGV0aW9uIG1hdGNoIGFscmVhZHkKKwkgICAgZXhpc3RzLiAgY2FsbCBpbnNfY29tcGxfY2hlY2tfa2V5cygpIGFsc28gd2hlbiBub3QgdXNpbmcgYSBwb3B1cAorCSAgICBtZW51LiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4xMTYKK1Byb2JsZW06ICAgIDY0IGJpdCBXaW5kb3dzIHZlcnNpb24gcmVwb3J0cyAiMzIgYml0IiBpbiB0aGUgIjp2ZXJzaW9uIiBvdXRwdXQuCisJICAgIChNLiBWZWVybWFuKQorU29sdXRpb246ICAgQ2hhbmdlIHRoZSB0ZXh0IGZvciBXaW42NC4KK0ZpbGVzOgkgICAgc3JjL3ZlcnNpb24uYworCitQYXRjaCA3LjAuMTE3CitQcm9ibGVtOiAgICBVc2luZyAiZXh0ZW5kIiBvbiBhIHN5bnRheCBpdGVtIGluc2lkZSBhIHJlZ2lvbiB3aXRoICJrZWVwZW5kIiwgYW4KKwkgICAgaW50ZXJtZWRpYXRlIGl0ZW0gbWF5IGJlIHRydW5jYXRlZC4KKwkgICAgV2hlbiBhcHBseWluZyB0aGUgImtlZXBlbmQiIGFuZCB0aGVyZSBpcyBhbiBvZmZzZXQgdG8gdGhlIGVuZAorCSAgICBwYXR0ZXJuIHRoZSBoaWdobGlnaHRpbmcgb2YgYSBjb250YWluZWQgaXRlbSBpc24ndCBhZGp1c3RlZC4KK1NvbHV0aW9uOiAgIFVzZSB0aGUgc2Vlbl9rZWVwZW5kIGZsYWcgdG8gcmVtZW1iZXIgd2hlbiB0byBhcHBseSB0aGUgImtlZXBlbmQiCisJICAgIGZsYWcuICBBZGp1c3QgdGhlIGtlZXBlbmQgaGlnaGxpZ2h0aW5nIHByb3Blcmx5LiAoSWx5YSBCb2JpcikKK0ZpbGVzOgkgICAgc3JjL3N5bnRheC5jCisKK1BhdGNoIDcuMC4xMTgKK1Byb2JsZW06ICAgIHByaW50ZigpIGRvZXMgbm90IGRvIHplcm8gcGFkZGluZyBmb3Igc3RyaW5ncy4KK1NvbHV0aW9uOiAgIERvIGFsbG93IHplcm8gcGFkZGluZyBmb3Igc3RyaW5ncy4KK0ZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYworCitQYXRjaCA3LjAuMTE5CitQcm9ibGVtOiAgICBXaGVuIGdvaW5nIGJhY2sgZnJvbSBJbnNlcnQgdG8gTm9ybWFsIG1vZGUgdGhlIEN1cnNvckhvbGQgZXZlbnQKKwkgICAgZG9lc24ndCB0cmlnZ2VyLiAoWWFrb3YgTGVybmVyKQorU29sdXRpb246ICAgUmVzZXQgImRpZF9jdXJzb3Job2xkIiB3aGVuIGxlYXZpbmcgSW5zZXJ0IG1vZGUuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjEyMAorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBDVFJMLVIgPSBhdCB0aGUgY29tbWFuZCBsaW5lIGFuZCBlbnRlcmluZworCSAgICAiZ2V0cmVnKCc9JykiLiAoSmFtZXMgVmVnYSkKK1NvbHV0aW9uOiAgIEF2b2lkIHJlY3Vyc2l2ZW5lc3Mgb2YgZXZhbHVhdGluZyB0aGUgPSByZWdpc3Rlci4KK0ZpbGVzOgkgICAgc3JjL29wcy5jCisKK1BhdGNoIDcuMC4xMjEKK1Byb2JsZW06ICAgIEdVSTogRHJhZ2dpbmcgdGhlIGxhc3Qgc3RhdHVzIGxpbmUgZG9lc24ndCB3b3JrIHdoZW4gdGhlcmUgaXMgYQorCSAgICB0ZXh0IHRhYmxpbmUuICAoTWFya3VzIFdvbGYpCitTb2x1dGlvbjogICBUYWtlIHRoZSB0ZXh0IHRhYmxpbmUgaW50byBhY2NvdW50IHdoZW4gZGVjaWRpbmcgdG8gc3RhcnQgbW9kZWxlc3MKKwkgICAgc2VsZWN0aW9uLgorRmlsZXM6CSAgICBzcmMvZ3VpLmMKKworUGF0Y2ggNy4wLjEyMgorUHJvYmxlbTogICAgR1VJOiBXaGVuIGNsZWFyaW5nIGFmdGVyIGEgYm9sZCwgZG91YmxlLXdpZGUgY2hhcmFjdGVyIGhhbGYgYQorCSAgICBjaGFyYWN0ZXIgbWF5IGJlIGRyYXduLgorU29sdXRpb246ICAgQ2hlY2sgZm9yIGRvdWJsZS13aWRlIGNoYXJhY3RlciBhbmQgcmVkcmF3IGl0LiAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKKworUGF0Y2ggNy4wLjEyMworUHJvYmxlbTogICAgT24gU0NPIE9wZW5zZXJ2ZXIgY29uZmlndXJlIHNlbGVjdHMgdGhlIHdyb25nIHRlcm1pbmFsIGxpYnJhcnkuCitTb2x1dGlvbjogICBQdXQgdGVybWluZm8gYmVmb3JlIHRoZSBvdGhlciBsaWJyYXJpZXMuIChSb2dlciBDb3JuZWxpdXMpCisJICAgIEFsc28gZml4IGEgc21hbGwgcHJvYmxlbSBjb21waWxpbmcgb24gTWFjIHdpdGhvdXQgRGFyd2luLgorRmlsZXM6CSAgICBzcmMvY29uZmlndXJlLmluLCBzcmMvYXV0by9jb25maWd1cmUKKworUGF0Y2ggNy4wLjEyNAorUHJvYmxlbTogICAgZ2V0d2ludmFyKCkgb2J0YWlucyBhIGRpY3Rpb25hcnkgd2l0aCB3aW5kb3ctbG9jYWwgdmFyaWFibGVzLCBidXQKKwkgICAgaXQncyBhbHdheXMgZm9yIHRoZSBjdXJyZW50IHdpbmRvdy4KK1NvbHV0aW9uOiAgIEdldCB0aGUgdmFyaWFibGVzIG9mIHRoZSBzcGVjaWZpZWQgd2luZG93LiAoR2VvZmYgUmVlZHkpCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjEyNQorUHJvYmxlbTogICAgV2hlbiAiYXV0b3NlbGVjdCIgaXMgaW4gdGhlICdjbGlwYm9hcmQnIG9wdGlvbiB0aGVuIHRoZSAnPCBhbmQgJz4KKwkgICAgbWFya3MgYXJlIHNldCB3aGlsZSBWaXN1YWwgbW9kZSBpcyBzdGlsbCBhY3RpdmUuCitTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlICc8IGFuZCAnPiBtYXJrcyB3aGVuIHlhbmtpbmcgdGhlIHNlbGVjdGVkIGFyZWEgZm9yCisJICAgIHRoZSBjbGlwYm9hcmQuCitGaWxlczoJICAgIHNyYy9ub3JtYWwuYworCitQYXRjaCA3LjAuMTI2CitQcm9ibGVtOiAgICBXaGVuICdmb3JtYXRleHByJyB1c2VzIHNldGxpbmUoKSBhbmQgbGF0ZXIgaW50ZXJuYWwgZm9ybWF0dGluZyBpcworCSAgICB1c2VkIHVuZG8gaW5mb3JtYXRpb24gaXMgbm90IGNvcnJlY3QuIChKaXJpIENlcm55LCBCZW5qaSBGaXNoZXIpCitTb2x1dGlvbjogICBTZXQgaW5zX25lZWRfdW5kbyBhZnRlciB1c2luZyAnZm9ybWF0ZXhwcicuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjEyNworUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBzd2FwIGZpbGVzIGhhcyBpbnZhbGlkIHRpbWVzdGFtcC4KK1NvbHV0aW9uOiAgIENoZWNrIHJldHVybiB2YWx1ZSBvZiBjdGltZSgpIGZvciBiZWluZyBOVUxMLgorRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCisKK1BhdGNoIDcuMC4xMjgKK1Byb2JsZW06ICAgIEdVSTogd2hlbiBjbG9zaW5nIGd2aW0gaXMgY2FuY2VsbGVkIGJlY2F1c2UgdGhlcmUgaXMgYSBjaGFuZ2VkCisJICAgIGJ1ZmZlciB0aGUgc2NyZWVuIGlzbid0IHVwZGF0ZWQgdG8gc2hvdyB0aGUgY2hhbmdlZCBidWZmZXIgaW4gdGhlCisJICAgIGN1cnJlbnQgd2luZG93LiAgKEtyenlzenRvZiBLYWNwcnphaykKK1NvbHV0aW9uOiAgIFJlZHJhdyB3aGVuIGNsb3NpbmcgZ3ZpbSBpcyBjYW5jZWxsZWQuCitGaWxlczoJICAgIHNyYy9ndWkuYworCitQYXRjaCA3LjAuMTI5CitQcm9ibGVtOiAgICBHVEsgR1VJOiB0aGUgR1RLIGZpbGUgZGlhbG9nIGNhbid0IGhhbmRsZSBhIHJlbGF0aXZlIHBhdGguCitTb2x1dGlvbjogICBNYWtlIHRoZSBpbml0aWFsIGRpcmVjdG9yeSBhIGZ1bGwgcGF0aCBiZWZvcmUgcGFzc2luZyBpdCB0byBHVEsuCisJICAgIChKYW1lcyBWZWdhKSAgQWxzbyBwb3N0cG9uZSBhZGRpbmcgdGhlIGRlZmF1bHQgZmlsZSBuYW1lIHVudGlsCisJICAgIGFmdGVyIHNldHRpbmcgdGhlIGRpcmVjdG9yeS4KK0ZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYworCitQYXRjaCA3LjAuMTMwIChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiBUcnlpbmcgdG8gZWRpdCBvciB3cml0ZSBkZXZpY2VzIG1heSBjYXVzZSBWaW0gdG8gZ2V0IHN0dWNrLgorU29sdXRpb246ICAgQWRkIHRoZSAnb3BlbmRldmljZScgb3B0aW9uLCBkZWZhdWx0IG9mZi4gIERpc2FsbG93CisJICAgIHJlYWRpbmcvd3JpdGluZyBmcm9tL3RvIGRldmljZXMgd2hlbiBpdCdzIG9mZi4KKwkgICAgQWxzbyBkZXRlY3QgbW9yZSBkZXZpY2VzIGJ5IHRoZSBmdWxsIG5hbWUgc3RhcnRpbmcgd2l0aCAiXFwuXCIuCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvZmlsZWlvLmMsIHNyYy9vcHRpb24uYywgc3JjL29wdGlvbi5oLAorCSAgICBzcmMvb3Nfd2luMzIuYworCitQYXRjaCA3LjAuMTMxCitQcm9ibGVtOiAgICBXaW4zMjogInZpbSAtciIgZG9lcyBub3QgbGlzdCBhbGwgdGhlIHN3YXAgZmlsZXMuCitTb2x1dGlvbjogICBBbHNvIGNoZWNrIGZvciBzd2FwIGZpbGVzIHN0YXJ0aW5nIHdpdGggYSBkb3QuCitGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKKworUGF0Y2ggNy4wLjEzMiAoYWZ0ZXIgNy4wLjEzMCkKK1Byb2JsZW06ICAgIFdpbjMyOiBDcmFzaCB3aGVuIFZpbSByZWFkcyBmcm9tIHN0ZGluLgorU29sdXRpb246ICAgT25seSB1c2UgbWNoX25vZGV0eXBlKCkgd2hlbiB0aGVyZSBpcyBhIGZpbGUgbmFtZS4KK0ZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCisKK1BhdGNoIDcuMC4xMzMKK1Byb2JsZW06ICAgIFdoZW4gc2VhcmNoaW5nIGluY2x1ZGVkIGZpbGVzIG1lc3NhZ2VzIGFyZSBhZGRlZCB0byB0aGUgaGlzdG9yeS4KK1NvbHV0aW9uOiAgIFNldCBtc2dfaGlzdF9vZmYgZm9yIG1lc3NhZ2VzIGFib3V0IHNjYW5uaW5nIGluY2x1ZGVkIGZpbGVzLgorICAgICAgICAgICAgU2V0IG1zZ19zaWxlbnQgdG8gYXZvaWQgbWVzc2FnZSBhYm91dCB3cmFwcGluZyBhcm91bmQuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9tZXNzYWdlLmMsIHNyYy9zZWFyY2guYworCitQYXRjaCA3LjAuMTM0CitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGNvbXBhcmluZyBhIHJlY3Vyc2l2ZWx5IGxvb3BlZCBMaXN0IG9yIERpY3Rpb25hcnkuCitTb2x1dGlvbjogICBMaW1pdCByZWN1cnNpdmVuZXNzIGZvciBjb21wYXJpbmcgdG8gMTAwMC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTM1CitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGdhcmJhZ2UgY29sbGVjdGluZyBsaXN0IG9yIGRpY3Qgd2l0aCBsb29wLgorU29sdXRpb246ICAgRG9uJ3QgdXNlIERFTF9SRUZDT1VOVCBidXQgZG9uJ3QgcmVjdXJzZSBpbnRvIExpc3RzIGFuZAorCSAgICBEaWN0aW9uYXJpZXMgd2hlbiBmcmVlaW5nIHRoZW0gaW4gdGhlIGdhcmJhZ2UgY29sbGVjdG9yLgorCSAgICBBbHNvIGFkZCBhbGxvY2F0ZWQgRGljdGlvbmFyaWVzIHRvIHRoZSBsaXN0IG9mIERpY3Rpb25hcmllcyB0bworCSAgICBhdm9pZCBsZWFraW5nIG1lbW9yeS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL3Byb3RvL2V2YWwucHJvLCBzcmMvdGFnLmMKKworUGF0Y2ggNy4wLjEzNgorUHJvYmxlbTogICAgVXNpbmcgIk8iIHdoaWxlIG1hdGNoaW5nIHBhcmVucyBhcmUgaGlnaGxpZ2h0ZWQgbWF5IG5vdCByZW1vdmUgdGhlCisJICAgIGhpZ2hsaWdodGluZy4gKElseWEgQm9iaXIpCitTb2x1dGlvbjogICBBbHNvIHRyaWdnZXIgQ3Vyc29yTW92ZWQgd2hlbiBhIGxpbmUgaXMgaW5zZXJ0ZWQgdW5kZXIgdGhlIGN1cnNvci4KK0ZpbGVzOgkgICAgc3JjL21pc2MxLmMKKworUGF0Y2ggNy4wLjEzNworUHJvYmxlbTogICAgQ29uZmlndXJlIGNoZWNrIGZvciBiaWcgZmVhdHVyZXMgaXMgd3JvbmcuCitTb2x1dGlvbjogICBDaGFuZ2UgIj09IiB0byAiPSIuIChNYXJ0dGkgS3VwYXJpbmVuKQorRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KKworUGF0Y2ggNy4wLjEzOCAoZXh0cmEpCitQcm9ibGVtOiAgICBNYWM6IG1vZGlmaWVycyBkb24ndCB3b3JrIHdpdGggZnVuY3Rpb24ga2V5cy4KK1NvbHV0aW9uOiAgIFVzZSBHZXRFdmVudFBhcmFtZXRlcigpIHRvIG9idGFpbiBtb2RpZmllcnMuIChOaWNvbGFzIFdlYmVyKQorRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCisKK1BhdGNoIDcuMC4xMzkKK1Byb2JsZW06ICAgIFVzaW5nIENUUkwtUGFnZVVwIG9yIENUUkwtUGFnZURvd24gaW4gSW5zZXJ0IG1vZGUgdG8gZ28gdG8gYW5vdGhlcgorCSAgICB0YWIgcGFnZSBkb2VzIG5vdCBwcmVwYXJlIGZvciB1bmRvIHByb3Blcmx5LiAoU3RlZmFubyBaYWNjaGlyb2xpKQorU29sdXRpb246ICAgQ2FsbCBzdGFydF9hcnJvdygpIGJlZm9yZSBzd2l0Y2hpbmcgdGFiIHBhZ2UuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjE0MCAoYWZ0ZXIgNy4wLjEzNCkKK1Byb2JsZW06ICAgIENvbXBhcmluZyByZWN1cnNpdmVseSBsb29wZWQgTGlzdCBvciBEaWN0aW9uYXJ5IGRvZXNuJ3Qgd29yayB3ZWxsLgorU29sdXRpb246ICAgRGV0ZWN0IGNvbXBhcmluZyBhIExpc3Qgb3IgRGljdGlvbmFyeSB3aXRoIGl0c2VsZi4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTQxCitQcm9ibGVtOiAgICBXaGVuIHBhc3RpbmcgYSB3aGlsZSBsaW5lIG9uIHRoZSBjb21tYW5kIGxpbmUgYW4gZXh0cmEgQ1IgaXMgYWRkZWQKKwkgICAgbGl0ZXJhbGx5LgorU29sdXRpb246ICAgRG9uJ3QgYWRkIHRoZSB0cmFpbGluZyBDUiB3aGVuIHBhc3Rpbmcgd2l0aCB0aGUgbW91c2UuCitGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvcHJvdG8vb3BzLnBybywgc3JjL29wcy5jCisKK1BhdGNoIDcuMC4xNDIKK1Byb2JsZW06ICAgIFVzaW5nIHRoZSBtaWRkbGUgbW91c2UgYnV0dG9uIGluIFNlbGVjdCBtb2RlIHRvIHBhc3RlIHRleHQgcmVzdWx0cworCSAgICBpbiBhbiBleHRyYSAieSIuIChLcml0b24gS3lyaW1pcykKK1NvbHV0aW9uOiAgIExldCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiByZXBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IHdpdGggdGhlCisJICAgIGNvbnRlbnRzIG9mIHRoZSBjbGlwYm9hcmQuCitGaWxlczoJICAgIHNyYy9ub3JtYWwuYworCitQYXRjaCA3LjAuMTQzCitQcm9ibGVtOiAgICBTZXR0aW5nICdzY3JvbGwnIHRvIGl0cyBkZWZhdWx0IHZhbHVlIHdhcyBub3QgaGFuZGxlZCBjb3JyZWN0bHkuCitTb2x1dGlvbjogICBDb21wYXJlIHRoZSByaWdodCBmaWVsZCB0byBQVl9TQ1JPTEwuCitGaWxlczoJICAgIHNyYy9vcHRpb24uYworCitQYXRjaCA3LjAuMTQ0CitQcm9ibGVtOiAgICBNYXkgY29tcGFyZSB0d28gdW5yZWxhdGVkIHBvaW50ZXJzIHdoZW4gbWF0Y2hpbmcgYSBwYXR0ZXJuIGFnYWluc3QKKwkgICAgYSBzdHJpbmcuICAoRG9taW5pcXVlIFBlbGxlKQorU29sdXRpb246ICAgQXZvaWQgY2FsbGluZyByZWdfZ2V0bGluZSgpIHdoZW4gUkVHX01VTFRJIGlzIGZhbHNlLgorRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKKworUGF0Y2ggNy4wLjE0NSAoYWZ0ZXIgNy4wLjE0MikKK1Byb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcuCitTb2x1dGlvbjogICBBZGQgdHlwZSBjYXN0LgorRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKKworUGF0Y2ggNy4wLjE0NgorUHJvYmxlbTogICAgV2hlbiAnc3dpdGNoYnVmJyBpcyBzZXQgdG8gInVzZXRhYiIgYW5kIHRoZSBjdXJyZW50IHRhYiBoYXMgb25seSBhCisJICAgIHF1aWNrZml4IHdpbmRvdywganVtcGluZyB0byBhbiBlcnJvciBhbHdheXMgb3BlbnMgYSBuZXcgd2luZG93LgorCSAgICBBbHNvLCB3aGVuIHRoZSBidWZmZXIgaXMgb3BlbiBpbiBhbm90aGVyIHRhYiBwYWdlIGl0J3Mgbm90IGZvdW5kLgorU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSAic3BsaXQiIHZhbHVlIG9mICdzd2l0Y2hidWYnIHByb3Blcmx5LiAgU2VhcmNoIGluCisJICAgIG90aGVyIHRhYiBwYWdlcyBmb3IgdGhlIGRlc2lyZWQgYnVmZmVyLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK0ZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvcXVpY2tmaXguYworCitQYXRjaCA3LjAuMTQ3CitQcm9ibGVtOiAgICBXaGVuIGNyZWF0aW5nIGEgc2Vzc2lvbiBmaWxlIGFuZCB0aGVyZSBhcmUgc2V2ZXJhbCB0YWIgcGFnZXMgYW5kCisJICAgIHNvbWUgd2luZG93cyBoYXZlIGEgbG9jYWwgZGlyZWN0b3J5IGEgc2hvcnQgZmlsZSBuYW1lIG1heSBiZSB1c2VkCisJICAgIHdoZW4gaXQncyBub3QgdmFsaWQuIChNYXJpdXMgUm9ldHMpCisJICAgIEEgc2Vzc2lvbiB3aXRoIG11bHRpcGxlIHRhYiBwYWdlcyBtYXkgcmVzdWx0IGluICJObyBOYW1lIiBidWZmZXJzLgorCSAgICAoQmlsbCBNY0NhcnRoeSkKK1NvbHV0aW9uOiAgIERvbid0IGVudGVyIHRhYiBwYWdlcyB3aGVuIGdvaW5nIHRocm91Z2ggdGhlIGxpc3QsIG9ubHkgdXNlIGEKKwkgICAgcG9pbnRlciB0byB0aGUgZmlyc3Qgd2luZG93IGluIGVhY2ggdGFiIHBhZ2UuCisgICAgICAgICAgICBVc2UgInRhYmVkaXQiIGluc3RlYWQgb2YgInRhYm5ldyB8IGVkaXQiIHdoZW4gcG9zc2libGUuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4xNDgKK1Byb2JsZW06ICAgIFdoZW4gZG9pbmcgImNhbGwgYS54eXooKSIgYW5kICJ4eXoiIGRvZXMgbm90IGV4aXN0IGluIGRpY3Rpb25hcnkKKwkgICAgImEiIHRoZXJlIGlzIG5vIGVycm9yIG1lc3NhZ2UuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQorU29sdXRpb246ICAgQWRkIHRoZSBlcnJvciBtZXNzYWdlLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4xNDkKK1Byb2JsZW06ICAgIFdoZW4gcmVzaXppbmcgYSB3aW5kb3cgdGhhdCBzaG93cyAifiIgbGluZXMgdGhlIHRleHQgc29tZXRpbWVzCisJICAgIGp1bXBzIGRvd24uCitTb2x1dGlvbjogICBSZW1vdmUgY29kZSB0aGF0IHVzZXMgIn4iIGxpbmVzIGluIHNvbWUgc2l0dWF0aW9ucy4gIEZpeCB0aGUKKyAgICAgICAgICAgIGNvbXB1dGF0aW9uIG9mIHRoZSBzY3JlZW4gbGluZSBvZiB0aGUgY3Vyc29yLiAgQWxzbyBzZXQgd19za2lwY29sCisJICAgIHRvIGhhbmRsZSB2ZXJ5IGxvbmcgbGluZXMuCitGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvd2luZG93LmMKKworUGF0Y2ggNy4wLjE1MAorUHJvYmxlbTogICAgV2hlbiByZXNpemluZyB0aGUgVmltIHdpbmRvdyBzY3JvbGxiaW5kaW5nIGRvZXNuJ3Qgd29yay4gKFlha292CisJICAgIExlcm5lcikKK1NvbHV0aW9uOiAgIERvIHNjcm9sbGJpbmRpbmcgaW4gc2V0X3NoZWxsc2l6ZSgpLgorRmlsZXM6CSAgICBzcmMvdGVybS5jCisKK1BhdGNoIDcuMC4xNTEKK1Byb2JsZW06ICAgIEJ1dHRvbnMgaW4gZmlsZSBkaWFsb2cgYXJlIG5vdCBhY2NvcmRpbmcgdG8gR25vbWUgZ3VpZGVsaW5lcy4KK1NvbHV0aW9uOiAgIFN3YXAgQ2FuY2VsIGFuZCBPcGVuIGJ1dHRvbnMuIChTdGVmYW5vIFphY2NoaXJvbGkpCitGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKKworUGF0Y2ggNy4wLjE1MgorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBsZXNzdGlmIDIuCitTb2x1dGlvbjogICBGaWxsIGluIHRoZSBleHRlbnNpb24gZmllbGQuIChCZW4gSHV0Y2hpbmdzKQorRmlsZXM6CSAgICBzcmMvZ3VpX3htZWJ3LmMKKworUGF0Y2ggNy4wLjE1MworUHJvYmxlbTogICAgV2hlbiB1c2luZyBjc2NvcGUgYW5kIG9wZW5pbmcgdGhlIHRlbXAgZmlsZSBmYWlscyBWaW0gY3Jhc2hlcy4KKwkgICAgKEtheWEgQmVraXJvZ2x1KQorU29sdXRpb246ICAgQ2hlY2sgZm9yIE5VTEwgcG9pbnRlciByZXR1cm5lZCBmcm9tIG1jaF9vcGVuKCkuCitGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYworCitQYXRjaCA3LjAuMTU0CitQcm9ibGVtOiAgICBXaGVuICdmb2xkbmV4dG1heCcgaXMgbmVnYXRpdmUgVmltIGNhbiBoYW5nLiAoSmFtZXMgVmVnYSkKK1NvbHV0aW9uOiAgIEF2b2lkIHRoZSBmb2xkIGxldmVsIGJlY29taW5nIG5lZ2F0aXZlLgorRmlsZXM6CSAgICBzcmMvZm9sZC5jLCBzcmMvc3ludGF4LmMKKworUGF0Y2ggNy4wLjE1NQorUHJvYmxlbTogICAgV2hlbiBnZXRjaGFyKCkgcmV0dXJucyBhIG1vdXNlIGJ1dHRvbiBjbGljayB0aGVyZSBpcyBubyB3YXkgdG8gZ2V0CisJICAgIHRoZSBtb3VzZSBjb29yZGluYXRlcy4KK1NvbHV0aW9uOiAgIEFkZCB2Om1vdXNlX3dpbiwgdjptb3VzZV9sbnVtIGFuZCB2Om1vdXNlX2NvbC4KK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy92aW0uaAorCitQYXRjaCA3LjAuMTU2IChleHRyYSkKK1Byb2JsZW06ICAgIFZpbSBkb2Vzbid0IGNvbXBpbGUgZm9yIEFtaWdhIE9TIDQuCitTb2x1dGlvbjogICBWYXJpb3VzIGNoYW5nZXMgZm9yIEFtaWdhIE9TNC4gKFBldGVyIEJlbmd0c3NvbikKK0ZpbGVzOgkgICAgc3JjL2ZlYXR1cmUuaCwgc3JjL21ieXRlLmMsIHNyYy9tZW1maWxlLmMsIHNyYy9tZW1saW5lLmMsCisJICAgIHNyYy9vc19hbWlnYS5jLCBzcmMvb3NfYW1pZ2EuaCwgc3JjL3B0eS5jCisKK1BhdGNoIDcuMC4xNTcKK1Byb2JsZW06ICAgIFdoZW4gYSBmdW5jdGlvbiBpcyB1c2VkIHJlY3Vyc2l2ZWx5IHRoZSBwcm9maWxpbmcgaW5mb3JtYXRpb24gaXMKKwkgICAgaW52YWxpZC4gKE1pa29sYWogTWFjaG93c2tpKQorU29sdXRpb246ICAgUHV0IHRoZSBzdGFydCB0aW1lIG9uIHRoZSBzdGFjayBpbnN0ZWFkIG9mIGluIHRoZSBmdW5jdGlvbi4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTU4CitQcm9ibGVtOiAgICBJbiBhIEMgZmlsZSB3aXRoICI6c2V0IGZvbGRtZXRob2Q9c3ludGF4IiwgdHlwaW5nIHs8Q1I+IG9uIHRoZQorCSAgICBsYXN0IGxpbmUgcmVzdWx0cyBpbiB0aGUgY3Vyc29yIGJlaW5nIGluIGEgY2xvc2VkIGZvbGQuIChHYXV0YW0KKwkgICAgSXllcikKK1NvbHV0aW9uOiAgIE9wZW4gZm9sZCBhZnRlciBpbnNlcnRpbmcgYSBuZXcgbGluZS4KK0ZpbGVzOgkgICAgc3JjL2VkaXQuYworCitQYXRjaCA3LjAuMTU5CitQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGFuIEkvTyBlcnJvciBpbiB0aGUgc3dhcCBmaWxlIHRoZSBjYXVzZSBvZiB0aGUgZXJyb3IKKwkgICAgY2Fubm90IGJlIHNlZW4uCitTb2x1dGlvbjogICBVc2UgUEVSUk9SKCkgaW5zdGVhZCBvZiBFTVNHKCkgd2hlcmUgcG9zc2libGUuCitGaWxlczoJICAgIHNyYy9tZW1maWxlLmMKKworUGF0Y2ggNy4wLjE2MAorUHJvYmxlbTogICAgIjpAYSIgZWNob2VzIHRoZSBjb21tYW5kLCBWaSBkb2Vzbid0IGRvIHRoYXQuCitTb2x1dGlvbjogICBTZXQgdGhlIHNpbGVudCBmbGFnIGluIHRoZSB0eXBlYWhlYWQgYnVmZmVyIHRvIGF2b2lkIGVjaG9pbmcgdGhlCisJICAgIGNvbW1hbmQuCitGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywgc3JjL3Byb3RvL29wcy5wcm8KKworUGF0Y2ggNy4wLjE2MQorUHJvYmxlbTogICAgV2luMzI6IFRhYiBwYWdlcyBsaW5lIHBvcHVwIG1lbnUgaXNuJ3QgdXNpbmcgdGhlIHJpZ2h0IGVuY29kaW5nLgorICAgICAgICAgICAgKFlvbmd3ZWkgV3UpCitTb2x1dGlvbjogICBDb252ZXJ0IHRoZSB0ZXh0IHdoZW4gbmVjZXNzYXJ5LiAgQWxzbyBmaXhlcyB0aGUgRmluZC9SZXBsYWNlCisJICAgIGRpYWxvZyB0aXRsZS4gKFllZ2FwcGFuIExha3NobWFuYW4pCitGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKKworUGF0Y2ggNy4wLjE2MgorUHJvYmxlbTogICAgInZpbSAtbyBhIGIiIHdoZW4gZmlsZSAiYSIgdHJpZ2dlcnMgdGhlIEFUVEVOVElPTiBkaWFsb2csCisJICAgIHNlbGVjdGluZyAiUXVpdCIgZXhpdHMgVmltIGluc3RlYWQgb2YgZWRpdGluZyAiYiIgb25seS4KKwkgICAgV2hlbiBmaWxlICJiIiB0cmlnZ2VycyB0aGUgQVRURU5USU9OIGRpYWxvZyBzZWxlY3RpbmcgIlF1aXQiIG9yCisJICAgICJBYm9ydCIgcmVzdWx0cyBpbiBlZGl0aW5nIGZpbGUgImEiIGluIHRoYXQgd2luZG93LgorU29sdXRpb246ICAgV2hlbiBzZWxlY3RpbmcgIkFib3J0IiBleGl0IFZpbS4gIFdoZW4gc2VsZWN0aW5nICJRdWl0IiBjbG9zZSB0aGUKKwkgICAgd2luZG93LiAgQWxzbyBhdm9pZCBoaXQtZW50ZXIgcHJvbXB0IHdoZW4gc2VsZWN0aW5nIEFib3J0LgorRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9tYWluLmMKKworUGF0Y2ggNy4wLjE2MworUHJvYmxlbTogICAgQ2FuJ3QgcmV0cmlldmUgdGhlIHBvc2l0aW9uIG9mIGEgc2lnbiBhZnRlciBpdCB3YXMgc2V0LgorU29sdXRpb246ICAgQWRkIHRoZSBuZXRiZWFucyBpbnRlcmZhY2UgZ2V0QW5ubyBjb21tYW5kLiAoWGF2aWVyIGRlIEdheWUpCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL25ldGJlYW5zLmMKKworUGF0Y2ggNy4wLjE2NAorUHJvYmxlbTogICAgIjpyZWRpciBAKyIgZG9lc24ndCB3b3JrLgorU29sdXRpb246ICAgQWNjZXB0ICJAKyIganVzdCBsaWtlICJAKiIuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQorRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYworCitQYXRjaCA3LjAuMTY1CitQcm9ibGVtOiAgICBVc2luZyBDVFJMLUwgYXQgdGhlIHNlYXJjaCBwcm9tcHQgYWRkcyBhICIvIiBhbmQgb3RoZXIgY2hhcmFjdGVycworCSAgICB3aXRob3V0IGVzY2FwaW5nLCBjYXVzaW5nIHRoZSBwYXR0ZXJuIG5vdCB0byBtYXRjaC4KK1NvbHV0aW9uOiAgIEVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgd2l0aCBhIGJhY2tzbGFzaC4KK0ZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKKworUGF0Y2ggNy4wLjE2NgorUHJvYmxlbTogICAgQ3Jhc2ggaW4gY3Njb3BlIGNvZGUgd2hlbiBjb25uZWN0aW9uIGNvdWxkIG5vdCBiZSBvcGVuZWQuCisJICAgIChLYXlhIEJla2lyb2dsdSkKK1NvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgZmlsZSBkZXNjcmlwdG9yIHRvIGJlIE5VTEwuCitGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYworCitQYXRjaCA3LjAuMTY3CitQcm9ibGVtOiAgICAiOmZ1bmN0aW9uIiByZWRlZmluaW5nIGEgZGljdCBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgcHJvcGVybHkuCisJICAgIChSaWNoYXJkIEVtYmVyc29uKQorU29sdXRpb246ICAgQWxsb3cgYSBmdW5jdGlvbiBuYW1lIHRvIGJlIGEgbnVtYmVyIHdoZW4gaXQncyBhIGZ1bmN0aW9uCisJICAgIHJlZmVyZW5jZS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMTY4CitQcm9ibGVtOiAgICBVc2luZyB1bmluaXRpYWxpemVkIG1lbW9yeSBhbmQgbWVtb3J5IGxlYWsuIChEb21pbmlxdWUgUGVsbGUpCitTb2x1dGlvbjogICBVc2UgYWxsb2NfY2xlYXIoKSBpbnN0ZWFkIG9mIGFsbG9jKCkgZm9yIHdfbGluZXMuICBGcmVlCisJICAgIGJfbWwubWxfc3RhY2sgYWZ0ZXIgcmVjb3ZlcnkuCitGaWxlczoJICAgIHNyYy9tZW1saW5lLmMsIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMTY5CitQcm9ibGVtOiAgICBXaXRoIGEgVmlzdWFsIGJsb2NrIHNlbGVjdGlvbiwgd2l0aCB0aGUgY3Vyc29yIGluIHRoZSBsZWZ0IHVwcGVyCisJICAgIGNvcm5lciwgcHJlc3NpbmcgIkkiIGRvZXNuJ3QgcmVtb3ZlIHRoZSBoaWdobGlnaHRpbmcuIChHdW9wZW5nCisJICAgIFdlbikKK1NvbHV0aW9uOiAgIFdoZW4gY2hlY2tpbmcgaWYgcmVkcmF3aW5nIGlzIG5lZWRlZCBhbHNvIGNoZWNrIGlmIFZpc3VhbAorCSAgICBzZWxlY3Rpb24gaXMgc3RpbGwgYWN0aXZlLgorRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKKworUGF0Y2ggNy4wLjE3MCAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogVXNpbmcgImd2aW0gLS1yZW1vdGUtdGFiIGZvbyIgd2hlbiBndmltIGlzIG1pbmltaXplZCB3aGlsZQorCSAgICBpdCBwcmV2aW91c2x5IHdhcyBtYXhpbWl6ZWQsIHVuLW1heGltaXppbmcgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorCSAgICBBbmQgdGhlIGxhYmVscyBhcmUgbm90IGRpc3BsYXllZCBwcm9wZXJseSB3aGVuICdlbmNvZGluZycgaXMKKwkgICAgdXRmLTguCitTb2x1dGlvbjogICBXaGVuIG1pbmltaXplZCBjaGVjayBmb3IgU1dfU0hPV01JTklNSVpFRC4gIFdoZW4gdXBkYXRpbmcgdGhlIHRhYgorCSAgICBwYWdlcyBsaW5lIHVzZSBUQ01fU0VUSVRFTVcgaW5zdGVhZCBvZiBUQ01fSU5TRVJUSVRFTVcuIChMaXUKKwkgICAgWXViYW8pCitGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKKworUGF0Y2ggNy4wLjE3MSAoZXh0cmEpCitQcm9ibGVtOiAgICBWTVM6IEEgZmlsZSBuYW1lIHdpdGggbXVsdGlwbGUgcGF0aHMgaXMgd3JpdHRlbiBpbiB0aGUgd3JvbmcgZmlsZS4KK1NvbHV0aW9uOiAgIEdldCB0aGUgYWN0dWFsbHkgdXNlZCBmaWxlIG5hbWUuIChab2x0YW4gQXJwYWRmZnkpCisJICAgIEFsc28gYWRkIGluZm8gdG8gdGhlIDp2ZXJzaW9uIGNvbW1hbmQgYWJvdXQgY29tcGlsYXRpb24uCitGaWxlczoJICAgIHNyYy9NYWtlX3Ztcy5tbXMsIHNyYy9idWZmZXIuYywgc3JjL29zX3VuaXguYywgc3JjL3ZlcnNpb24uYworCitQYXRjaCA3LjAuMTcyCitQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHJlY292ZXJpbmcgYW5kIHF1aXR0aW5nIGF0IHRoZSAicHJlc3MtZW50ZXIiIHByb21wdC4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciAibXNnX2xpc3QiIHRvIGJlIE5VTEwuIChMaXUgWXViYW8pCitGaWxlczoJICAgIHNyYy9leF9ldmFsLmMKKworUGF0Y2ggNy4wLjE3MworUHJvYmxlbTogICAgIjpjYWxsIGYoKS5UVCgpIiBkb2Vzbid0IHdvcmsuICAoUmljaGFyZCBFbWJlcnNvbikKK1NvbHV0aW9uOiAgIFdoZW4gYSBmdW5jdGlvbiByZXR1cm5zIGEgRGljdGlvbmFyeSBvciBhbm90aGVyIGNvbXBvc2l0ZSBjb250aW51ZQorCSAgICBldmFsdWF0aW5nIHdoYXQgZm9sbG93cy4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYyAgICAKKworUGF0Y2ggNy4wLjE3NAorUHJvYmxlbTogICAgIjpta3Nlc3Npb24iIGRvZXNuJ3QgcmVzdG9yZSB3aW5kb3cgbGF5b3V0IGNvcnJlY3RseSBpbiB0YWIgcGFnZXMKKwkgICAgb3RoZXIgdGhhbiB0aGUgY3VycmVudCBvbmUuIChaaGliaW4gSGUpCitTb2x1dGlvbjogICBVc2UgdGhlIGNvcnJlY3QgdG9wZnJhbWUgZm9yIHByb2R1Y2luZyB0aGUgd2luZG93IGxheW91dCBjb21tYW5kcy4KK0ZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKKworUGF0Y2ggNy4wLjE3NQorUHJvYmxlbTogICAgVGhlIHJlc3VsdCBvZiB0cigpIGlzIG1pc3NpbmcgdGhlIHRlcm1pbmF0aW5nIE5VTC4gKEluZ28gS2Fya2F0KQorU29sdXRpb246ICAgQWRkIHRoZSBOVUwuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjE3NgorUHJvYmxlbTogICAgIjplbWVudSIgaXNuJ3QgZXhlY3V0ZWQgZGlyZWN0bHksIGNhdXNpbmcgdGhlIGVuY3J5cHRpb24ga2V5CisJICAgIHByb21wdCB0byBmYWlsLiAoTGlmZSBKYXp6ZXIpCitTb2x1dGlvbjogICBGaXggd3JvbmcgI2lmZGVmLgorRmlsZXM6CSAgICBzcmMvbWVudS5jCisKK1BhdGNoIDcuMC4xNzcKK1Byb2JsZW06ICAgIFdoZW4gdGhlIHByZXNzLWVudGVyIHByb21wdCBnZXRzIGEgY2hhcmFjdGVyIGZyb20gYSBub24tcmVtYXBwYWJsZQorCSAgICBtYXBwaW5nLCBpdCdzIHB1dCBiYWNrIGluIHRoZSB0eXBlYWhlYWQgYnVmZmVyIGFzIHJlbWFwcGFibGUsCisJICAgIHdoaWNoIG1heSBjYXVzZSBhbiBlbmRsZXNzIGxvb3AuCitTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBub24tcmVtYXBwYWJsZSBmbGFnIGFuZCB0aGUgc2lsZW50IGZsYWcgd2hlbiBwdXR0aW5nIGEKKwkgICAgY2hhciBiYWNrIGluIHRoZSB0eXBlYWhlYWQgYnVmZmVyLgorRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvbWVzc2FnZS5jLCBzcmMvbm9ybWFsLmMKKworUGF0Y2ggNy4wLjE3OAorUHJvYmxlbTogICAgV2hlbiAnZW5jJyBpcyAidXRmLTgiIGFuZCAnaWdub3JlY2FzZScgaXMgc2V0IHRoZSByZXN1bHQgb2YgIjplY2hvCisJICAgICgiXHhlNCIgPT0gIlx4ZTQiKSIgdmFyaWVzLgorU29sdXRpb246ICAgSW4gbWJfc3RybmljbXAoKSBhdm9pZCBsb29raW5nIHBhc3QgTlVMIGJ5dGVzLgorRmlsZXM6CSAgICBzcmMvbWJ5dGUuYworCitQYXRjaCA3LjAuMTc5CitQcm9ibGVtOiAgICBVc2luZyAiOnJlY292ZXIiIG9yICJ2aW0gLXIiIHdpdGhvdXQgYSBzd2FwZmlsZSBjcmFzaGVzIFZpbS4KK1NvbHV0aW9uOiAgIENoZWNrIGZvciAiYnVmIiB0byBiZSB1bmVxdWFsIE5VTEwuIChZdWtpaGlybyBOYWthZGFpcmEpCitGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKKworUGF0Y2ggNy4wLjE4MCAoZXh0cmEsIGFmdGVyIDcuMC4xNzEpCitQcm9ibGVtOiAgICBWTVM6IGJ1aWxkIGZhaWxlZC4gIFByb2JsZW0gd2l0aCBzd2FwZmlsZXMuCitTb2x1dGlvbjogICBBZGQgImNvbXBpbGVkX2FyY2giLiAgQWx3YXlzIGV4cGFuZCBwYXRoIGFuZCBwYXNzIGl0IHRvCisJICAgIGJ1Zl9tb2RuYW1lKCkuICAoWm9sdGFuIEFycGFkZmZ5KQorRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWVtbGluZS5jLCBzcmMvb3NfdW5peC5jLCBydW50aW1lL21lbnUudmltCisKK1BhdGNoIDcuMC4xODEKK1Byb2JsZW06ICAgIFdoZW4gcmVsb2FkaW5nIGEgZmlsZSB0aGF0IHN0YXJ0cyB3aXRoIGFuIGVtcHR5IGxpbmUsIHRoZSByZWxvYWRlZAorCSAgICBidWZmZXIgaGFzIGFuIGV4dHJhIGVtcHR5IGxpbmUgYXQgdGhlIGVuZC4gKE1vdHR5IExlbnR6aXR6a3kpCitTb2x1dGlvbjogICBEZWxldGUgYWxsIGxpbmVzLCBkb24ndCB1c2UgYnVmZW1wdHkoKS4KK0ZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCisKK1BhdGNoIDcuMC4xODIKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBtaXggb2YgdW5kbyBhbmQgImctIiBpdCBtYXkgbm8gbG9uZ2VyIGJlIHBvc3NpYmxlIHRvCisJICAgIGdvIHRvIGV2ZXJ5IHBvaW50IGluIHRoZSB1bmRvIHRyZWUuICAoQW5keSBXb2t1bGEpCitTb2x1dGlvbjogICBDb3JyZWN0bHkgdXBkYXRlIHBvaW50ZXJzIGluIHRoZSB1bmRvIHRyZWUuCitGaWxlczoJICAgIHNyYy91bmRvLmMKKworUGF0Y2ggNy4wLjE4MworUHJvYmxlbTogICAgQ3Jhc2ggaW4gIjpsZXQiIHdoZW4gcmVkaXJlY3RpbmcgdG8gYSB2YXJpYWJsZSB0aGF0J3MgYmVpbmcKKwkgICAgZGlzcGxheWVkLiAoVGhvbWFzIExpbmspCitTb2x1dGlvbjogICBXaGVuIHJlZGlyZWN0aW5nIHRvIGEgdmFyaWFibGUgb25seSBkbyB0aGUgYXNzaWdubWVudCB3aGVuCisJICAgIHN0b3BwaW5nIHJlZGlyZWN0aW9uIHRvIGF2b2lkIHRoYXQgc2V0dGluZyB0aGUgdmFyaWFibGUgY2F1c2VzIGEKKwkgICAgZnJlZWQgc3RyaW5nIHRvIGJlIGFjY2Vzc2VkLgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4xODQKK1Byb2JsZW06ICAgIFdoZW4gdGhlIGNzY29wZSBwcm9ncmFtIGlzIGNhbGxlZCAibWxjc2NvcGUiIHRoZSBDc2NvcGUgaW50ZXJmYWNlCisJICAgIGRvZXNuJ3Qgd29yay4KK1NvbHV0aW9uOiAgIEFjY2VwdCAiXFMqY3Njb3BlOiIgaW5zdGVhZCBvZiAiY3Njb3BlOiIuIChGcm9kYWsgRC4gQmFrc2lrKQorRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKKworUGF0Y2ggNy4wLjE4NQorUHJvYmxlbTogICAgTXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGluIGEgbWVzc2FnZSBhcmUgZGlzcGxheWVkIHdpdGggYXR0cmlidXRlcworCSAgICBmcm9tIHdoYXQgY29tZXMgYmVmb3JlIGl0LgorU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSBhdHRyaWJ1dGVzIGZvciBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAgRG8gdXNlCisJICAgIGF0dHJpYnV0ZXMgZm9yIHNwZWNpYWwgY2hhcmFjdGVycy4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYworCitQYXRjaCA3LjAuMTg2CitQcm9ibGVtOiAgICBHZXQgYW4gbWxfZ2V0IGVycm9yIHdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiIGFuZCBzZWFyY2hpbmcgZm9yCisJICAgICIvXF9zKi9lIiBpbiBhbiBlbXB0eSBidWZmZXIuICAoQW5kcmV3IE1heWtvdikKK1NvbHV0aW9uOiAgIERvbid0IHRyeSBnZXR0aW5nIHRoZSBsaW5lIGp1c3QgYmVsb3cgdGhlIGxhc3QgbGluZS4KK0ZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCisKK1BhdGNoIDcuMC4xODcKK1Byb2JsZW06ICAgIENhbid0IHNvdXJjZSBhIHJlbW90ZSBzY3JpcHQgcHJvcGVybHkuCitTb2x1dGlvbjogICBBZGQgdGhlIFNvdXJjZUNtZCBldmVudC4gKENoYXJsZXMgQ2FtcGJlbGwpCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2F1dG9jbWQudHh0LCBzcmMvZXhfY21kczIuYywgc3JjL2ZpbGVpby5jLCBzcmMvdmltLmgKKworUGF0Y2ggNy4wLjE4OCAoYWZ0ZXIgNy4wLjE4NikKK1Byb2JsZW06ICAgIFdhcm5pbmcgZm9yIHdyb25nIHBvaW50ZXIgdHlwZS4KK1NvbHV0aW9uOiAgIEFkZCBhIHR5cGUgY2FzdC4KK0ZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCisKK1BhdGNoIDcuMC4xODkKK1Byb2JsZW06ICAgIFRyYW5zbGF0ZWQgbWVzc2FnZSBhYm91dCBmaW5kaW5nIG1hdGNoZXMgaXMgdHJ1bmNhdGVkLiAoWXVraWhpcm8KKwkgICAgTmFrYWRhaXJhKQorU29sdXRpb246ICAgRW5sYXJnZSB0aGUgYnVmZmVyLiAgQWxzbyB1c2UgdmltX3NucHJpbnRmKCkuCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjE5MAorUHJvYmxlbTogICAgInN5bnRheCBzcGVsbCBkZWZhdWx0IiByZXN1bHRzIGluIGFuIGVycm9yIG1lc3NhZ2UuCitTb2x1dGlvbjogICBDaGFuZ2UgNCB0byA3IGZvciBTVFJOSUNNUCgpLiAoUmF1bCBOdW5leiBkZSBBcmVuYXMgQ29yb25hZG8pCitGaWxlczoJICAgIHNyYy9zeW50YXguYworCitQYXRjaCA3LjAuMTkxCitQcm9ibGVtOiAgICBUaGUgaXRlbXMgdXNlZCBieSBnZXRxZmxpc3QoKSBhbmQgc2V0cWZsaXN0KCkgZG9uJ3QgbWF0Y2guCitTb2x1dGlvbjogICBTdXBwb3J0IHRoZSAiYnVmbnVtIiBpdGVtIGZvciBzZXRxZmxpc3QoKS4gKFllZ2FwcGFuIExha3NobWFuYW4pCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvcXVpY2tmaXguYworCitQYXRjaCA3LjAuMTkyCitQcm9ibGVtOiAgICBXaGVuICdzd2FwZmlsZScgaXMgc3dpdGNoZWQgb2ZmIGluIGFuIGVtcHR5IGZpbGUgaXQgaXMgcG9zc2libGUKKwkgICAgdGhhdCBub3QgYWxsIGJsb2NrcyBhcmUgbG9hZGVkIGludG8gbWVtb3J5LCBjYXVzaW5nIG1sX2dldCBlcnJvcnMKKwkgICAgbGF0ZXIuCitTb2x1dGlvbjogICBSZW5hbWUgImRvbnRfcmVsZWFzZSIgdG8gIm1mX2RvbnRfcmVsZWFzZSIgYW5kIGFsc28gdXNlIGl0IHRvCisJICAgIGF2b2lkIHVzaW5nIHRoZSBjYWNoZWQgbGluZSBhbmQgbG9ja2VkIGJsb2NrLiAKK0ZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL21lbWZpbGUuYywgc3JjL21lbWxpbmUuYworCitQYXRjaCA3LjAuMTkzCitQcm9ibGVtOiAgICBVc2luZyAtLXJlbW90ZSBvciAtLXJlbW90ZS10YWIgd2l0aCBhbiBhcmd1bWVudCB0aGF0IG1hdGNoZXMKKwkgICAgJ3dpbGRpZ25vcmUnIGNhdXNlcyBhIGNyYXNoLgorU29sdXRpb246ICAgQ2hlY2sgdGhlIGFyZ3VtZW50IGNvdW50IGJlZm9yZSB1c2luZyBBUkdMSVNUWzBdLgorRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCisKK1BhdGNoIDcuMC4xOTQKK1Byb2JsZW06ICAgIE9uY2UgYW4gbWxfZ2V0IGVycm9yIGlzIGdpdmVuIHJlZHJhd2luZyBwYXJ0IG9mIHRoZSBzY3JlZW4gbWF5CisJICAgIGNhdXNlIGl0IGFnYWluLCByZXN1bHRpbmcgaW4gYW4gZW5kbGVzcyBsb29wLgorU29sdXRpb246ICAgRG9uJ3QgZ2l2ZSB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgYSByZWN1cnNpdmUgY2FsbC4KK0ZpbGVzOgkgICAgc3JjL21lbWxpbmUuYworCitQYXRjaCA3LjAuMTk1CitQcm9ibGVtOiAgICBXaGVuIGEgYnVmZmVyIGlzIG1vZGlmaWVkIGFuZCAnYXV0b3dyaXRlYWxsJyBpcyBzZXQsICI6cXVpdCIKKwkgICAgcmVzdWx0cyBpbiBhbiBlbmRsZXNzIGxvb3Agd2hlbiB0aGVyZSBpcyBhIGNvbnZlcnNpb24gZXJyb3Igd2hpbGUKKwkgICAgd3JpdGluZy4gKE5pa29sYWkgV2VpYnVsbCkKK1NvbHV0aW9uOiAgIE1ha2UgYXV0b3dyaXRlKCkgcmV0dXJuIEZBSUwgaWYgdGhlIGJ1ZmZlciBpcyBzdGlsbCBjaGFuZ2VkIGFmdGVyCisJICAgIHdyaXRpbmcgaXQuCisJICAgIC8qIHB1dCB0aGUgY3Vyc29yIG9uIHRoZSBsYXN0IGNoYXIsIGZvciAndHcnIGZvcm1hdHRpbmcgKi8KK0ZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKKworUGF0Y2ggNy4wLjE5NgorUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOnZlcnQgYmFsbCIgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSBtb3VzZSBwb2ludGVyCisJICAgIHBvc2l0aW9uIG1heSBiZSBvZmYgYnkgb25lIGNvbHVtbi4gKFN0ZWZhbiBLYXJsc3NvbikKK1NvbHV0aW9uOiAgIFJlY29tcHV0ZSB0aGUgZnJhbWUgd2lkdGggd2hlbiBtb3ZpbmcgdGhlIHZlcnRpY2FsIHNlcGFyYXRvciBmcm9tCisJICAgIG9uZSB3aW5kb3cgdG8gYW5vdGhlci4KK0ZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCisKK1BhdGNoIDcuMC4xOTcgKGV4dHJhKQorUHJvYmxlbTogICAgV2luMzI6IENvbXBpbGluZyB3aXRoIEVYSVRGUkVFIGRvZXNuJ3Qgd29yay4KK1NvbHV0aW9uOiAgIEFkanVzdCBhIGZldyAjaWZkZWZzLiAoQWxleGVpIEFsZXhhbmRyb2YpCitGaWxlczoJICAgIHNyYy9taXNjMi5jLCBzcmMvb3NfbXN3aW4uYworCitQYXRjaCA3LjAuMTk4IChleHRyYSkKK1Byb2JsZW06ICAgIFdpbjMyOiBDb21waWxlciB3YXJuaW5ncy4gIE5vIG5lZWQgdG8gZ2VuZXJhdGUgZ3ZpbS5leGUubW5mLgorU29sdXRpb246ICAgQWRkIHR5cGUgY2FzdHMuICBVc2UgIioiIGZvciBwcm9jZXNzb3JBcmNoaXRlY3R1cmUuIChHZW9yZ2UgUmVpbGx5KQorRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrLCBzcmMvZXZhbC5jLCBzcmMvZ3ZpbS5leGUubW5mLCBzcmMvbWlzYzIuYworCitQYXRjaCA3LjAuMTk5CitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIG11bHRpLWJ5dGUgY2hhcmFjdGVycyB0aGUgY29tYmluYXRpb24gb2YgY29tcGxldGlvbiBhbmQKKwkgICAgZm9ybWF0dGluZyBtYXkgcmVzdWx0IGluIGEgd3JvbmcgY3Vyc29yIHBvc2l0aW9uLgorU29sdXRpb246ICAgRG9uJ3QgZGVjcmVtZW50IHRoZSBjdXJzb3IgY29sdW1uLCB1c2UgZGVjX2N1cnNvcigpLiAoWXVraWhpcm8KKwkgICAgTmFrYWRhaXJhKSAgQWxzbyBjaGVjayBmb3IgdGhlIGNvbHVtbiB0byBiZSB6ZXJvLgorRmlsZXM6CSAgICBzcmMvZWRpdC5jCisKK1BhdGNoIDcuMC4yMDAKK1Byb2JsZW06ICAgIE1lbW9yeSBsZWFrcyB3aGVuIG91dCBvZiBtZW1vcnkuCitTb2x1dGlvbjogICBGcmVlIHRoZSBtZW1vcnkuCitGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9kaWZmLmMKKworUGF0Y2ggNy4wLjIwMQorUHJvYmxlbTogICAgTWVzc2FnZSBmb3IgIjpkaWZmcHV0IiBhYm91dCBidWZmZXIgbm90IGJlaW5nIGluIGRpZmYgbW9kZSBtYXkgYmUKKwkgICAgd3JvbmcuCitTb2x1dGlvbjogICBDaGVjayBmb3IgYnVmZmVyIGluIGRpZmYgbW9kZSBidXQgbm90IG1vZGlmaWFibGUuCitGaWxlczoJICAgIHNyYy9kaWZmLmMKKworUGF0Y2ggNy4wLjIwMgorUHJvYmxlbTogICAgUHJvYmxlbXMgb24gVGFuZGVtIHN5c3RlbXMgd2hpbGUgY29tcGlsaW5nIGFuZCBhdCBydW50aW1lLgorU29sdXRpb246ICAgUmVjb2duaXplIHJvb3QgdWlkIGlzIDY1NTM1LiAgQ2hlY2sgc2VsZWN0KCkgcmV0dXJuIHZhbHVlIGZvciBpdAorCSAgICBub3QgYmVpbmcgc3VwcG9ydGVkLiAgQXZvaWQgd3JvbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4gIE1lbnRpb24KKwkgICAgdXNlIG9mIC1sZmxvc3MuICAoTWF0dGhldyBXb2VobGtlKQorRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUsIHNyYy9leF9jbWRzLmMsIHNyYy9maWxlaW8uYywgc3JjL21haW4uYywKKwkgICAgc3JjL29zZGVmMS5oLmluLCBzcmMvb3NkZWYyLmguaW4sIHNyYy9vc191bml4LmMsIHNyYy9wdHkuYywKKwkgICAgc3JjL3ZpbS5oCisKK1BhdGNoIDcuMC4yMDMKK1Byb2JsZW06ICAgIDB4ODAgY2hhcmFjdGVycyBpbiBhIHJlZ2lzdGVyIGFyZSBub3QgaGFuZGxlZCBjb3JyZWN0bHkgZm9yIHRoZQorCSAgICAiQCIgY29tbWFuZC4KK1NvbHV0aW9uOiAgIEVzY2FwZSBDU0kgYW5kIDB4ODAgY2hhcmFjdGVycy4gKFl1a2loaXJvIE5ha2FkYWlyYSkKK0ZpbGVzOgkgICAgc3JjL29wcy5jCisKK1BhdGNoIDcuMC4yMDQKK1Byb2JsZW06ICAgIENzY29wZTogUGFyc2luZyBtYXRjaGVzIGZvciBsaXN0aW5nIGlzbid0IGRvbmUgcHJvcGVybHkuCitTb2x1dGlvbjogICBDaGVjayBmb3IgbGluZSBudW1iZXIgYmVpbmcgZm91bmQuIChZdSBaaGFvKQorRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKKworUGF0Y2ggNy4wLjIwNSAoYWZ0ZXIgNy4wLjIwMykKK1Byb2JsZW06ICAgIENhbid0IGNvbXBpbGUuCitTb2x1dGlvbjogICBBbHdheXMgaW5jbHVkZSB0aGUgdmltX3N0cnNhdmVfZXNjYXBlX2NzaSBmdW5jdGlvbi4KK0ZpbGVzOgkgICAgc3JjL2dldGNoYXIuYworCitQYXRjaCA3LjAuMjA2IChhZnRlciA3LjAuMDU4KQorUHJvYmxlbTogICAgU29tZSBjaGFyYWN0ZXJzIG9mIHRoZSAiZ2IxODAzMCIgZW5jb2RpbmcgYXJlIG5vdCBoYW5kbGVkCisJICAgIHByb3Blcmx5LgorU29sdXRpb246ICAgRG8gbm90IHVzZSAiY3A5MzYiIGFzIGFuIGFsaWFzIGZvciAiZ2IxODAzMCIgZW5jb2RpbmcuICBJbnN0ZWFkCisJICAgIGluaXRpYWxpemUgJ2VuY29kaW5nJyB0byAiY3A5MzYiLgorRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL29wdGlvbi5jCisKK1BhdGNoIDcuMC4yMDcKK1Byb2JsZW06ICAgIEFmdGVyIHBhdGNoIDIuMC4yMDMgQ1NJIGFuZCBLX1NQRUNJQUwgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCB3aGVuCisJICAgIHJlY29yZGVkIGFuZCB0aGVuIGFnYWluIHdoZW4gdGhlIHJlZ2lzdGVyIGlzIGV4ZWN1dGVkLgorU29sdXRpb246ICAgUmVtb3ZlIGVzY2FwaW5nIGJlZm9yZSBwdXR0aW5nIHRoZSByZWNvcmRlZCBjaGFyYWN0ZXJzIGluIGEKKwkgICAgcmVnaXN0ZXIuICAoWXVraWhpcm8gTmFrYWRhaXJhKQorRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9nZXRjaGFyLnBybworCitQYXRjaCA3LjAuMjA4IChhZnRlciA3LjAuMTcxIGFuZCA3LjAuMTgwKQorUHJvYmxlbTogICAgVk1TOiBjaGFuZ2VzIHRvIHBhdGggaGFuZGxpbmcgY2F1c2UgbW9yZSB0cm91YmxlIHRoYW4gdGhleSBzb2x2ZS4KK1NvbHV0aW9uOiAgIFJldmVydCBjaGFuZ2VzLgorRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9tZW1saW5lLmMsIHNyYy9vc191bml4LmMKKworUGF0Y2ggNy4wLjIwOQorUHJvYmxlbTogICAgV2hlbiByZXBsYWNpbmcgYSBsaW5lIHRocm91Z2ggUHl0aG9uIHRoZSBjdXJzb3IgbWF5IGVuZCB1cCBiZXlvbmQKKwkgICAgdGhlIGVuZCBvZiB0aGUgbGluZS4KK1NvbHV0aW9uOiAgIENoZWNrIHRoZSBjdXJzb3IgY29sdW1uIGFmdGVyIHJlcGxhY2luZyB0aGUgbGluZS4KK0ZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCisKK1BhdGNoIDcuMC4yMTAKK1Byb2JsZW06ICAgICI6Y2J1ZmZlciIgYW5kICI6bGJ1ZmZlciIgYWx3YXlzIGZhaWwgd2hlbiB0aGUgYnVmZmVyIGlzIG1vZGlmaWVkLgorCSAgICAoR2FyeSBKb2huc29uKQorU29sdXRpb246ICAgU3VwcG9ydCBhZGRpbmcgYSAhLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvcXVpY2tmaXgudHh0LCBzcmMvZXhfY21kcy5oCisKK1BhdGNoIDcuMC4yMTEKK1Byb2JsZW06ICAgIFdpdGggIjpzZXQgY2luZGVudCBub2FpIGJzPTAiIHVzaW5nIENUUkwtVSBpbiBJbnNlcnQgbW9kZSB3aWxsCisJICAgIGRlbGV0ZSBhdXRvLWluZGVudC4gIEFmdGVyICI6c2V0IGFpIiBpdCBkb2Vzbid0LgorU29sdXRpb246ICAgQWxzbyBjaGVjayAnY2luZGVudCcgYmVpbmcgc2V0LiAoUnlhbiBMb3J0aWUpCitGaWxlczoJICAgIHNyYy9lZGl0LmMKKworUGF0Y2ggNy4wLjIxMgorUHJvYmxlbTogICAgVGhlIEdVSSBjYW4ndCBiZSB0ZXJtaW5hdGVkIHdpdGggU0lHVEVSTS4gKE1hcmsgTG9nYW4pCitTb2x1dGlvbjogICBVc2UgdGhlIHNpZ25hbCBwcm90ZWN0aW9uIGluIHRoZSBHVUkgYXMgaW4gdGhlIGNvbnNvbGUsIGFsbG93CisJICAgIHNpZ25hbHMgd2hlbiB3YWl0aW5nIGZvciAxMDAgbXNlYyBvciBsb25nZXIuCitGaWxlczoJICAgIHNyYy91aS5jCisKK1BhdGNoIDcuMC4yMTMKK1Byb2JsZW06ICAgIFdoZW4gJ3NwZWxsZmlsZScgaGFzIHR3byByZWdpb25zIHRoYXQgdXNlIHRoZSBzYW1lIHNvdW5kIGZvbGRpbmcKKwkgICAgdXNpbmcgIno9IiB3aWxsIGNhdXNlIG1lbW9yeSB0byBiZSBmcmVlZCB0d2ljZS4gKE1hcmsgV29vZHdhcmQpCitTb2x1dGlvbjogICBDbGVhciB0aGUgaGFzaHRhYmxlIHByb3Blcmx5IHNvIHRoYXQgdGhlIGl0ZW1zIGFyZSBvbmx5IGZyZWVkIG9uY2UuCitGaWxlczoJICAgIHNyYy9zcGVsbC5jCisKK1BhdGNoIDcuMC4yMTQKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgPGYtYXJncz4gaW4gYSB1c2VyIGNvbW1hbmQgaXQncyBub3QgcG9zc2libGUgdG8gaGF2ZSBhbgorCSAgICBhcmd1bWVudCBlbmQgaW4gJ1wgJy4KK1NvbHV0aW9uOiAgIENoYW5nZSB0aGUgaGFuZGxpbmcgb2YgYmFja3NsYXNoZXMuIChZYWtvdiBMZXJuZXIpCitGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21hcC50eHQsIHNyYy9leF9kb2NtZC5jCisKK1BhdGNoIDcuMC4yMTUgKGV4dHJhKQorUHJvYmxlbTogICAgTWFjOiBTY3JvbGxiYXIgc2l6ZSBpc24ndCBzZXQuICBDb250ZXh0IG1lbnUgaGFzIGRpc2FibGVkIHVzZWxlc3MKKwkgICAgSGVscCBlbnRyeS4gIENhbGwgdG8gTW9yZU1hc3RlclBvaW50ZXJzKCkgaXMgaWdub3JlZC4KK1NvbHV0aW9uOiAgIENhbGwgU2V0Q29udHJvbFZpZXdTaXplKCkgaW4gZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iKCkuICBVc2UKKwkgICAga0NNSGVscEl0ZW1SZW1vdmVIZWxwIGZvciBDb250ZXh0dWFsTWVudVNlbGVjdCgpLiAgUmVtb3ZlIGNhbGwgdG8KKwkgICAgTW9yZU1hc3RlclBvaW50ZXJzKCkuIChOaWNvbGFzIFdlYmVyKQorRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCisKK1BhdGNoIDcuMC4yMTYKK1Byb2JsZW06ICAgICI6dGFiIHdpbmNtZCBdIiBkb2VzIG5vdCBvcGVuIGEgdGFiIHBhZ2UuIChUb255IE1lY2hlbHluY2spCitTb2x1dGlvbjogICBDb3B5IHRoZSBjbWRtb2QudGFiIHZhbHVlIHRvIHBvc3Rwb25lZF9zcGxpdF90YWIgYW5kIHVzZSBpdC4KK0ZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL2V4X2RvY21kLmMsIHNyYy9pZl9jc2NvcGUuYywgc3JjL3dpbmRvdy5jCisKK1BhdGNoIDcuMC4yMTcKK1Byb2JsZW06ICAgIFRoaXMgaGFuZ3Mgd2hlbiBwcmVzc2luZyAibiI6ICI6JXMvXG4vLFxyL2djIi4gKE9yaSBBdnRhbGlvbikKK1NvbHV0aW9uOiAgIFNldCAic2tpcF9tYXRjaCIgdG8gYWR2YW5jZSB0byB0aGUgbmV4dCBsaW5lLgorRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCisKK1BhdGNoIDcuMC4yMTgKK1Byb2JsZW06ICAgICIlQiIgaW4gJ3N0YXR1c2xpbmUnIGFsd2F5cyBzaG93cyB6ZXJvIGluIEluc2VydCBtb2RlLiAoRGVydmlzaEQpCitTb2x1dGlvbjogICBSZW1vdmUgdGhlIGV4Y2VwdGlvbiBmb3IgSW5zZXJ0IG1vZGUsIGNoZWNrIHRoZSBjb2x1bW4gZm9yIGJlaW5nCisJICAgIHZhbGlkIGluc3RlYWQuCitGaWxlczoJICAgIHNyYy9idWZmZXIuYworCitQYXRjaCA3LjAuMjE5CitQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSAnZWRpdGV4aXN0aW5nLnZpbScgc2NyaXB0IGFuZCBhIGZpbGUgaXMgYmVpbmcKKwkgICAgZWRpdGVkIGluIGFub3RoZXIgdGFiIHBhZ2UgdGhlIHdpbmRvdyBpcyBzcGxpdC4gIFRoZSAiKzEyMyIKKwkgICAgYXJndW1lbnQgaXMgbm90IHVzZWQuCitTb2x1dGlvbjogICBNYWtlIHRoZSB0YWIgcGFnZSB3aXRoIHRoZSBmaWxlIHRoZSBjdXJyZW50IHRhYiBwYWdlLiAgU2V0CisJICAgIHY6c3dhcGNvbW1hbmQgd2hlbiBzdGFydGluZyB1cCB0byB0aGUgZmlyc3QgIisxMjMiIG9yICItYyIgY29tbWFuZAorCSAgICBsaW5lIGFyZ3VtZW50LgorRmlsZXM6CSAgICBydW50aW1lL21hY3Jvcy9lZGl0ZXhpc3RpbmcudmltLCBzcmMvbWFpbi5jCisKK1BhdGNoIDcuMC4yMjAKK1Byb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgd2lubnIoJyMnKSBpbiBhIG5ldyB0YWIgcGFnZS4gKEFuZHkgV29rdWxhKQorU29sdXRpb246ICAgQ2hlY2sgZm9yIG5vdCBmaW5kaW5nIHRoZSB3aW5kb3cuCitGaWxlczoJICAgIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjIyMQorUHJvYmxlbTogICAgZmluZGRpcigpIHVzZXMgJ3BhdGgnIGJ5IGRlZmF1bHQsIHdoZXJlICIuIiBtZWFucyByZWxhdGl2ZSB0byB0aGUKKwkgICAgY3VycmVudCBmaWxlLiAgQnV0IGl0IHdvcmtzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KKwkgICAgKFR5ZSBaZHJvamV3c2tpKQorU29sdXRpb246ICAgQWRkIHRoZSBjdXJyZW50IGJ1ZmZlciBuYW1lIHRvIGZpbmRfZmlsZV9pbl9wYXRoX29wdGlvbigpIGZvciB0aGUKKwkgICAgcmVsYXRpdmUgZmlsZSBuYW1lLgorRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMjIyCitQcm9ibGVtOiAgICBQZXJsIGluZGVudGluZyB1c2luZyAnY2luZGVudCcgd29ya3MgYWxtb3N0IHJpZ2h0LgorU29sdXRpb246ICAgUmVjb2duaXplICcjJyB0byBzdGFydCBhIGNvbW1lbnQuIChBbGV4IE1hbm91c3Nha2lzKSAgQWRkZWQgJyMnCisJICAgIGZsYWcgaW4gJ2Npbm9wdGlvbnMnLgorRmlsZXM6CSAgICBydW50aW1lL2RvYy9pbmRlbnQudHh0LCBzcmMvbWlzYzEuYworCitQYXRjaCA3LjAuMjIzCitQcm9ibGVtOiAgICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGluIGNvbXBsZXRpb24gdGV4dCBtZXNzIHVwIHRoZSBwb3B1cCBtZW51LgorCSAgICAoR29tYmF1bHQgRGFtaWVuKQorU29sdXRpb246ICAgVXNlIHN0cnRyYW5zKCkgdG8gbWFrZSB0aGUgdGV4dCBwcmludGFibGUuCitGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9wb3B1cG1udS5jCisKK1BhdGNoIDcuMC4yMjQKK1Byb2JsZW06ICAgIFdoZW4gZXhwYW5kaW5nICIjIyIgc3BhY2VzIGFyZSBlc2NhcGVkIHR3aWNlLiAgKFBhdm9sIEp1aGFzKQorU29sdXRpb246ICAgRG9uJ3QgZXNjYXBlIHRoZSBzcGFjZXMgdGhhdCBzZXBhcmF0ZSBhcmd1bWVudHMuCitGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvcHJvdG8vZXhfZG9jbWQucHJvCisKK1BhdGNoIDcuMC4yMjUKK1Byb2JsZW06ICAgIFdoZW4gdXNpbmcgc2V0bGluZSgpIGluIGFuIEluc2VydEVudGVyIGF1dG9jb21tYW5kIGFuZCBkb2luZyAiQSIKKwkgICAgdGhlIGN1cnNvciBlbmRzIHVwIG9uIHRoZSBsYXN0IGJ5dGUgaW4gdGhlIGxpbmUuIChZdWtpaGlybworCSAgICBOYWthZGFpcmEpCitTb2x1dGlvbjogICBPbmx5IGFkanVzdCB0aGUgY29sdW1uIHdoZW4gdXNpbmcgc2V0bGluZSgpIGZvciB0aGUgY3Vyc29yIGxpbmUuCisJICAgIE1vdmUgaXQgYmFjayB0byB0aGUgaGVhZCBieXRlIGlmIG5lY2Vzc2FyeS4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL21pc2MyLmMKKworUGF0Y2ggNy4wLjIyNgorUHJvYmxlbTogICAgRGlzcGxheSBmbGlja2VyaW5nIHdoZW4gdXBkYXRpbmcgc2lnbnMgdGhyb3VnaCB0aGUgbmV0YmVhbnMKKwkgICAgaW50ZXJmYWNlLiAoWGF2aWVyIGRlIEdheWUpCitTb2x1dGlvbjogICBSZW1vdmUgdGhlIHJlZHJhd19sYXRlcihDTEVBUikgY2FsbC4KK0ZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKKworUGF0Y2ggNy4wLjIyNworUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBjbG9zaW5nIGEgd2luZG93IGluIHRoZSBHVUkuIChDaGFybGVzIENhbXBiZWxsKQorU29sdXRpb246ICAgRG9uJ3QgY2FsbCBvdXRfZmx1c2goKSBmcm9tIHdpbl9mcmVlKCkuCitGaWxlczoJICAgIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMjI4CitQcm9ibGVtOiAgICBDeWd3aW46IHByb2JsZW0gd2l0aCBzeW1saW5rIHRvIERPUyBzdHlsZSBwYXRoLgorU29sdXRpb246ICAgSW52b2tlIGN5Z3dpbl9jb252X3RvX3Bvc2l4X3BhdGgoKS4gKEx1Y2EgTWFzaW5pKQorRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCisKK1BhdGNoIDcuMC4yMjkKK1Byb2JsZW06ICAgIFdoZW4gJ3Bhc3RldG9nZ2xlJyBzdGFydHMgd2l0aCBFc2MgdGhlbiBwcmVzc2luZyBFc2MgaW4gSW5zZXJ0CisJICAgIG1vZGUgd2lsbCBub3QgdGltZSBvdXQuIChKZWZmZXJ5IFNtYWxsKQorU29sdXRpb246ICAgVXNlIEtMX1BBUlRfS0VZIGluc3RlYWQgb2YgS0xfUEFSVF9NQVAsIHNvIHRoYXQgJ3R0aW1lb3V0JyBhcHBsaWVzCisJICAgIHRvIHRoZSAncGFzdGV0b2dnbGUnIGtleS4KK0ZpbGVzOgkgICAgc3JjL2dldGNoYXIuYworCitQYXRjaCA3LjAuMjMwCitQcm9ibGVtOiAgICBBZnRlciB1c2luZyAiOmxjZCIgYSBzY3JpcHQgZG9lc24ndCBrbm93IGhvdyB0byByZXN0b3JlIHRoZQorCSAgICBjdXJyZW50IGRpcmVjdG9yeS4KK1NvbHV0aW9uOiAgIEFkZCB0aGUgaGFzbG9jYWxkaXIoKSBmdW5jdGlvbi4gKEJvYiBIaWVzdGFuZCkKK0ZpbGVzOgkgICAgcnVudGltZS9kb2MvdXNyXzQxLnR4dCwgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKKworUGF0Y2ggNy4wLjIzMQorUHJvYmxlbTogICAgV2hlbiByZWNvdmVyaW5nIGZyb20gYSBzd2FwIGZpbGUgdGhlIHBhZ2Ugc2l6ZSBpcyBsaWtlbHkgdG8gYmUKKwkgICAgZGlmZmVyZW50IGZyb20gdGhlIG1pbmltdW0uICBUaGUgYmxvY2sgdXNlZCBmb3IgdGhlIGZpcnN0IHBhZ2UKKwkgICAgdGhlbiBoYXMgYSBidWZmZXIgb2YgdGhlIHdyb25nIHNpemUsIGNhdXNpbmcgYSBjcmFzaCB3aGVuIGl0J3MKKwkgICAgcmV1c2VkIGxhdGVyLiAgKFplcGhhbmlhaCBIdWxsKQorU29sdXRpb246ICAgUmVhbGxvY2F0ZSB0aGUgYnVmZmVyIHdoZW4gdGhlIHBhZ2Ugc2l6ZSBjaGFuZ2VzLiAgQWxzbyBjaGVjayB0aGF0CisJICAgIHRoZSBwYWdlIHNpemUgaXMgYXQgbGVhc3QgdGhlIG1pbmltdW0gdmFsdWUuCitGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKKworUGF0Y2ggNy4wLjIzMiAoZXh0cmEpCitQcm9ibGVtOiAgICBNYWM6IGRvZXNuJ3Qgc3VwcG9ydCBHVUkgdGFiIHBhZ2UgbGFiZWxzLgorU29sdXRpb246ICAgQWRkIEdVSSB0YWIgcGFnZSBsYWJlbHMuIChOaWNvbGFzIFdlYmVyKQorRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpLmMsIHNyYy9ndWkuaCwgc3JjL2d1aV9tYWMuYywKKwkgICAgc3JjL3Byb3RvL2d1aV9tYWMucHJvCisKK1BhdGNoIDcuMC4yMzMgKGV4dHJhKQorUHJvYmxlbTogICAgTWFjOiBjb2RlIGZvcm1hdHRlZCBiYWRseS4KK1NvbHV0aW9uOiAgIEZpeCBjb2RlIGZvcm1hdHRpbmcKK0ZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYworCitQYXRjaCA3LjAuMjM0CitQcm9ibGVtOiAgICBJdCdzIHBvc3NpYmxlIHRvIHVzZSBmZWVka2V5cygpIGZyb20gYSBtb2RlbGluZS4gIFRoYXQgaXMgYQorCSAgICBzZWN1cml0eSBpc3N1ZSwgY2FuIGJlIHVzZWQgZm9yIGEgdHJvamFuIGhvcnNlLgorU29sdXRpb246ICAgRGlzYWxsb3cgdXNpbmcgZmVlZGtleXMoKSBpbiB0aGUgc2FuZGJveC4KK0ZpbGVzOgkgICAgc3JjL2V2YWwuYworCitQYXRjaCA3LjAuMjM1CitQcm9ibGVtOiAgICBJdCBpcyBwb3NzaWJsZSB0byB1c2Ugd3JpdGVmaWxlKCkgaW4gdGhlIHNhbmRib3guCitTb2x1dGlvbjogICBBZGQgYSBmZXcgbW9yZSBjaGVja3MgZm9yIHRoZSBzYW5kYm94LgorRmlsZXM6CSAgICBzcmMvZXZhbC5jCisKK1BhdGNoIDcuMC4yMzYKK1Byb2JsZW06ICAgIExpbnV4IDIuNCB1c2VzIHN5c2luZm8oKSB3aXRoIGEgbWVtX3VuaXQgZmllbGQsIHdoaWNoIGlzIG5vdAorCSAgICBiYWNrd2FyZHMgY29tcGF0aWJsZS4KK1NvbHV0aW9uOiAgIEFkZCBhbiBhdXRvY29uZiBjaGVjayBmb3Igc3lzaW5mby5tZW1fdW5pdC4gIExldCBtY2hfdG90YWxfbWVtKCkKKwkgICAgcmV0dXJuIEtieXRlIHRvIGF2b2lkIG92ZXJmbG93LgorRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwKKwkgICAgc3JjL29wdGlvbi5jLCBzcmMvb3NfdW5peC5jCisKK1BhdGNoIDcuMC4yMzcKK1Byb2JsZW06ICAgIEZvciByb290IGl0IGlzIHJlY29tbWVuZGVkIHRvIG5vdCB1c2UgJ21vZGVsaW5lJywgYnV0IGluCisJICAgIG5vdC1jb21wYXRpYmxlIG1vZGUgdGhlIGRlZmF1bHQgaXMgb24uCitTb2x1dGlvbjogICBMZXQgJ21vZGVsaW5lJyBkZWZhdWx0IHRvIG9mZiBmb3Igcm9vdC4KK0ZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHRpb24uYworCitQYXRjaCA3LjAuMjM4CitQcm9ibGVtOiAgICBDcmFzaCB3aGVuICI6bWF0Y2giIHBhdHRlcm4gcnVucyBpbnRvICdtYXhtZW1wYXR0ZXJuJy4gKFlha292CisJICAgIExlcm5lcikKK1NvbHV0aW9uOiAgIERvbid0IGZyZWUgdGhlIHJlZ2V4cCBwcm9ncmFtIG9mIG1hdGNoX2hsLgorRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKKworUGF0Y2ggNy4wLjIzOQorUHJvYmxlbTogICAgV2hlbiB1c2luZyBsb2NhbCBkaXJlY3RvcmllcyBhbmQgdGFiIHBhZ2VzICI6bWtzZXNzaW9uIiB1c2VzIGEKKwkgICAgc2hvcnQgZmlsZSBuYW1lIHdoZW4gaXQgc2hvdWxkbid0LiAgV2luZG93LWxvY2FsIG9wdGlvbnMgZnJvbSBhCisJICAgIG1vZGVsaW5lIG1heSBiZSBhcHBsaWVkIHRvIHRoZSB3cm9uZyB3aW5kb3cuIChUZWVtdSBMaWtvbmVuKQorU29sdXRpb246ICAgQWRkIHRoZSBkaWRfbGNkIGZsYWcsIHVzZSB0aGUgZnVsbCBwYXRoIHdoZW4gaXQncyBzZXQuICBEb24ndCB1c2UKKwkgICAgd2luZG93LWxvY2FsIG9wdGlvbnMgZnJvbSB0aGUgbW9kZWxpbmUgd2hlbiB1c2luZyB0aGUgY3VycmVudAorCSAgICB3aW5kb3cgZm9yIGFub3RoZXIgYnVmZmVyIGluICI6ZG9hdXRvYWxsIi4KK0ZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCAgc3JjL2V4X2RvY21kLmMKKworUGF0Y2ggNy4wLjI0MAorUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBzcGxpdHRpbmcgYSB3aW5kb3cgaW4gdGhlIEdVSS4gKG9wcG9zaXRlIG9mIDcuMC4yMjcpCitTb2x1dGlvbjogICBEb24ndCBjYWxsIG91dF9mbHVzaCgpIGZyb20gd2luX2FsbG9jKCkuICBBbHNvIGF2b2lkIHRoaXMgZm9yCisJICAgIHdpbl9kZWxldGUoKS4gIEFsc28gYmxvY2sgYXV0b2NvbW1hbmRzIHdoaWxlIHRoZSB3aW5kb3cgc3RydWN0dXJlCisJICAgIGlzIGludmFsaWQuCitGaWxlczoJICAgIHNyYy93aW5kb3cuYworCitQYXRjaCA3LjAuMjQxCitQcm9ibGVtOiAgICAiOndpbmRvIHRocm93ICdmb28nIiBsb29wcyBmb3JldmVyLiAoQW5keSBXb2t1bGEpCitTb2x1dGlvbjogICBEZXRlY3QgdGhhdCB3aW5fZ290bygpIGRvZXNuJ3Qgd29yay4KK0ZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKKworUGF0Y2ggNy4wLjI0MiAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogVXNpbmcgIi1yZWdpc3RlciIgaW4gYSBWaW0gdGhhdCBkb2VzIG5vdCBzdXBwb3J0IE9MRSBjYXVzZXMKKwkgICAgYSBjcmFzaC4KK1NvbHV0aW9uOiAgIERvbid0IHVzZSBFTVNHKCkgYnV0IG1jaF9lcnJtc2coKS4gIENoZWNrIHBfZ28gZm9yIGJlaW5nIE5VTEwuCisJICAgIChwYXJ0bHkgYnkgTWljaGFlbCBXb29rZXkpCitGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKKworUGF0Y2ggNy4wLjI0MyAoZXh0cmEpCitQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBHdmltRXh0IGlzIGJ1aWx0IHdpdGggTVNWQyAyMDA1IG9yIGxhdGVyLCB0aGUgIkVkaXQKKwkgICAgd2l0aCB2aW0iIGNvbnRleHQgbWVudSBkb2Vzbid0IGFwcGVhciBpbiB0aGUgV2luZG93cyBFeHBsb3Jlci4KK1NvbHV0aW9uOiAgIEVtYmVkIHRoZSBsaW5rZXIgbWFuaWZlc3QgZmlsZSBpbnRvIHRoZSByZXNvdXJjZXMgb2YgR3ZpbUV4dC5kbGwuCisJICAgIChNYXRoaWFzIE1pY2hhZWxpcykKK0ZpbGVzOgkgICAgc3JjL0d2aW1FeHQvTWFrZWZpbGUKKworCiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvd29ya3Nob3AudHh0IGIvcnVudGltZS9kb2Mvd29ya3Nob3AudHh0CmluZGV4IDIxYjgwY2UuLmEwNTAyY2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3dvcmtzaG9wLnR4dAorKysgYi9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qd29ya3Nob3AudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKndvcmtzaG9wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3h4ZC1pdC5VVEYtOC4xIGIvcnVudGltZS9kb2MveHhkLWl0LlVURi04LjEKaW5kZXggOWUzNzQyZC4uNTIxMTRlYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MveHhkLWl0LlVURi04LjEKKysrIGIvcnVudGltZS9kb2MveHhkLWl0LlVURi04LjEKQEAgLTIyNiw3ICsyMjYsNyBAQAogXGZJJSB4eGQgXC1zIFwtMHgzMCBmaWxlCiAuUFAKIC5icgotU3RhbXBhIDEyMCBieXRlcyBjb21lIGltbWFnaW5lIGVzYWRlY2ltYWxlIGNvbnRpbnVhIGNvbiA0MCBieXRlcyBwZXIgbGluZWEuCitTdGFtcGEgMTIwIGJ5dGVzIGNvbWUgaW1tYWdpbmUgZXNhZGVjaW1hbGUgY29udGludWEgY29uIDIwIGJ5dGVzIHBlciBsaW5lYS4KIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQtcnUuMSBiL3J1bnRpbWUvZG9jL3h4ZC1ydS4xCmluZGV4IDljMmY5MmQuLjExMTk0NmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3h4ZC1ydS4xCisrKyBiL3J1bnRpbWUvZG9jL3h4ZC1ydS4xCkBAIC0yMzEsNyArMjMxLDcgQEAKIC5QUAogLmJyCiD32dfF09TJIDEyMCDCwcrUz9cg1yDXycTFIM7F0NLF0tnXzs/HzyDbxdPUzsHEw8HUxdLJ3s7Px88g0NLFxNPUwdfMxc7J0Qot0M8gNDAgz8vUxdTP1yDXINPU0s/LxToKK9DPIDIwIM/L1MXUz9cg1yDT1NLPy8U6CiAuUFAKIFxmSSUgeHhkIFwtbCAxMjAgXC1wcyBcLWMgMjAgeHhkLjFcZlIKIC5icgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLjEgYi9ydW50aW1lL2RvYy94eGQuMQppbmRleCBkNmU3ODJhLi5lOGY3MzU4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQuMQorKysgYi9ydW50aW1lL2RvYy94eGQuMQpAQCAtMTIzLDcgKzEyMyw3IEBACiBzdGFydCBhdAogLlJJIDwgc2VlayA+CiBieXRlcyBhYnMuIChvciByZWwuKSBpbmZpbGUgb2Zmc2V0LgotXGZJKyBmUmluZGljYXRlcyB0aGF0IHRoZSBzZWVrIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHN0ZGluIGZpbGUgcG9zaXRpb24KK1xmSSsgXGZSaW5kaWNhdGVzIHRoYXQgdGhlIHNlZWsgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgc3RkaW4gZmlsZSBwb3NpdGlvbgogKG1lYW5pbmdsZXNzIHdoZW4gbm90IHJlYWRpbmcgZnJvbSBzdGRpbikuICBcZklcLSBcZlJpbmRpY2F0ZXMgdGhhdCB0aGUgc2Vlawogc2hvdWxkIGJlIHRoYXQgbWFueSBjaGFyYWN0ZXJzIGZyb20gdGhlIGVuZCBvZiB0aGUgaW5wdXQgKG9yIGlmIGNvbWJpbmVkIHdpdGgKIFxmSStcZlI6IGJlZm9yZSB0aGUgY3VycmVudCBzdGRpbiBmaWxlIHBvc2l0aW9uKS4KQEAgLTE3MiwxNyArMTcyLDE3IEBACiBSZXdpbmQgc3RkaW4gYmVmb3JlIHJlYWRpbmc7IG5lZWRlZCBiZWNhdXNlIHRoZSBgY2F0JyBoYXMgYWxyZWFkeSByZWFkIHRvIHRoZQogZW5kIG9mIHN0ZGluLgogLmJyCi1cZkklIHNoIFwtYyAiY2F0ID4gcGxhaW5fY29weTsgeHhkIFwtcyAwID4gaGV4X2NvcHkiIDwgZmlsZQorXGZJJSBzaCBcLWMgImNhdCA+IHBsYWluX2NvcHk7IHh4ZCBcLXMgMCA+IGhleF9jb3B5IiA8IGZpbGVcZlIKIC5QUAogSGV4ZHVtcCBmcm9tIGZpbGUgcG9zaXRpb24gMHg0ODAgKD0xMDI0KzEyOCkgb253YXJkcy4KIFRoZSBgKycgc2lnbiBtZWFucyAicmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24iLCB0aHVzIHRoZSBgMTI4JyBhZGRzIHRvCiB0aGUgMWsgd2hlcmUgZGQgbGVmdCBvZmYuCiAuYnIKLVxmSSUgc2ggXC1jICJkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCBcLXMgKzEyOCA+IGhleF9zbmlwcGV0IiA8IGZpbGUKK1xmSSUgc2ggXC1jICJkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCBcLXMgKzEyOCA+IGhleF9zbmlwcGV0IiA8IGZpbGVcZlIKIC5QUAogSGV4ZHVtcCBmcm9tIGZpbGUgcG9zaXRpb24gMHgxMDAgKCA9IDEwMjRcLTc2OCkgb24uCiAuYnIKLVxmSSUgc2ggXC1jICJkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCBcLXMgK1wtNzY4ID4gaGV4X3NuaXBwZXQiIDwgZmlsZQorXGZJJSBzaCBcLWMgImRkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArXC03NjggPiBoZXhfc25pcHBldCIgPCBmaWxlXGZSCiAuUFAKIEhvd2V2ZXIsIHRoaXMgaXMgYSByYXJlIHNpdHVhdGlvbiBhbmQgdGhlIHVzZSBvZiBgKycgaXMgcmFyZWx5IG5lZWRlZC4KIFRoZSBhdXRob3IgcHJlZmVycyB0byBtb25pdG9yIHRoZSBlZmZlY3Qgb2YgeHhkIHdpdGggc3RyYWNlKDEpIG9yIHRydXNzKDEpLCB3aGVuZXZlciBcLXMgaXMgdXNlZC4KQEAgLTE5MiwxNiArMTkyLDE2IEBACiBQcmludCBldmVyeXRoaW5nIGJ1dCB0aGUgZmlyc3QgdGhyZWUgbGluZXMgKGhleCAweDMwIGJ5dGVzKSBvZgogLkJSIGZpbGUgLgogLmJyCi1cZkklIHh4ZCBcLXMgMHgzMCBmaWxlCitcZkklIHh4ZCBcLXMgMHgzMCBmaWxlXGZSCiAuUFAKIC5icgogUHJpbnQgMyBsaW5lcyAoaGV4IDB4MzAgYnl0ZXMpIGZyb20gdGhlIGVuZCBvZgogLkJSIGZpbGUgLgogLmJyCi1cZkklIHh4ZCBcLXMgXC0weDMwIGZpbGUKK1xmSSUgeHhkIFwtcyBcLTB4MzAgZmlsZVxmUgogLlBQCiAuYnIKLVByaW50IDEyMCBieXRlcyBhcyBjb250aW51b3VzIGhleGR1bXAgd2l0aCA0MCBvY3RldHMgcGVyIGxpbmUuCitQcmludCAxMjAgYnl0ZXMgYXMgY29udGludW91cyBoZXhkdW1wIHdpdGggMjAgb2N0ZXRzIHBlciBsaW5lLgogLmJyCiBcZkklIHh4ZCBcLWwgMTIwIFwtcHMgXC1jIDIwIHh4ZC4xXGZSCiAuYnIK