ICBDaGFuZ2Vsb2cgZm9yIHRoZSBjLWFyZXMgcHJvamVjdAoKKiBOb3ZlbWJlciA3CgotIEZpeGVkIHRoZSBWQyBwcm9qZWN0IGFuZCBtYWtlZmlsZSB0byB1c2UgYXJlc19jYW5jZWwgYW5kIGFyZXNfdmVyc2lvbgoKKiBPY3RvYmVyIDI0CgotIFRoZSByZWxlYXNlZCBhcmVzX3ZlcnNpb24uaCBmcm9tIDEuMi4xIHNheXMgMS4yLjAgZHVlIHRvIGEgbWFrZXRneiBmbGF3LgogIFRoaXMgaXMgbm93IGZpeGVkLgoKVmVyc2lvbiAxLjIuMSAoT2N0b2JlciAyMCwgMjAwNCkKCiogU2VwdGVtYmVyIDI5CgotIEhlbnJpayBTdG9lcm5lciBmaXg6IGdvdCBhIHJlcG9ydCB0aGF0IFRydTY0IFVuaXggKHRoZSB1bml4IGZyb20gRGlnaXRhbAogIHdoZW4gdGhleSBtYWRlIEFscGhhJ3MpIHVzZXMgL2V0Yy9zdmMuY29uZiBmb3IgdGhlIHB1cnBvc2UgZml4ZWQgYmVsb3cgZm9yCiAgb3RoZXIgT1Nlcy4gSGUgbWFkZSBjLWFyZXMgY2hlY2sgZm9yIGFuZCB1bmRlcnN0YW5kIGl0IGlmIHByZXNlbnQuCgotIE5vdyBjLWFyZXMgd2lsbCB1c2UgbG9jYWwgaG9zdCBuYW1lIGxvb2t1cCBfYmVmb3JlXyBETlMgcmVzb2x2aW5nIGJ5IGRlZmF1bHQKICBpZiBub3RoaW5nIGVsc2UgaXMgdG9sZC4KCiogU2VwdGVtYmVyIDI2CgotIEhlbnJpayBTdG9lcm5lcjogZm91bmQgb3V0IHRoYXQgYy1hcmVzIGRvZXMgbm90IGxvb2sgYXQgdGhlIC9ldGMvaG9zdC5jb25mCiAgZmlsZSB0byBkZXRlcm1pbmUgdGhlIHNlcXVlbmNlIGluIHdoaWNoIHRvIHNlYXJjaCAvZXRjL2hvc3RzIGFuZCBETlMuICBTbyBvbgogIHN5c3RlbXMgd2hlcmUgdGhpcyBvcmRlciBpcyBkZWZpbmVkIGJ5IC9ldGMvaG9zdC5jb25mIGluc3RlYWQgb2YgYSAibG9va3VwIgogIGVudHJ5IGluIC9ldGMvcmVzb2x2LmNvbmYsIGMtYXJlcyB3aWxsIGFsd2F5cyBkZWZhdWx0IHRvIGxvb2tpbmcgaW4gRE5TCiAgZmlyc3QsIGFuZCAvZXRjL2hvc3RzIHNlY29uZC4KCiAgYy1hcmVzIG5vdyBsb29rcyBhdAoKICAxKSByZXNvbHYuY29uZiAoZm9yIHRoZSAibG9va3VwIiBsaW5lKTsKICAyKSBuc3N3aXRjaC5mb24gKGZvciB0aGUgImhvc3RzOiIgbGluZSk7CiAgMykgaG9zdC5jb25mIChmb3IgdGhlICJvcmRlciIgbGluZSkuCgogIEZpcnN0IG1hdGNoIHdpbnMuCgotIERvbWluaWNrIE1lZ2xpbyBwYXRjaGVkOiBDLWFyZXMgb24gV2luZG93cyBhc3N1bWVkIHRoYXQgdGhlIEhPU1RTIGZpbGUgaXMKICBsb2NhdGVkIGluIGEgc3RhdGljIGxvY2F0aW9uLiBJdCBhc3N1bWVkCiAgQzpcV2luZG93c1xTeXN0ZW0zMlxEcml2ZXJzXEV0Yy4gVGhpcyBpcyBhIHBvb3IgYXNzdW1wdGlvbiB0byBtYWtlLiBJbiBmYWN0LAogIHRoZSBsb2NhdGlvbiBvZiB0aGUgSE9TVFMgZmlsZSBjYW4gYmUgY2hhbmdlZCB2aWEgYSByZWdpc3RyeSBzZXR0aW5nLgoKICBUaGVyZSBpcyBhIGtleSBjYWxsZWQgRGF0YWJhc2VQYXRoIHdoaWNoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgSE9TVFMKICBmaWxlOgogIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L2l0c29sdXRpb25zL25ldHdvcmsvZGVwbG95L2RlcG92Zy90Y3BpcDJrLm1zcHgKCiAgVGhlIHBhdGNoIHdpbGwgbWFrZSBjLWFyZXMgY29ycmVjdGx5IGNvbnN1bHQgdGhlIHJlZ2lzdHJ5IGZvciB0aGUgbG9jYXRpb24KICBvZiB0aGlzIGZpbGUuCgoqIEF1Z3VzdCAyOQoKLSBHaXNsZSBWYW5lbSBmaXhlZCB0aGUgTVNWQyBidWlsZCBmaWxlcy4KCiogQXVndXN0IDIwCgotIEdpc2xlIFZhbmVtIG1hZGUgYy1hcmVzIGJ1aWxkIGFuZCB3b3JrIHdpdGggaGlzIFdhdHQtMzIgVENQL0lQIHN0YWNrLgoKKiBBdWd1c3QgMTMKCi0gSGFyc2hhbCBQcmFkaGFuIG1hZGUgYSBtaW5vciBzeW50YXggY2hhbmdlIGluIGFyZXNfaW5pdC5jIHRvIG1ha2UgaXQgYnVpbGQKICBmaW5lIHdpdGggTVNWQyA3LjEKCiogSnVseSAyNAoKLSBNYWRlIHRoZSBsaWIgZ2V0IGJ1aWx0IHN0YXRpYyBvbmx5IGlmIC0tZW5hYmxlLWRlYnVnIGlzIHVzZWQuCgotIEdpc2xlIFZhbmVtIGZpeGVkOgoKICBCYXNpY2FsbHkgaW4gbG9vcHMgbGlrZSBoYW5kbGVfZXJyb3JzKCksICdxdWVyeS0+bmV4dCcgd2FzIGFzc2lnbmVkIGEgbG9jYWwKICB2YXJpYWJsZSBhbmQgdGhlbiBxdWVyeSB3YXMgcmVmZXJlbmNlZCBhZnRlciB0aGUgbWVtb3J5IHdhcyBmcmVlZCBieQogIG5leHRfc2VydmVyKCkuIEkndmUgY2hhbmdlZCB0aGF0IHNvIG5leHRfc2VydmVyKCkgYW5kIGVuZF9xdWVyeSgpIHJldHVybnMKICB0aGUgbmV4dCBxdWVyeS4gU28gY2FsbGVycyBzaG91bGQgdXNlIHRoaXMgcmV0LXZhbHVlLgoKICBUaGUgbmV4dCBwcm9ibGVtIHdhcyB0aGF0ICdzZXJ2ZXItPnRjcF9idWZmZXJfcG9zJyBoYWQgYSByYW5kb20gdmFsdWUgYXQKICBlbnRyeSB0byAxc3QgcmVjdigpIChsdWNraWx5IGNhdXNpbmcgV2luc29jayB0byByZXR1cm4gRU5PQlVGUykuCgogIEkndmUgYWxzbyBhZGRlZCBhIGFyZXNfd3JpdGV2KCkgZm9yIFdpbmRvd3MgdG8gc3RyZWFtbGluZSB0aGUgY29kZSBhIGJpdAogIG1vcmUuCgoqIEp1bHkgMjAKLSBGaXhlZCBhIGZldyB2YXJpYWJsZSByZXR1cm4gdHlwZXMgZm9yIHNvbWUgc3lzdGVtIGNhbGxzLiBNYWRlIGNvbmZpZ3VyZQogIGNoZWNrIGZvciBzc2l6ZV90IHRvIG1ha2UgaXQgcG9zc2libGUgdG8gdXNlIHRoYXQgd2hlbiByZWNlaXZpbmcgdGhlIHNlbmQoKQogIGVycm9yIGNvZGUuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgY29tcGlsZXIgd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zLgoKLSBNYWRlIGNvbmZpZ3VyZSBjcmVhdGUgY29uZmlnLmgsIGFuZCBhbGwgc291cmNlIGZpbGVzIG5vdyBpbmNsdWRlIHNldHVwLmggdGhhdAogIG1pZ2h0IGluY2x1ZGUgdGhlIHByb3BlciBjb25maWcuaCAob3IgYSBoYW5kaWNyYWZ0ZWQgYWx0ZXJuYXRpdmUpLgoKLSBTd2l0Y2hlZCB0byAnYXJlc19zb2NrZXRfdCcgdHlwZSBmb3Igc29ja2V0cyBpbiBhcmVzLCBzaW5jZSBXaW5kb3dzIGRvbid0CiAgdXNlICdpbnQnIGZvciB0aGF0LgoKLSBhdXRvbWFrZS1pZmllZCBhbmQgbGlib29sLWlmaWVkIGMtYXJlcy4gTm93IGl0IGJ1aWxkcyBsaWJjYXJlcyBhcyBhIHNoYXJlZAogIGxpYiBvbiBtb3N0IHBsYXRmb3JtcyBpZiB3YW50ZWQuIChUaGlzIGJsb2F0ZWQgdGhlIHNpemUgb2YgdGhlIHJlbGVhc2UKICBhcmNoaXZlIHdpdGggYW5vdGhlciAyMDBLISkKCi0gTWFrZWZpbGUuYW0gbm93IHVzZXMgTWFrZWZpbGUuaW5jIGZvciB0aGUgYyBzb3VyY2VzLCBoIGhlYWRlcnMgYW5kIG1hbgogIHBhZ2VzLCB0byBtYWtlIGl0IGVhc2llciBmb3Igb3RoZXIgbWFrZWZpbGVzIHRvIHVzZSB0aGUgZXhhY3Qgc2FtZSBzZXQgb2YKICBmaWxlcy4KCi0gQWRqdXN0ZWQgJ21ha2V0Z3onIHRvIHVzZSB0aGUgbmV3IGF1dG9tYWtlIG1hZ2ljIHdoZW4gYnVpbGRpbmcgZGlzdHJpYnV0aW9uCiAgYXJjaGl2ZXMuCgotIEFueW9uZSBkZXNpcmVzIEhUTUwgYW5kL29yIFBERiB2ZXJzaW9ucyBvZiB0aGUgbWFuIHBhZ2VzIGluIHRoZSByZWxlYXNlCiAgYXJjaGl2ZXM/CgoqIEp1bHkgMwotIEf8bnRlciBLbmF1ZiBtYWRlIGMtYXJlcyBidWlsZCBhbmQgcnVuIG9uIE5vdmVsbCBOZXR3YXJlLgoKKiBKdWx5IDEKLSBHaXNsZSBWYW5lbSBwcm92aWRlZCBNYWtlZmlsZS5kaiB0byBidWlsZCB3aXRoIGRqZ3BwLCBhZGRlZCBhIGZldyBtb3JlIGRqZ3BwCiAgZml4ZXMgYW5kIG1hZGUgYXJlcyBub3QgdXNlICdlcnJubycgdG8gcHJvdmlkZSBmdXJ0aGVyIGluZm8gb24gV2luZG93cy4KCiogSnVuZSAzMAotIEdpc2xlIFZhbmVtIG1hZGUgaXQgYnVpbGQgd2l0aCBkamdwcCBhbmQgcnVuIGZpbmUgd2l0aCB0aGUgV2F0dC0zMiBzdGFjay4KCiogSnVuZSAxMAotIEdpc2xlIFZhbmVtJ3MgaW5pdCBwYXRjaCBmb3IgV2luZG93czoKCiAgVGhlIGluaXRfYnlfcmVzb2x2X2NvbmYoKSBmdW5jdGlvbiBmZXRjaGVzIHRoZSBETlMtc2VydmVyKHMpCiAgZnJvbSBhIHNlcmllcyBvZiByZWdpc3RyeSBicmFuY2hlcy4KCiAgVGhpcyBjYW4gYmUgd3JvbmcgaW4gdGhlIGNhc2Ugd2hlcmUgREhDUCBoYXMgYXNzaWduZWQgbmFtZXNlcnZlcnMsIGJ1dCB0aGUKICB1c2VyIGhhcyBvdmVycmlkZGVuIHRoZXNlIHNlcnZlcnMgd2l0aCBvdGhlciBwcmVmZXJlZCBzZXR0aW5ncy4gVGhlbiBpdCdzCiAgd3JvbmcgdG8gdXNlIHRoZSBESENQTkFNRVNFUlZFUiBzZXR0aW5nIGluIHJlZ2lzdHJ5LgoKICBJbiB0aGUgY2FzZSBvZiBubyBnbG9iYWwgREhDUC1hc3NpZ25lZCBvciBmaXhlZCBzZXJ2ZXJzLCBidXQgRE5TIHNlcnZlcihzKQogIHBlciBhZGFwdGVyLCBvbmUgaGFzIHRvIHF1ZXJ5IHRoZSBhZGFwdGVyIGJyYW5jaGVzLiAgQnV0IGhvdyBjYW4gYy1hcmVzIGtub3cKICB3aGljaCBhZGFwdGVyIGlzIHZhbGlkIGZvciB1c2U/IEFGQUlDUyBpdCBjYW4ndC4gVGhlcmUgY291bGQgYmUgb25lIGFkYXB0ZXIKICB0aGF0IGlzIGRvd24gKGUuZy4gYSBWUE4gYWRhcHRlcikuCgogIFNvIGl0J3MgYmV0dGVyIHRvIGxlYXZlIHRoaXMgdG8gdGhlIElQIEhlbHBlciBBUEkgKGlwaGxhcGkpIGF2YWlsYWJsZSBpbgogIFdpbi05OC8yMDAwIGFuZCBsYXRlci4gTXkgcGF0Y2ggZmFsbHMtYmFjayB0byB0aGUgb2xkIHdheSBpZiBub3QgYXZhaWxhYmxlLgoKKiBKdW5lIDgKLSBKYW1lcyBCdXJzYSBmaXhlZCBhbiBpbml0IGlzc3VlIGZvciBSSVNDIE9TLgoKKiBNYXkgMTEKLSBOaWNvIFN0YXBwZW5iZWx0IHJlcG9ydGVkIHRoYXQgd2hlbiBwcm9jZXNzaW5nIGRvbWFpbiBhbmQgc2VhcmNoIGxpbmVzIGluCiAgdGhlIHJlc29sdi5jb25mIGZpbGUsIHRoZSBmaXJzdCBlbnRyeSBlbmNvdW50ZXJlZCBpcyBwcm9jZXNzZWQgYW5kIHVzZWQgYXMKICB0aGUgc2VhcmNoIGxpc3QuIEFjY29yZGluZyB0byB0aGUgbWFudWFsIHBhZ2VzIGZvciBib3RoIExpbnV4LCBTb2xhcmlzIGFuZAogIFRydTY0LCB0aGUgbGFzdCBlbnRyeSBvZiBlaXRoZXIgYSBkb21haW4gb3IgYSBzZWFyY2ggZmllbGQgaXMgdXNlZC4KCiAgVGhpcyBpcyBub3cgYWRqdXN0ZWQgaW4gdGhlIGNvZGUKClZlcnNpb24gMS4yLjAgKEFwcmlsIDEzLCAyMDA0KQoKKiBBcHJpbCAyLCAyMDA0Ci0gVXBkYXRlZCB2YXJpb3VzIG1hbiBwYWdlcyB0byBsb29rIG5pY2VyIHdoZW4gY29udmVydGVkIHRvIEhUTUwgb24gdGhlIHdlYgogIHNpdGUuCgoqIEFwcmlsIDEsIDIwMDQKLSBEaXJrIE1hbnNrZSBwcm92aWRlZCBhIG5ldyBmdW5jdGlvbiB0aGF0IGlzIG5vdyBuYW1lZCBhcmVzX2NhbmNlbCgpLiBJdCBpcwogIHVzZWQgdG8gY2FuY2VsL2NsZWFudXAgYSByZXNvbHZlL3JlcXVlc3QgbWFkZSB1c2luZyBhcmVzIGZ1bmN0aW9ucyBvbiB0aGUKICBnaXZlbiBhcmVzIGNoYW5uZWwuIEl0IGRvZXMgbm90IGRlc3Ryb3kva2lsbCB0aGUgYXJlcyBjaGFubmVsIGl0c2VsZi4KCi0gRG9taW5pY2sgTWVnbGlvIGNsZWFuZWQgdXAgdGhlIGZvcm1hdHRpbmcgaW4gc2V2ZXJhbCBtYW4gcGFnZXMuCgoqIE1hcmNoIDMwLCAyMDA0Ci0gRG9taW5pY2sgTWVnbGlvJ3MgbmV3IGFyZXNfZXhwYW5kX3N0cmluZy4gQSBoZWxwZXIgZnVuY3Rpb24gd2hlbiBkZWNvZGluZwogIGluY29taW5nIEROUyBwYWNrYWdlcy4KCi0gRGFuaWVsIFN0ZW5iZXJnIG1vZGlmaWVkIHRoZSBNYWtlZmlsZS5pbiB0byB1c2UgYSBmb3IgbG9vcCBmb3IgdGhlIG1hbiBwYWdlCiAgaW5zdGFsbGF0aW9uIHRvIGltcHJvdmUgb3ZlcnZpZXcgYW5kIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCBtYW4gcGFnZXMuCgpWZXJzaW9uIDEuMS4wIChNYXJjaCAxMSwgMjAwNCkKCiogTWFyY2ggOSwgMjAwNAotIEdpc2xlIFZhbmVtIGltcHJvdmVkIGJ1aWxkIG9uIFdpbmRvd3MuCgoqIEZlYnJ1YXJ5IDI1LCAyMDA0Ci0gRGFuIEZhbmRyaWNoIGZvdW5kIGEgZmxhdyBpbiB0aGUgRmViIDIyIGZpeC4KCi0gQWRkZWQgYmV0dGVyIGNvbmZpZ3VyZSAtLWVuYWJsZS1kZWJ1ZyBsb2dpYyAodGFrZW4gZnJvbSB0aGUgY3VybCBjb25maWd1cmUKICBzY3JpcHQpLiBBZGRlZCBhY2luY2x1ZGUubTQgdG8gdGhlIHRhcmJhbGwuCgoqIEZlYnJ1YXJ5IDIzLCAyMDA0Ci0gUmVtb3ZlZCBhcmVzX2ZyZWVfZXJybWVtKCksIHRoZSBmdW5jdGlvbiwgdGhlIGZpbGUgYW5kIHRoZSBtYW4gcGFnZS4gSXQgd2FzCiAgbm90IHVzZWQgYW5kIGl0IGRpZCBub3RoaW5nLgoKLSBGaXhlZCBhIGxvdCBvZiBjb2RlIHRoYXQgd2Fzbid0ICI2NGJpdCBjbGVhbiIgYW5kIHRodXMgY2F1c2VkIGEgbG90IG9mCiAgY29tcGlsZXIgd2FybmluZ3Mgb24gcGlja3kgY29tcGlsZXJzLgoKKiBGZWJydWFyeSAyMiwgMjAwNAotIERvbWluaWNrIE1lZ2xpbyBtYWRlIGFyZXMgaW5pdCBzdXBwb3J0IG11bHRpcGxlIG5hbWUgc2VydmVycyBpbiB0aGUKICBOYW1lU2VydmVyIGtleSBvbiBXaW5kb3dzLgoKKiBGZWJydWFyeSAxNiwgMjAwNAotIE1vZGlmaWVkIGFyZXNfcHJpdmF0ZS5oIHRvIGluY2x1ZGUgbGliY3VybCdzIG1lbW9yeSBkZWJ1ZyBoZWFkZXIgaWYKICBDVVJMREVCVUcgaXMgc2V0LiBUaGlzIG1ha2VzIGFsbCB0aGUgYXJlcy1mdW5jdGlvbnMgc3VwZXJ2aXNlZCBwcm9wZXJseSBieQogIHRoZSBjdXJsIHRlc3Qgc3VpdGUuIFRoaXMgYWxzbyBmb3JjZWQgbWUgdG8gYWRkIGluY2x1c2lvbiBvZiB0aGUKICBhcmVzX3ByaXZhdGUuaCBoZWFkZXIgaW4gYSBmZXcgbW9yZSBmaWxlcyB0aGF0IGFyZSB1c2luZyBzb21lIGtpbmQgb2YKICBtZW1vcnktcmVsYXRlZCByZXNvdXJjZXMuCgotIE1hZGUgdGhlIG1ha2VmaWxlIG9ubHkgYnVpbGQgYWhvc3QgYW5kIGFkaWcgaWYgJ21ha2UgZGVtb3MnIGlzIHVzZWQuCgoqIEZlYnJ1YXJ5IDEwLCAyMDA0Ci0gRGlyayBNYW5za2UgbWFkZSBhcmVzX3ZlcnNpb24uaCBpbnN0YWxsZWQgd2l0aCAnbWFrZSBpbnN0YWxsJwoKKiBGZWJydWFyeSA0LCAyMDA0Ci0gYXJlc19mcmVlX2Vycm1lbSgpIGlzIHN1YmplY3QgZm9yIHJlbW92YWwsIGl0IGlzIHNpbXBseSBwcmVzZW50IGZvciBmdXR1cmUKICBwdXJwb3NlcywgYW5kIHNpbmNlIHdlIHJlbW92ZWQgdGhlIGV4dHJhIHBhcmFtZXRlciBpbiBzdHJlcnJvcigpIGl0IHdvbid0CiAgYmUgdXNlZCBieSBjLWFyZXMhCi0gY29uZmlndXJlIC0tZW5hYmxlLWRlYnVnIG5vdyBlbmFibGVzIHBpY2t5IGNvbXBpbGVyIG9wdGlvbnMgaWYgZ2NjIGlzIHVzZWQKLSBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIC0tZW5hYmxlLWRlYnVnIHNob3dlZCBhbmQgSm9lcmcgTXVlbGxlci1Ub2xrCiAgcmVwb3J0ZWQKClZlcnNpb24gMS4wLjAgKEZlYnJ1YXJ5IDMsIDIwMDQpCgoqIEZlYnJ1YXJ5IDMsIDIwMDQKLSBub3cgd2UgcHJvZHVjZSB0aGUgbGliY2FyZXMuYSBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIHByZXZpb3VzIGxpYmFyZXMuYQogIHNpbmNlIHdlIGFyZSBubyBsb25nZXIgY29tcGF0aWJsZQoKKiBGZWJydWFyeSAyLCAyMDA0CgotIGFyZXNfc3RyZXJyb3IoKSBoYXMgb25lIGFyZ3VtZW50IGxlc3MuIFRoaXMgaXMgdGhlIGZpcnN0IG9mZmljaWFsCiAgbW9kaWZpY2F0aW9uIG9mIHRoZSBleGlzdGluZyBwcm92aWRlZCBhcmVzIEFQSS4KCiogSmFudWFyeSAyOSwgMjAwNAoKLSBEaXJrIE1hbnNrZSBmaXhlZCBob3cgdGhlIHNvY2tldCBpcyBzZXQgbm9uLWJsb2NraW5nLgoKKiBKYW51YXJ5IDQsIDIwMDQKCi0gRG9taW5pY2sgTWVnbGlvIG1hZGUgdGhlIHByaXZhdGUgZ2V0dGltZW9mZGF5KCkgYmVjb21lIGFyZXNfZ2V0dGltZW9mZGF5KCkKICBpbnN0ZWFkIGluIG9yZGVyIHRvIG5vdCBwb2xsdXRlIHRoZSBuYW1lIHNwYWNlIGFuZCByaXNrIGNvbGxpZGluZyB3aXRoCiAgb3RoZXIgbGlicmFyaWVzJyB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uLgoKKiBPY3RvYmVyIDI0LCAyMDAzLiBEYW5pZWwgU3RlbmJlcmcKCiAgQWRkZWQgYXJlc192ZXJzaW9uKCkuCgpWZXJzaW9uIDEuMC1wcmUxICg4IE9jdG9iZXIgMjAwMykKCi0gSmFtZXMgQnVyc2EgbWFkZSBpdCBydW4gb24gUklTQyBPUwoKLSBEb21pbmljayBNZWdsaW8gbWFkZSBpdCBydW4gZmluZSBvbiBOVDQKCi0gRHVuY2FuIFdpbGNveCBtYWRlIGl0IHdvcmsgZmluZSBvbiBNYWMgT1MgWAoKLSBEYW5pZWwgU3RlbmJlcmcgYWRqdXN0ZWQgdGhlIHdpbmRvd3MgcG9ydAoKLSBsaXJlbiBhdCB2aXZpc2ltby5jb20gbWFkZSB0aGUgaW5pdGlhbCB3aW5kb3dzIHBvcnQKCiogSW1wb3J0ZWQgdGhlIHNvdXJjZXMgZnJvbSBhcmVzIDEuMS4xCg==