ZGlmZiAtLWdpdCBhL0RvYy9BQ0tTIGIvRG9jL0FDS1MKaW5kZXggMmU2OTU0MC4uM2YwNzA2NiAxMDA2NDQKLS0tIGEvRG9jL0FDS1MKKysrIGIvRG9jL0FDS1MKQEAgLTIzLDcgKzIzLDcgQEAKIEEuIEFtb3Jvc28KIFBlaHIgQW5kZXJzb24KIE9saXZlciBBbmRyaWNoCi1KZXP6cyBDZWEgQXZp824KK0plc8O6cyBDZWEgQXZpw7NuCiBEYW5pZWwgQmFyY2xheQogQ2hyaXMgQmFya2VyCiBEb24gQmFzaGZvcmQKQEAgLTU0LDcgKzU0LDcgQEAKIENhcmV5IEV2YW5zCiBNYXJ0aWpuIEZhYXNzZW4KIENhcmwgRmV5bm1hbgotSGVybuFuIE1hcnTtbmV6IEZvZmZhbmkKK0hlcm7DoW4gTWFydMOtbmV6IEZvZmZhbmkKIFN0ZWZhbiBGcmFua2UKIEppbSBGdWx0b24KIFBldGVyIEZ1bmsKQEAgLTcxLDcgKzcxLDcgQEAKIE1hcmsgSGFtbW9uZAogSGFyYWxkIEhhbmNoZS1PbHNlbgogTWFudXMgSGFuZAotR2VyaGFyZCBI5HJpbmcKK0dlcmhhcmQgSMOkcmluZwogVHJhdmlzIEIuIEhhcnR3ZWxsCiBKYW5rbyBIYXVzZXIKIEJlcm5oYXJkIEhlcnpvZwpAQCAtMTA4LDExICsxMDgsMTEgQEAKIERldGxlZiBMYW5uZXJ0CiBQaWVycyBMYXVkZXIKIEdseXBoIExlZmtvd2l0egotTWFyYy1BbmRy6SBMZW1idXJnCitNYXJjLUFuZHLDqSBMZW1idXJnCiBVbGYgQS4gTGluZGdyZW4KIEV2ZXJldHQgTGlwbWFuCiBNaXJrbyBMaXNzCi1NYXJ0aW4gdm9uIEz2d2lzCitNYXJ0aW4gdm9uIEzDtndpcwogRnJlZHJpayBMdW5kaAogSmVmZiBNYWNEb25hbGQKIEpvaG4gTWFjaGluCkBAIC0xMzYsMTEgKzEzNiwxMiBAQAogV2lsbGlhbSBQYXJrCiBKb29uYXMgUGFhbGFzbWFhCiBIYXJyaSBQYXNhbmVuCitCbyBQZW5nCiBUaW0gUGV0ZXJzCiBDaHJpc3RvcGhlciBQZXRyaWxsaQogSnVzdGluIEQuIFBldHRpdAogQ2hyaXMgUGhvZW5peAotRnJhbudvaXMgUGluYXJkCitGcmFuw6dvaXMgUGluYXJkCiBQYXVsIFByZXNjb2QKIEVyaWMgUy4gUmF5bW9uZAogRWR3YXJkIEsuIFJlYW0KZGlmZiAtLWdpdCBhL0RvYy90ZXN0cy9tYXRoLnRleCBiL0RvYy90ZXN0cy9tYXRoLnRleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTg4MGU1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL3Rlc3RzL21hdGgudGV4CkBAIC0wLDAgKzEsMTYgQEAKK1xkb2N1bWVudGNsYXNze2hvd3RvfQorCitcdGl0bGV7VGVzdCBvZiBweXRob24uc3R5IHdpdGggbWF0aH0KKworXGJlZ2lue2RvY3VtZW50fQorCitcbWFrZXRpdGxlCisKK1xzZWN0aW9ue1N1YnNjcmlwdHMgaW4gTWF0aCBNb2RlfQorCitUaGlzIGNvbnRhaW5zIGFuIGlubGluZSBmb3JtdWxhIGNvbnRhaW5pbmcgYSBzdWJzY3JpcHQ6ICRIXzIwJC4KK1RoaXMgZGlzcGxheSBkb2Vzbid0IG1ha2Ugc2Vuc2UsIGJ1dCBjb250YWlucyBhIHN1YnNjcmlwdCBhcyB3ZWxsOgorCiskJFxzdW1fMV4yID0gYV94JCQKKworXGVuZHtkb2N1bWVudH0KZGlmZiAtLWdpdCBhL0RvYy90ZXhpbnB1dHMvcHl0aG9uLnN0eSBiL0RvYy90ZXhpbnB1dHMvcHl0aG9uLnN0eQppbmRleCAxZjQ4MGE5Li40Y2IwMmRlIDEwMDY0NAotLS0gYS9Eb2MvdGV4aW5wdXRzL3B5dGhvbi5zdHkKKysrIGIvRG9jL3RleGlucHV0cy9weXRob24uc3R5CkBAIC03LDYgKzcsNyBAQAogICAgICAgICAgICAgIFsxOTk4LzAxLzExIExhVGVYIHBhY2thZ2UgKFB5dGhvbiBtYXJrdXApXQogCiBcUmVxdWlyZVBhY2thZ2V7bG9uZ3RhYmxlfQorXFJlcXVpcmVQYWNrYWdle3VuZGVyc2NvcmV9CiAKICUgVW5jb21tZW50IHRoZXNlIHR3byBsaW5lcyB0byBpZ25vcmUgdGhlIHBhcGVyIHNpemUgYW5kIG1ha2UgdGhlIHBhZ2UgCiAlIHNpemUgbW9yZSBsaWtlIGEgdHlwaWNhbCBwdWJsaXNoZWQgbWFudWFsLgpAQCAtNTQxLDI4ICs1NDIsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyZXNldEBmb250XG5vcm1hbHNpemVccHlASGVhZGVyRmFtaWx5fX0KIAogCi0lIFRoaXMgZ2V0cyB0aGUgdW5kZXJzY29yZXMgY2xvc2VyIHRvIHRoZSByaWdodCB3aWR0aDsgdGhlIG9ubHkgY2hhbmdlCi0lIGZyb20gc3RhbmRhcmQgTGFUZVggaXMgdGhlIHdpZHRoIHNwZWNpZmllZC4KLQotXERlY2xhcmVUZXh0Q29tbWFuZERlZmF1bHR7XHRleHR1bmRlcnNjb3JlfXslCi0gIFxsZWF2ZXZtb2RlIFxrZXJuLjA2ZW1cdmJveHtcaHJ1bGVcQHdpZHRoLjU1ZW19fQotCi0lIFVuZGVyc2NvcmUgaGFjayAob25seSBhY3QgbGlrZSBzdWJzY3JpcHQgb3BlcmF0b3IgaWYgaW4gbWF0aCBtb2RlKQotJQotJSBUaGUgZm9sbG93aW5nIGlzIGR1ZSB0byBNYXJrIFdvb2RpbmcgKHRoZSBvbGQgdmVyc2lvbiBkaWRuJ3Qgd29yayB3aXRoCi0lIExhdGV4IDJlLgotCi1cRGVjbGFyZVJvYnVzdENvbW1hbmRcaGFja3Njb3JleyUKLSAgXGlmbW1vZGVfXGVsc2VcdGV4dHVuZGVyc2NvcmVcZmklCi19Ci1cYmVnaW5ncm91cAotXGNhdGNvZGVgXF9cYWN0aXZlCi1cZGVmXG5leHR7JQotICBcQXRCZWdpbkRvY3VtZW50e1xjYXRjb2RlYFxfXGFjdGl2ZVxkZWZfe1xoYWNrc2NvcmV7fX19JQotfQotXGV4cGFuZGFmdGVyXGVuZGdyb3VwXG5leHQKLQotCiAlIE5vdyBmb3IgYSBsb3Qgb2Ygc2VtYW50aWNhbGx5LWxvYWRlZCBlbnZpcm9ubWVudHMgdGhhdCBkbyBhIHRvbiBvZiBtYWdpY2FsCiAlIHRoaW5ncyB0byBnZXQgdGhlIHJpZ2h0IGZvcm1hdHRpbmcgYW5kIGluZGV4IGVudHJpZXMgZm9yIHRoZSBzdHVmZiBpbgogJSBQeXRob24gbW9kdWxlcyBhbmQgQyBBUEkuCmRpZmYgLS1naXQgYS9Eb2MvdGV4aW5wdXRzL3VuZGVyc2NvcmUuc3R5IGIvRG9jL3RleGlucHV0cy91bmRlcnNjb3JlLnN0eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjc0YjM5Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL3RleGlucHV0cy91bmRlcnNjb3JlLnN0eQpAQCAtMCwwICsxLDIzMiBAQAorJSB1bmRlcnNjb3JlLnN0eSAgICAgMTItT2N0LTIwMDEgICBEb25hbGQgQXJzZW5lYXUgICBhc25kQHRyaXVtZi5jYQorJSBNYWtlIHRoZSAiXyIgY2hhcmFjdGVyIHByaW50IGFzICJcdGV4dHVuZGVyc2NvcmUiIGluIHRleHQuCislIENvcHlyaWdodCAxOTk4LDIwMDEgRG9uYWxkIEFyc2VuZWF1OyAgRGlzdHJpYnV0ZSBmcmVlbHkgaWYgdW5jaGFuZ2VkLgorJSBJbnN0cnVjdGlvbnMgZm9sbG93IGFmdGVyIHRoZSBkZWZpbml0aW9ucy4KKworXFByb3ZpZGVzUGFja2FnZXt1bmRlcnNjb3JlfVsyMDAxLzEwLzEyXQorCitcYmVnaW5ncm91cAorIFxjYXRjb2RlYFxfPVxhY3RpdmUKKyBcZ2RlZl97JSBccmVsYXggJSBObyByZWxheCBnaXZlcyBhIHNtYWxsIHZ1bG5lcmFiaWxpdHkgaW4gYWxpZ25tZW50cworICAgXGlmeFxpZkBzYWZlQGFjdGl2ZXNcaWZ0cnVlICUgbXVzdCBiZSBvdXRlcm1vc3QgdGVzdCEKKyAgICAgIFxzdHJpbmdfJQorICAgXGVsc2UKKyAgICAgIFxpZnhccHJvdGVjdFxAdHlwZXNldEBwcm90ZWN0CisgICAgICAgICBcaWZtbW9kZSBcc2IgXGVsc2UgXEJyZWFrYWJsZVVuZGVyc2NvcmUgXGZpCisgICAgICBcZWxzZQorICAgICAgICAgXGlmeFxwcm90ZWN0XEB1bmV4cGFuZGFibGVAcHJvdGVjdCBcbm9leHBhbmRfJQorICAgICAgICAgXGVsc2UgXHByb3RlY3RfJQorICAgICAgXGZpXGZpCisgICAgXGZpfQorXGVuZGdyb3VwCisKKyUgQXQgYmVnaW46IHNldCBjYXRjb2RlOyBmaXggXGxvbmcgXHR0ZGVmYXVsdCBzbyBJIGNhbiB1c2UgaXQgaW4gY29tcGFyaXNvbnM7IAorXEF0QmVnaW5Eb2N1bWVudHslCisgIHtcaW1tZWRpYXRlXHdyaXRlXEBhdXhvdXR7XGNhdGNvZGVcbnVtYmVyXHN0cmluZ2BcXyBcc3RyaW5nXGFjdGl2ZX19JQorICBcY2F0Y29kZVxzdHJpbmdgXF9cc3RyaW5nPVxhY3RpdmUKKyAgXGVkZWZcdHRkZWZhdWx0e1x0dGRlZmF1bHR9JQorfQorCitcbmV3Y29tbWFuZHtcQnJlYWthYmxlVW5kZXJzY29yZX17XGxlYXZldm1vZGVcbm9icmVha1xoc2tpcFx6QHNraXAKKyBcaWZ4XGZAZmFtaWx5XHR0ZGVmYXVsdCBcc3RyaW5nX1xlbHNlIFx0ZXh0dW5kZXJzY29yZVxmaQorIFx1c2NAZGlzY2h5cGhcbm9icmVha1xoc2tpcFx6QHNraXB9CisKK1xEZWNsYXJlUm9idXN0Q29tbWFuZHtcX317JQorICBcaWZtbW9kZSBcbmZzc0B0ZXh0e1x0ZXh0dW5kZXJzY29yZX1cZWxzZSBcQnJlYWthYmxlVW5kZXJzY29yZSBcZml9CisKK1xsZXRcdXNjQGRpc2NoeXBoXEBkaXNjaHlwaAorXERlY2xhcmVPcHRpb257bm9oeXBoZW59e1xkZWZcdXNjQGRpc2NoeXBoe1xkaXNjcmV0aW9uYXJ5e317fXt9fX0KK1xEZWNsYXJlT3B0aW9ue3N0cmluZ3N9e1xjYXRjb2RlYFxfPVxhY3RpdmV9CisKK1xQcm9jZXNzT3B0aW9ucworXGlmbnVtXGNhdGNvZGVgXF89XGFjdGl2ZVxlbHNlIFxlbmRpbnB1dCBcZmkKKworJSUlJSUlJSUgICBSZWRlZmluZSBjb21tYW5kcyB0aGF0IHVzZSBjaGFyYWN0ZXIgc3RyaW5ncyAgICUlJSUlJSUlCisKK1xAaWZ1bmRlZmluZWR7VW5kZXJzY29yZUNvbW1hbmRzfXtcbGV0XFVuZGVyc2NvcmVDb21tYW5kc1xAZW1wdHl9e30KK1xleHBhbmRhZnRlclxkZWZcZXhwYW5kYWZ0ZXJcVW5kZXJzY29yZUNvbW1hbmRzXGV4cGFuZGFmdGVyeyUKKyAgXFVuZGVyc2NvcmVDb21tYW5kcworICBcZG9caW5jbHVkZSBcZG9caW5jbHVkZW9ubHkKKyAgXGRvXEBpbnB1dCBcZG9cQGlpbnB1dCBcZG9cSW5wdXRJZkZpbGVFeGlzdHMKKyAgXGRvXHJlZiBcZG9ccGFnZXJlZiBcZG9cbmV3bGFiZWwKKyAgXGRvXGJpYml0ZW0gXGRvXEBiaWJpdGVtIFxkb1xjaXRlIFxkb1xub2NpdGUgXGRvXGJpYmNpdGUKK30KKworJSBNYWNybyB0byByZWRlZmluZSBhIG1hY3JvIHRvIHByZS1wcm9jZXNzIGl0cyBzdHJpbmcgYXJndW1lbnQKKyUgd2l0aCBccHJvdGVjdCAtPiBcc3RyaW5nLgorXGRlZlxkbyMxeyUgQXZvaWQgZG91YmxlIHByb2Nlc3NpbmcgaWYgdXNlciBpbmNsdWRlcyBjb21tYW5kIHR3aWNlIQorIFxAaWZ1bmRlZmluZWR7VVNcc3RyaW5nX1xleHBhbmRhZnRlclxAZ29iYmxlXHN0cmluZyMxfXslCisgICBcZWRlZlxAdGVtcGJ7XG1lYW5pbmcjMX0lIENoZWNrIGlmIG1hY3JvIGlzIGp1c3QgYSBwcm90ZWN0aW9uIHNoZWxsLi4uCisgICBcZGVmXEB0ZW1wY3tccHJvdGVjdH0lCisgICBcZWRlZlxAdGVtcGN7XG1lYW5pbmdcQHRlbXBjXHN0cmluZyMxXHNwYWNlXHNwYWNlfSUKKyAgIFxpZnhcQHRlbXBiXEB0ZW1wYyAlIGp1c3QgYSBzaGVsbDogaG9vayBpbnRvIHRoZSBwcm90ZWN0ZWQgaW5uZXIgY29tbWFuZAorICAgICBcZXhwYW5kYWZ0ZXJcZG8KKyAgICAgICBcY3NuYW1lIFxleHBhbmRhZnRlclxAZ29iYmxlXHN0cmluZyMxIFxleHBhbmRhZnRlclxlbmRjc25hbWUKKyAgIFxlbHNlICUgQ2hlY2sgaWYgbWFjcm8gdGFrZXMgYW4gb3B0aW9uYWwgYXJndW1lbnQKKyAgICAgXGRlZlxAdGVtcGN7XEBpZm5leHRjaGFyW30lCisgICAgIFxlZGVmXEB0ZW1wYXtcZGVmXG5vZXhwYW5kXEB0ZW1wYSMjIyMxXG1lYW5pbmdcQHRlbXBjfSUKKyAgICAgXEB0ZW1wYSMjMiMjM1xAdGVtcGF7IyMyXHJlbGF4fSUKKyAgICAgXGVkZWZcQHRlbXBie1xtZWFuaW5nIzFcbWVhbmluZ1xAdGVtcGN9JQorICAgICBcZWRlZlxAdGVtcGN7XG5vZXhwYW5kXEB0ZW1wZCBcY3NuYW1lCisgICAgICAgIFVTXHN0cmluZ19cZXhwYW5kYWZ0ZXJcQGdvYmJsZVxzdHJpbmcjMVxlbmRjc25hbWV9JQorICAgICBcaWYgXGV4cGFuZGFmdGVyXEB0ZW1wYVxAdGVtcGIgXHJlbGF4IDEyXEB0ZW1wYSAlIHRoZW4gbm8gb3B0aW9uYWwgYXJnCisgICAgICAgXEB0ZW1wYyAjMVxVU0Bwcm90CisgICAgIFxlbHNlICAlIFRoZXJlIGlzIG9wdGlvbmFsIGFyZworICAgICAgIFxAdGVtcGMgIzFcVVNAcHJvdG9wdAorICAgICBcZmkKKyAgIFxmaQorIH17fX0KKworXGRlZlxAdGVtcGQjMSMyIzN7XGxldCMxIzJcZGVmIzJ7IzMjMX19CisKK1xkZWZcVVNAcHJvdCMxIzJ7XGxldFxAQHByb3RlY3RccHJvdGVjdCBcbGV0XHByb3RlY3Rcc3RyaW5nCisgIFxlZGVmXFVTQHRlbXAjIzF7IyMxeyMyfX1ccmVzdG9yZUBwcm90ZWN0XFVTQHRlbXAjMX0KK1xkZWZcVVNAcHJvdG9wdCMxe1xAaWZuZXh0Y2hhclt7XFVTQHByb3RhcmcjMX17XFVTQHByb3QjMX19CitcZGVmXFVTQHByb3RhcmcgIzFbIzJde1xVU0Bwcm90e3sjMVsjMl19fX0KKworXFVuZGVyc2NvcmVDb21tYW5kcworXGxldFxkb1xyZWxheCBcbGV0XEB0ZW1wZFxyZWxheCAgJSB1bi1kbworCislJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQorCitcZW5kaW5wdXQKKwordW5kZXJzY29yZS5zdHkgICAgMTItT2N0LTIwMDEgIERvbmFsZCBBcnNlbmVhdQorCitGZWF0dXJlczoKK35+fn5+fn5+fgorXF8gcHJpbnRzIGFuIHVuZGVyc2NvcmUgc28gdGhhdCB0aGUgaHlwaGVuYXRpb24gb2YgY29uc3RpdHVlbnQgd29yZHMKK2lzIG5vdCBhZmZlY3RlZCBhbmQgaHlwaGVuYXRpb24gaXMgcGVybWl0dGVkIGFmdGVyIHRoZSB1bmRlcnNjb3JlLgorRm9yIGV4YW1wbGUsICJjb21wb3VuZFxfZnJhY3R1cmUiIGh5cGhlbmF0ZXMgYXMgY29tLSBwb3VuZF8tIGZyYWMtIHR1cmUuCitJZiB5b3UgcHJlZmVyIHRoZSB1bmRlcnNjb3JlIHRvIGJyZWFrIHdpdGhvdXQgYSBoeXBoZW4gKGJ1dCBzdGlsbCB3aXRoIAordGhlIHNhbWUgcnVsZXMgZm9yIGV4cGxpY2l0IGh5cGhlbi1icmVha3MpIHRoZW4gdXNlIHRoZSBbbm9oeXBoZW5dCitwYWNrYWdlIG9wdGlvbi4KKworQSBzaW1wbGUgXyAgYWN0cyBqdXN0IGxpa2UgXF8gaW4gdGV4dCBtb2RlLCBidXQgbWFrZXMgYSBzdWJzY3JpcHQgaW4gCittYXRoIG1vZGU6IGFjdGl2YXRpb25fZW5lcmd5ICRFX2EkCisKK0JvdGggZm9ybXMgdXNlIGFuIHVuZGVyc2NvcmUgY2hhcmFjdGVyIGlmIHRoZSBmb250IGVuY29kaW5nIGNvbnRhaW5zCitvbmUgKGUuZy4sICJcdXNlcGFja2FnZVtUMV17Zm9udGVuY30iIG9yIHR5cGV3cml0ZXIgZm9udHMgaW4gYW55IGVuY29kaW5nKSwKK2J1dCB0aGV5IHVzZSBhIHJ1bGUgaWYgdGhlIHRoZXJlIGlzIG5vIHByb3BlciBjaGFyYWN0ZXIuCisKK0RlZmljaWVuY2llczoKK35+fn5+fn5+fn5+fn4KK1RoZSBza2lwcyBhbmQgcGVuYWx0aWVzIHJ1aW4gYW55IGtlcm5pbmcgd2l0aCB0aGUgdW5kZXJzY29yZSBjaGFyYWN0ZXIKKyh3aGVuIGEgY2hhcmFjdGVyIGlzIHVzZWQpLiAgSG93ZXZlciwgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIG11Y2gsIGlmCithbnksIHN1Y2gga2VybmluZyBpbiB0aGUgZWMgZm9udHMsIGFuZCB0aGVyZSBpcyBuZXZlciBhbnkga2VybmluZyB3aXRoCithIHJ1bGUuCisKK1lvdSBtdXN0IGF2b2lkICJfIiBpbiBmaWxlIG5hbWVzIGFuZCBpbiBjaXRlIG9yIHJlZiB0YWdzLCBvciB5b3UgbXVzdCB1c2UgCit0aGUgYmFiZWwgcGFja2FnZSwgd2l0aCBpdHMgYWN0aXZlLWNoYXJhY3RlciBjb250cm9scywgb3IgeW91IG11c3QgZ2l2ZSAKK3RoZSBbc3RyaW5nc10gb3B0aW9uLCB3aGljaCBhdHRlbXB0cyB0byByZWRlZmluZSBzZXZlcmFsIGNvbW1hbmRzIChhbmQgCittYXkgbm90IHdvcmsgcGVyZmVjdGx5KS4gIEV2ZW4gd2l0aG91dCB0aGUgW3N0cmluZ3NdIG9wdGlvbiBvciBiYWJlbCwgeW91IAorY2FuIHVzZSBvY2Nhc2lvbmFsIHVuZGVyc2NvcmVzIGxpa2U6ICJcaW5jbHVkZXtmaWxlXHN0cmluZ19uYW1lfSIuCisKK09wdGlvbjogW3N0cmluZ3NdCit+fn5+fn5+fn5+fn5+fn5+fgorVGhlIGRlZmF1bHQgb3BlcmF0aW9uIGlzIHF1aXRlIHNpbXBsZSBhbmQgbmVlZHMgbm8gY3VzdG9taXphdGlvbjsgYnV0Cit5b3UgbXVzdCBhdm9pZCB1c2luZyAiXyIgaW4gYW55IHBsYWNlIHdoZXJlIExhVGVYIHVzZXMgYW4gYXJndW1lbnQgYXMKK2Egc3RyaW5nIG9mIGNoYXJhY3RlcnMgZm9yIHNvbWUgY29udHJvbCBmdW5jdGlvbiBvciBhcyBhIG5hbWUuICBUaGVzZQoraW5jbHVkZSB0aGUgdGFncyBmb3IgXGNpdGUgYW5kIFxyZWYsIGZpbGUgbmFtZXMgZm9yIFxpbnB1dCwgXGluY2x1ZGUsCithbmQgXGluY2x1ZGVncmFwaGljcywgZW52aXJvbm1lbnQgbmFtZXMsIGNvdW50ZXIgbmFtZXMsIGFuZCBwbGFjZW1lbnQKK3BhcmFtZXRlcnMgKGxpa2UgIlt0XSIpLiAgVGhlIHByb2JsZW0gd2l0aCB0aGVzZSBjb250ZXh0cyBpcyB0aGF0IHRoZXkKK2FyZSBgbW92aW5nIGFyZ3VtZW50cycgYnV0IExhVGVYIGRvZXMgbm90IGBzd2l0Y2ggb24nIHRoZSBccHJvdGVjdAorbWVjaGFuaXNtIGZvciB0aGVtLgorCitJZiB5b3UgbmVlZCB0byB1c2UgdGhlIHVuZGVyc2NvcmUgY2hhcmFjdGVyIGluIHRoZXNlIHBsYWNlcywgdGhlIHBhY2thZ2UKK29wdGlvbiBbc3RyaW5nc10gaXMgcHJvdmlkZWQgdG8gcmVkZWZpbmUgY29tbWFuZHMgdGFraW5nIGEgc3RyaW5nIGFyZ3VtZW50CitzbyB0aGF0IHRoZSBhcmd1bWVudCBpcyBwcm90ZWN0ZWQgKHdpdGggXHByb3RlY3QgLT4gXHN0cmluZykuICBUaGUgbGlzdAorb2YgY29tbWFuZHMgaXMgZ2l2ZW4gaW4gIlxVbmRlcnNjb3JlQ29tbWFuZHMiLCB3aXRoICJcZG8iIGJlZm9yZSBlYWNoLAorY292ZXJpbmcgXGNpdGUsIFxyZWYsIFxpbnB1dCwgYW5kIHRoZWlyIHZhcmlhbnRzLiAgTm90IGluY2x1ZGVkIGFyZSBtYW55Citjb21tYW5kcyByZWdhcmRpbmcgZm9udCBuYW1lcywgZXZlcnl0aGluZyB3aXRoIGNvdW50ZXIgbmFtZXMsIGVudmlyb25tZW50CituYW1lcywgcGFnZSBzdHlsZXMsIGFuZCB2ZXJzaW9ucyBvZiBccmVmIGFuZCBcY2l0ZSBkZWZpbmVkIGJ5IGV4dGVybmFsCitwYWNrYWdlcyAoZS5nLiBcdnJlZiBhbmQgXGNpdGV5ZWFyKS4KKworWW91IGNhbiBhZGQgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGNvbW1hbmRzIGJ5IGRlZmluaW5nIFxVbmRlcnNjb3JlQ29tbWFuZHMKK2JlZm9yZSBsb2FkaW5nIHRoaXMgcGFja2FnZTsgZS5nLgorCisgICBcdXNlcGFja2FnZXtjaGljYWdvfQorICAgXG5ld2NvbW1hbmR7XFVuZGVyc2NvcmVDb21tYW5kc317JSAgIChcY2l0ZSBhbHJlYWR5IGRvbmUpCisgICAgIFxkb1xjaXRlTlAgXGRvXGNpdGVBIFxkb1xjaXRlQU5QIFxkb1xjaXRlTiBcZG9cc2hvcnRjaXRlCisgICAgIFxkb1xzaG9ydGNpdGVOUCBcZG9cc2hvcnRjaXRlQSBcZG9cc2hvcnRjaXRlQU5QIFxkb1xzaG9ydGNpdGVOCisgICAgIFxkb1xjaXRleWVhciBcZG9cY2l0ZXllYXJOUAorICAgfQorICAgXHVzZXBhY2thZ2Vbc3RyaW5nc117dW5kZXJzY29yZX0KKworTm90IGFsbCBjb21tYW5kcyBjYW4gYmUgc3VwcG9ydGVkIHRoaXMgd2F5ISAgT25seSBjb21tYW5kcyB0aGF0IHRha2UgYQorc3RyaW5nIGFyZ3VtZW50ICpmaXJzdCogY2FuIGJlIHByb3RlY3RlZC4gIE9uZSBvcHRpb25hbCBhcmd1bWVudCBiZWZvcmUKK3RoZSBzdHJpbmcgYXJndW1lbnQgaXMgYWxzbyBwZXJtaXR0ZWQsIGFzIGV4ZW1wbGlmaWVkIGJ5IFxjaXRlOiBib3RoCitcY2l0ZXt0YWdzfSBhbmQgXGNpdGVbdGV4dF17dGFnc30gYXJlIGFsbG93ZWQuICBBIGNvbW1hbmQgbGlrZQorXEBhZGR0b3Jlc2V0IHdoaWNoIHRha2VzIHR3byBjb3VudGVyIG5hbWVzIGFzIGFyZ3VtZW50cyBjb3VsZCBub3QKK2JlIHByb3RlY3RlZCBieSBhZGRpbmcgaXQgdG8gXFVuZGVyc2NvcmVDb21tYW5kcy4KKworISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIQorISEgV2hlbiB5b3UgdXNlIHRoZSBbc3RyaW5nc10gb3B0aW9uLCB5b3UgbXVzdCBsb2FkIHRoaXMgcGFja2FnZSAhIQorISEgbGFzdCAob3IgbmVhcmx5IGxhc3QpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIQorISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIQorCitUaGVyZSBhcmUgdHdvIHJlYXNvbnM6IDEpIFRoZSByZWRlZmluaXRpb25zIGRvbmUgZm9yIHByb3RlY3Rpb24gbXVzdCBjb21lCithZnRlciBvdGhlciBwYWNrYWdlcyBkZWZpbmUgdGhlaXIgY3VzdG9taXplZCB2ZXJzaW9ucyBvZiB0aG9zZSBjb21tYW5kcy4KKzIpIFRoZSBbc3RyaW5nc10gb3B0aW9uIHJlcXVpcmVzIHRoZSBfIGNoYXJhY3RlciB0byBiZSBhY3RpdmF0ZWQgaW1tZWRpYXRlbHkKK2luIG9yZGVyIGZvciB0aGUgY2l0ZSBhbmQgcmVmIHRhZ3MgdG8gYmUgcmVhZCBwcm9wZXJseSBmcm9tIHRoZSAuYXV4IGZpbGUKK2FzIHBsYWluIHN0cmluZ3MsIGFuZCB0aGlzIGNhdGNvZGUgc2V0dGluZyBtaWdodCBkaXNydXB0IG90aGVyIHBhY2thZ2VzLgorCitUaGUgYmFiZWwgcGFja2FnZSBpbXBsZW1lbnRzIGEgcHJvdGVjdGlvbiBtZWNoYW5pc20gZm9yIG1hbnkgY29tbWFuZHMsCithbmQgd2lsbCBiZSBhIGNvbXBsZXRlIGZpeCBmb3IgbW9zdCBkb2N1bWVudHMgd2l0aG91dCB0aGUgW3N0cmluZ3NdIG9wdGlvbi4KK01hbnkgYWRkLW9uIHBhY2thZ2VzIGFyZSBjb21wYXRpYmxlIHdpdGggYmFiZWwsIHNvIHRoZXkgd2lsbCBnZXQgdGhlCitzdHJpbmdzIHByb3RlY3Rpb24gYWxzby4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBzZXZlcmFsIGNvbW1hbmRzIHRoYXQgYXJlIAorbm90IGNvdmVyZWQgYnkgYmFiZWwsIGJ1dCBjYW4gZWFzaWx5IGJlIHN1cHBvcnRlZCBieSB0aGUgW3N0cmluZ3NdIGFuZCAKK1xVbmRlcnNjb3JlQ29tbWFuZHMgbWVjaGFuaXNtLiAgQmV3YXJlIHRoYXQgdXNpbmcgYm90aCBbc3RyaW5nc10gYW5kIGJhYmVsIAorbWF5IGxlYWQgdG8gY29uZmxpY3RzLCBidXQgZG9lcyBhcHBlYXIgdG8gd29yayAobG9hZCBiYWJlbCBsYXN0KS4KKworSW1wbGVtZW50YXRpb24gTm90ZXM6Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn4KK1RoZSBmaXJzdCBzZXR0aW5nIG9mICJfIiB0byBiZSBhbiBhY3RpdmUgY2hhcmFjdGVyIGlzIHBlcmZvcm1lZCBpbiBhIGxvY2FsCitncm91cCBzbyBhcyB0byBub3QgaW50ZXJmZXJlIHdpdGggb3RoZXIgcGFja2FnZXMuICBUaGUgY2F0Y29kZSBzZXR0aW5nCitpcyByZXBlYXRlZCB3aXRoIFxBdEJlZ2luRG9jdW1lbnQgc28gdGhlIGRlZmluaXRpb24gaXMgaW4gZWZmZWN0IGZvciB0aGUKK3RleHQuICBIb3dldmVyLCB0aGUgY2F0Y29kZSBzZXR0aW5nIGlzIHJlcGVhdGVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlCitbc3RyaW5nc10gb3B0aW9uIGlzIGRldGVjdGVkLgorCitUaGUgZGVmaW5pdGlvbiBvZiB0aGUgYWN0aXZlICJfIiBpcyBlc3NlbnRpYWxseToKKyAgICAgICBcaWZtbW9kZSBcc2IgXGVsc2UgXEJyZWFrYWJsZVVuZGVyc2NvcmUgXGZpCit3aGVyZSAiXHNiIiByZXRhaW5zIHRoZSBub3JtYWwgc3Vic2NyaXB0IG1lYW5pbmcgb2YgIl8iIGFuZCB3aGVyZQorIlxCcmVha2FibGVVbmRlcnNjb3JlIiBpcyBlc3NlbnRpYWxseSAiXF8iLiAgVGhlIHJlc3Qgb2YgdGhlIGRlZmluaXRpb24KK2hhbmRsZXMgdGhlICJccHJvdGVjdCJpb24gd2l0aG91dCBjYXVzaW5nIFxyZWxheCB0byBiZSBpbnNlcnRlZCBiZWZvcmUKK3RoZSBjaGFyYWN0ZXIuCisKK1xCcmVha2FibGVVbmRlcnNjb3JlIHVzZXMgIlxub2JyZWFrXGhza2lwXHpAc2tpcCIgdG8gc2VwYXJhdGUgdGhlCit1bmRlcnNjb3JlIGZyb20gc3Vycm91bmRpbmcgd29yZHMsIHRodXMgYWxsb3dpbmcgVGVYIHRvIGh5cGhlbmF0ZSB0aGVtLAorYnV0IHByZXZlbnRpbmcgZnJlZSBicmVha3MgYXJvdW5kIHRoZSB1bmRlcnNjb3JlLiBOZXh0LCBpdCBjaGVja3MgdGhlCitjdXJyZW50IGZvbnQgZmFtaWx5LCBhbmQgdXNlcyB0aGUgdW5kZXJzY29yZSBjaGFyYWN0ZXIgZnJvbSB0dCBmb250cyBvcgorb3RoZXJ3aXNlIFx0ZXh0dW5kZXJzY29yZSAod2hpY2ggaXMgYSBjaGFyYWN0ZXIgb3IgcnVsZSBkZXBlbmRpbmcgb24KK3RoZSBmb250IGVuY29kaW5nKS4gIEFmdGVyIHRoZSB1bmRlcnNjb3JlLCBpdCBpbnNlcnRzIGEgZGlzY3JldGlvbmFyeQoraHlwaGVuYXRpb24gcG9pbnQgYXMgIlx1c2NAZGlzY2h5cGgiLCB3aGljaCBpcyB1c3VhbGx5IGp1c3QgIlwtIgorZXhjZXB0IHRoYXQgaXQgc3RpbGwgd29ya3MgaW4gdGhlIHRhYmJpbmcgZW52aXJvbm1lbnQsIGFsdGhvdWdoIGl0Cit3aWxsIGdpdmUgIlxkaXNjcmV0aW9uYXJ5e317fXt9IiB1bmRlciB0aGUgW25vaHlwaGVuXSBvcHRpb24uICBBZnRlcgordGhhdCwgYW5vdGhlciBwaWVjZSBvZiBub24tYnJlYWtpbmcgaW50ZXJ3b3JkIGdsdWUgaXMgaW5zZXJ0ZWQuIAorT3JkaW5hcmlseSwgdGhlIGNvbXBhcmlzb24gIlxpZnhcZkBmYW1pbHlcdHRkZWZhdWx0IiB3aWxsIGFsd2F5cyBmYWlsIAorYmVjYXVzZSBcdHRkZWZhdWx0IGlzIGBsb25nJyB3aGVyZSBcZkBmYW1pbHkgaXMgbm90IChib29vbyBoaXNzcyksIGJ1dCAKK1x0dGRlZmF1bHQgaXMgcmVkZWZpbmVkIHRvIGJlIG5vbi1sb25nIGJ5ICJcQXRCZWdpbkRvY3VtZW50Ii4KKworVGhlICJcXyIgY29tbWFuZCBpcyB0aGVuIGRlZmluZWQgdG8gdXNlICJcQnJlYWthYmxlVW5kZXJzY29yZSIuCisKK0lmIHRoZSBbc3RyaW5nc10gb3B0aW9uIGlzIG5vdCBnaXZlbiwgdGhlbiB0aGF0IGlzIGFsbCEKKworVW5kZXIgdGhlIFtzdHJpbmdzXSBvcHRpb24sIHRoZSBsaXN0IG9mIHNwZWNpYWwgY29tbWFuZHMgaXMgcHJvY2Vzc2VkIHRvOgorLSByZXRhaW4gdGhlIG9yaWdpbmFsIGNvbW1hbmQgYXMgXFVTX2NvbW1hbmQgKFxVU19yZWYpCistIHJlZGVmaW5lIHRoZSBjb21tYW5kIGFzIFxVU0Bwcm90XFVTX2NvbW1hbmQgZm9yIG9yZGluYXJ5IGNvbW1hbmRzCisgIChccmVmIC0+IFxVU0Bwcm90XFVTX3JlZikgb3IgYXMgXFVTQHByb3RvcHRcVVNfY29tbWFuZCB3aGVuIGFuIG9wdGlvbmFsCisgIGFyZ3VtZW50IGlzIHBvc3NpYmxlIChcYmliaXRlbSAtPiBcVVNAcHJvdG9wdFxVU19iaWJpdGVtKS4KKy0gc2VsZi1wcm90ZWN0aW5nIGNvbW1hbmRzIChcY2l0ZSkgcmV0YWluIHRoZWlyIHNlbGYtcHJvdGVjdGlvbi4KK0RpYWdub3NpbmcgdGhlIHN0YXRlIG9mIHRoZSBwcmUtZXhpc3RpbmcgY29tbWFuZCBpcyBkb25lIGJ5IHBhaW5mdWwKK2NvbnRvcnRpb25zIGludm9sdmluZyBcbWVhbmluZy4KKworXFVTQHByb3QgYW5kIFxVU0Bwcm90b3B0IHJlYWQgdGhlIGFyZ3VtZW50LCBwcm9jZXNzIGl0IHdpdGggXHByb3RlY3QKK2VuYWJsZWQsIHRoZW4gaW52b2tlIHRoZSBzYXZlZCBcVVNfY29tbWFuZC4KKworTW9kaWZpY2F0aW9uczoKK35+fn5+fn5+fn5+fn5+CisxMi1PY3QtMjAwMSAgQmFiZWwgKHNhZmVAYWN0aXZlcykgY29tcGF0aWJpbGl0eSBhbmQgW25vaHlwaGVuXSBvcHRpb24uCisKK1Rlc3QgZmlsZSBpbnRlZ3JpdHk6ICBBU0NJSSAzMi01NywgNTgtMTI2OiAgISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OQorOjs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+Cg==