fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ck1PVE9ST0xBIE1JQ1JPUFJPQ0VTU09SICYgTUVNT1JZIFRFQ0hOT0xPR1kgR1JPVVAKTTY4MDAwIEhpLVBlcmZvcm1hbmNlIE1pY3JvcHJvY2Vzc29yIERpdmlzaW9uCk02ODA2MCBTb2Z0d2FyZSBQYWNrYWdlClByb2R1Y3Rpb24gUmVsZWFzZSBQMS4wMCAtLSBPY3RvYmVyIDEwLCAxOTk0CgpNNjgwNjAgU29mdHdhcmUgUGFja2FnZSBDb3B5cmlnaHQgqSAxOTkzLCAxOTk0IE1vdG9yb2xhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgpUSEUgU09GVFdBUkUgaXMgcHJvdmlkZWQgb24gYW4gIkFTIElTIiBiYXNpcyBhbmQgd2l0aG91dCB3YXJyYW50eS4KVG8gdGhlIG1heGltdW0gZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdywKTU9UT1JPTEEgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdIRVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELApJTkNMVURJTkcgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQphbmQgYW55IHdhcnJhbnR5IGFnYWluc3QgaW5mcmluZ2VtZW50IHdpdGggcmVnYXJkIHRvIHRoZSBTT0ZUV0FSRQooSU5DTFVESU5HIEFOWSBNT0RJRklFRCBWRVJTSU9OUyBUSEVSRU9GKSBhbmQgYW55IGFjY29tcGFueWluZyB3cml0dGVuIG1hdGVyaWFscy4KClRvIHRoZSBtYXhpbXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcsCklOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIEJFIExJQUJMRSBGT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgooSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiwgREFNQUdFUyBGT1IgTE9TUyBPRiBCVVNJTkVTUyBQUk9GSVRTLApCVVNJTkVTUyBJTlRFUlJVUFRJT04sIExPU1MgT0YgQlVTSU5FU1MgSU5GT1JNQVRJT04sIE9SIE9USEVSIFBFQ1VOSUFSWSBMT1NTKQpBUklTSU5HIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgU09GVFdBUkUuCk1vdG9yb2xhIGFzc3VtZXMgbm8gcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCBvZiB0aGUgU09GVFdBUkUuCgpZb3UgYXJlIGhlcmVieSBncmFudGVkIGEgY29weXJpZ2h0IGxpY2Vuc2UgdG8gdXNlLCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoZSBTT0ZUV0FSRQpzbyBsb25nIGFzIHRoaXMgZW50aXJlIG5vdGljZSBpcyByZXRhaW5lZCB3aXRob3V0IGFsdGVyYXRpb24gaW4gYW55IG1vZGlmaWVkIGFuZC9vcgpyZWRpc3RyaWJ1dGVkIHZlcnNpb25zLCBhbmQgdGhhdCBzdWNoIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBjbGVhcmx5IGlkZW50aWZpZWQgYXMgc3VjaC4KTm8gbGljZW5zZXMgYXJlIGdyYW50ZWQgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZSB1bmRlciBhbnkgcGF0ZW50cwpvciB0cmFkZW1hcmtzIG9mIE1vdG9yb2xhLCBJbmMuCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo2ODA2MCBJTlRFR0VSIFNPRlRXQVJFIFBBQ0tBR0UgKExpYnJhcnkgdmVyc2lvbikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGZpbGUgaWxzcC5zIGNvbnRhaW5zIHRoZSAiTGlicmFyeSB2ZXJzaW9uIiBvZiB0aGUKNjgwNjAgSW50ZWdlciBTb2Z0d2FyZSBQYWNrYWdlLiBSb3V0aW5lcyBpbmNsdWRlZCBpbiB0aGlzCm1vZHVsZSBjYW4gYmUgdXNlZCB0byBlbXVsYXRlIDY0LWJpdCBkaXZpZGUgYW5kIG11bHRpcGx5LAphbmQgdGhlICJjbXAyIiBpbnN0cnVjdGlvbi4gVGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBub3QKaW1wbGVtZW50ZWQgaW4gaGFyZHdhcmUgb24gdGhlIDY4MDYwIGFuZCBub3JtYWxseSB0YWtlCmV4Y2VwdGlvbiB2ZWN0b3IgIzYxICJVbmltcGxlbWVudGVkIEludGVnZXIgSW5zdHJ1Y3Rpb24iLgoKQnkgcmUtY29tcGlsaW5nIGEgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlc2UgaW5zdHJ1Y3Rpb25zLCBhbmQKbWFraW5nIHN1YnJvdXRpbmUgY2FsbHMgaW4gcGxhY2Ugb2YgdGhlIHVuaW1wbGVtZW50ZWQKaW5zdHJ1Y3Rpb25zLCBhIHByb2dyYW0gY2FuIGF2b2lkIHRoZSBvdmVyaGVhZCBhc3NvY2lhdGVkIHdpdGgKdGFraW5nIHRoZSBleGNlcHRpb24uCgpSZWxlYXNlIGZpbGUgZm9ybWF0OgotLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGUgZmlsZSBpbHNwLnNhIGlzIGVzc2VudGlhbGx5IGEgaGV4YWRlY2ltYWwgaW1hZ2Ugb2YgdGhlCnJlbGVhc2UgcGFja2FnZS4gVGhpcyBpcyB0aGUgT05MWSBmb3JtYXQgd2hpY2ggd2lsbCBiZSBzdXBwb3J0ZWQuClRoZSBoZXggaW1hZ2Ugd2FzIGNyZWF0ZWQgYnkgYXNzZW1ibGluZyB0aGUgc291cmNlIGNvZGUgYW5kCnRoZW4gY29udmVydGluZyB0aGUgcmVzdWx0aW5nIGJpbmFyeSBvdXRwdXQgaW1hZ2UgaW50byBhbgpBU0NJSSB0ZXh0IGZpbGUuIFRoZSBoZXhhZGVjaW1hbCBudW1iZXJzIGFyZSBsaXN0ZWQKdXNpbmcgdGhlIE1vdG9yb2xhIEFzc2VtYmx5IFN5bnRheCBhc3NlbWJsZXIgZGlyZWN0aXZlICJkYy5sIgooZGVmaW5lIGNvbnN0YW50IGxvbmd3b3JkKS4gVGhlIGZpbGUgY2FuIGJlIGNvbnZlcnRlZCB0byBvdGhlcgphc3NlbWJseSBzeW50YXhlcyBieSB1c2luZyBhbnkgd29yZCBwcm9jZXNzb3Igd2l0aCBhIGdsb2JhbApzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb24uCgpUbyBhc3Npc3QgaW4gYXNzZW1ibGluZyBhbmQgbGlua2luZyB0aGlzIG1vZHVsZSB3aXRoIG90aGVyIG1vZHVsZXMsCnRoZSBpbnN0YWxsZXIgc2hvdWxkIGFkZCBhIHN5bWJvbGljIGxhYmVsIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUuClRoaXMgd2lsbCBhbGxvdyBjYWxsaW5nIHJvdXRpbmVzIHRvIGFjY2VzcyB0aGUgZW50cnkgcG9pbnRzCm9mIHRoaXMgcGFja2FnZS4KClRoZSBzb3VyY2UgY29kZSBpbHNwLnMgaGFzIGFsc28gYmVlbiBpbmNsdWRlZCBidXQgb25seSBmb3IKZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy4KClJlbGVhc2UgZmlsZSBzdHJ1Y3R1cmU6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBmaWxlIGlsc3Auc2EgY29udGFpbnMgYW4gIkVudHJ5LVBvaW50IiBzZWN0aW9uIGFuZCBhCmNvZGUgc2VjdGlvbi4gVGhlIElMU1AgaGFzIG5vICJDYWxsLU91dCIgc2VjdGlvbi4gVGhlIGZpcnN0IHNlY3Rpb24KaXMgdGhlICJFbnRyeS1Qb2ludCIgc2VjdGlvbi4gSW4gb3JkZXIgdG8gYWNjZXNzIGEgZnVuY3Rpb24gaW4gdGhlCnBhY2thZ2UsIGEgcHJvZ3JhbSBtdXN0ICJic3IiIG9yICJqc3IiIHRvIHRoZSBsb2NhdGlvbiBsaXN0ZWQKYmVsb3cgaW4gIjY4MDYwSUxTUCBFbnRyeSBQb2ludHMiIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGRlc2lyZWQKZnVuY3Rpb24uIEEgYnJhbmNoIGluc3RydWN0aW9uIGxvY2F0ZWQgYXQgdGhlIHNlbGVjdGVkIGVudHJ5IHBvaW50CndpdGhpbiB0aGUgcGFja2FnZSB3aWxsIHRoZW4gZW50ZXIgdGhlIGNvcnJlY3QgZW11bGF0aW9uIGNvZGUgcm91dGluZS4KClRoZSBlbnRyeSBwb2ludCBhZGRyZXNzZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFja2FnZSB3aWxsIHJlbWFpbgpmaXhlZCBzbyB0aGF0IGEgcHJvZ3JhbSBjYWxsaW5nIHRoZSByb3V0aW5lcyB3aWxsIG5vdCBoYXZlIHRvIGJlCnJlLWNvbXBpbGVkIHdpdGggZXZlcnkgbmV3IDY4MDYwSUxTUCByZWxlYXNlLgoKRm9yIGV4YW1wbGUsIHRvIHVzZSBhIDY0LWJpdCBtdWx0aXBseSBpbnN0cnVjdGlvbiwKZG8gYSAiYnNyIiBvciAianNyIiB0byB0aGUgZW50cnkgcG9pbnQgZGVmaW5lZCBieQp0aGUgMDYwSUxTUCBlbnRyeSB0YWJsZS4gQSBjb21waWxlciBnZW5lcmF0ZWQgY29kZSBzZXF1ZW5jZQpmb3IgdW5zaWduZWQgbXVsdGlwbHkgY291bGQgbG9vayBsaWtlOgoKIyBtdWx1LmwgPGVhPixEaDpEbAojIG11bHUubCBfbXVsdGlwbGllciwlZDE6JWQwCgoJc3VicS5sCSYweDgsJXNwCSMgbWFrZSByb29tIGZvciByZXN1bHQgb24gc3RhY2sKCXBlYQkoJXNwKQkJIyBwYXNzOiByZXN1bHQgYWRkciBvbiBzdGFjawoJbW92LmwJJWQwLC0oJXNwKQkjIHBhc3M6IG11bHRpcGxpY2FuZCBvbiBzdGFjawoJbW92LmwJX211bHRpcGxpZXIsLSglc3ApICMgcGFzczogbXVsdGlwbGllciBvbiBzdGFjawoJYnNyLmwJXzA2MExJU1BfVE9QKzB4MTggIyBicmFuY2ggdG8gbXVsdGlwbHkgcm91dGluZQoJYWRkLmwJJjB4Yywlc3AJIyBjbGVhciBhcmd1bWVudHMgZnJvbSBzdGFjawoJbW92LmwJKCVzcCkrLCVkMQkjIGxvYWQgcmVzdWx0WzYzOjMyXQoJbW92LmwJKCVzcCkrLCVkMAkjIGxvYWQgcmVzdWx0WzMxOjBdCgpGb3IgYSBkaXZpZGU6CgojIGRpdnUubCA8ZWE+LERyOkRxCiMgZGl2dS5sIF9kaXZpc29yLCVkMTolZDAKCglzdWJxLmwJJjB4OCwlc3AJIyBtYWtlIHJvb20gZm9yIHJlc3VsdCBvbiBzdGFjawoJcGVhCSglc3ApCQkjIHBhc3M6IHJlc3VsdCBhZGRyIG9uIHN0YWNrCgltb3YubAklZDAsLSglc3ApCSMgcGFzczogZGl2aWRlbmQgaGkgb24gc3RhY2sKCW1vdi5sCSVkMSwtKCVzcCkJIyBwYXNzOiBkaXZpZGVuZCBoaSBvbiBzdGFjawoJbW92LmwJX2Rpdmlzb3IsLSglc3ApICMgcGFzczogZGl2aXNvciBvbiBzdGFjawoJYnNyLmwJXzA2MExJU1BfVE9QKzB4MDggIyBicmFuY2ggdG8gZGl2aWRlIHJvdXRpbmUKCWFkZC5sCSYweGMsJXNwCSMgY2xlYXIgYXJndW1lbnRzIGZyb20gc3RhY2sKCW1vdi5sCSglc3ApKywlZDEJIyBsb2FkIHJlbWFpbmRlcgoJbW92LmwJKCVzcCkrLCVkMAkjIGxvYWQgcXVvdGllbnQKClRoZSBsaWJyYXJ5IHJvdXRpbmVzIGFsc28gcmV0dXJuIHRoZSBjb3JyZWN0IGNvbmRpdGlvbiBjb2RlCnJlZ2lzdGVyIHZhbHVlLiBJZiB0aGlzIGlzIGltcG9ydGFudCwgdGhlbiB0aGUgY2FsbGVyIG9mIHRoZSBsaWJyYXJ5CnJvdXRpbmUgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsdWUgaXNuJ3QgbG9zdCB3aGlsZSBwb3BwaW5nCm90aGVyIGl0ZW1zIG9mZiBvZiB0aGUgc3RhY2suCgpBbiBleGFtcGxlIG9mIHVzaW5nIHRoZSAiY21wMiIgaW5zdHJ1Y3Rpb24gaXMgYXMgZm9sbG93czoKCiMgY21wMi5sIDxlYT4sUm4KIyBjbXAyLmwgX2JvdW5kcywlZDAKCglwZWEJX2JvdW5kcwkJIyBwYXNzIHB0ciB0byBib3VuZHMKCW1vdi5sCSVkMCwtKCVzcCkJIyBwYXNzIFJuCglic3IubAlfMDYwTFNQX1RPUF8rMHg0OCAjIGJyYW5jaCB0byAiY21wMiIgcm91dGluZQoJbW92LncJJWNjLF90bXAJIyBzYXZlIG9mZiBjb25kaXRpb24gY29kZXMKCWFkZHEubAkmMHg4LCVzcAkjIGNsZWFyIGFyZ3VtZW50cyBmcm9tIHN0YWNrCgpFeGNlcHRpb24gcmVwb3J0aW5nOgotLS0tLS0tLS0tLS0tLS0tLS0tLQpJZiB0aGUgaW5zdHJ1Y3Rpb24gYmVpbmcgZW11bGF0ZWQgaXMgYSBkaXZpZGUgYW5kIHRoZSBzb3VyY2UKb3BlcmFuZCBpcyBhIHplcm8sIHRoZW4gdGhlIGxpYnJhcnkgcm91dGluZSwgYXMgaXRzIGxhc3QKaW5zdHJ1Y3Rpb24sIGV4ZWN1dGVzIGFuIGltcGxlbWVudGVkIGRpdmlkZSB1c2luZyBhIHplcm8Kc291cmNlIG9wZXJhbmQgc28gdGhhdCBhbiAiSW50ZWdlciBEaXZpZGUtYnktWmVybyIgZXhjZXB0aW9uCndpbGwgYmUgdGFrZW4uIEFsdGhvdWdoIHRoZSBleGNlcHRpb24gc3RhY2sgZnJhbWUgd2lsbCBub3QKcG9pbnQgdG8gdGhlIGNvcnJlY3QgaW5zdHJ1Y3Rpb24sIHRoZSB1c2VyIHdpbGwgYXQgbGVhc3QgYmUgYWJsZQp0byByZWNvcmQgdGhhdCBzdWNoIGFuIGV2ZW50IG9jY3VycmVkIGlmIGRlc2lyZWQuCgo2ODA2MElMU1AgZW50cnkgcG9pbnRzOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpfMDYwSUxTUF9UT1A6CjB4MDAwOglfMDYwTFNQX19pZGl2czY0XwoweDAwODoJXzA2MExTUF9faWRpdnU2NF8KCjB4MDEwOglfMDYwTFNQX19pbXVsczY0XwoweDAxODoJXzA2MExTUF9faW11bHU2NF8KCjB4MDIwOglfMDYwTFNQX19jbXAyX0FiXwoweDAyODoJXzA2MExTUF9fY21wMl9Bd18KMHgwMzA6CV8wNjBMU1BfX2NtcDJfQWxfCjB4MDM4OglfMDYwTFNQX19jbXAyX0RiXwoweDA0MDoJXzA2MExTUF9fY21wMl9Ed18KMHgwNDg6CV8wNjBMU1BfX2NtcDJfRGxfCg==