IyBjb25kaXRpb25hbHMKJWRlZmluZSAJd2l0aF9zbm1wCTAKJWRlZmluZQkJd2l0aF92dHlzaAkxCiVkZWZpbmUJCXdpdGhfb3NwZl90ZQkxCiVkZWZpbmUJCXdpdGhfbnNzYQkxCiVkZWZpbmUJCXdpdGhfb3BhcXVlX2xzYSAxCiVkZWZpbmUJCXdpdGhfdGNwX3plYnJhCTAKJWRlZmluZQkJd2l0aF92dHlzaAkxCiVkZWZpbmUJCXdpdGhfcGFtCTEKJWRlZmluZQkJd2l0aF9pcHY2CTEKJWRlZmluZQkJd2l0aF9vc3BmY2xpZW50IDEKJWRlZmluZQkJd2l0aF9vc3BmYXBpCTEKJWRlZmluZQkJd2l0aF9tdWx0aXBhdGgJNjQKCiMgcGF0aCBkZWZpbmVzCiVkZWZpbmUJCV9zeXNjb25mZGlyCS9ldGMvemVicmEKJWRlZmluZQkJemViX3NyYwkJJXtfYnVpbGRkaXJ9LyV7bmFtZX0tJXt2ZXJzaW9ufQolZGVmaW5lCQl6ZWJfcmhfc3JjCSV7emViX3NyY30vcmVkaGF0CiVkZWZpbmUJCXplYl9kb2NzCSV7emViX3NyY30vZG9jCgojIGRlZmluZXMgZm9yIGNvbmZpZ3VyZQolZGVmaW5lCQlfbGliZXhlY2Rpcgkle19leGVjX3ByZWZpeH0vbGliZXhlYy96ZWJyYQolZGVmaW5lCQlfaW5jbHVkZWRpcgkle19wcmVmaXh9L2luY2x1ZGUvemVicmEKJWRlZmluZQkJX2xpYmRpcgkJJXtfZXhlY19wcmVmaXh9LyV7X2xpYn0vemVicmEKJWRlZmluZQkJX2xvY2Fsc3RhdGVkaXIJJXtfcHJlZml4fS92YXIvcnVuCgpTdW1tYXJ5OiBSb3V0aW5nIGRhZW1vbgpOYW1lOgkJemVicmEKVmVyc2lvbjoJMC45NApSZWxlYXNlOgkyMDAzMDMyNTAxCkxpY2Vuc2U6CUdQTApHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0RhZW1vbnMKU291cmNlMDoJZnRwOi8vZnRwLnplYnJhLm9yZy9wdWIvemVicmEvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negpVUkw6CQlodHRwOi8vd3d3LnplYnJhLm9yZy8KJWlmICV3aXRoX3NubXAKI0J1aWxkUmVxdWlyZXM6CXVjZC1zbm1wLWRldmVsClByZXJlcToJCXVjZC1zbm1wCiVlbmRpZgolaWYgJXdpdGhfdnR5c2gKQnVpbGRSZXF1aXJlczoJcmVhZGxpbmUgcmVhZGxpbmUtZGV2ZWwgbmN1cnNlcyBuY3Vyc2VzLWRldmVsClByZXJlcToJCXJlYWRsaW5lIG5jdXJzZXMKJWVuZGlmCkJ1aWxkUmVxdWlyZXM6CXRleGluZm8gdGV0ZXggYXV0b2NvbmYgb3BlbnNzbC1kZXZlbCBwYW0tZGV2ZWwgcGF0Y2gKIyBJbml0c2NyaXB0cyA+IDUuNjAgaXMgcmVxdWlyZWQgZm9yIElQdjYgc3VwcG9ydApQcmVyZXE6CQlpbml0c2NyaXB0cyA+PSA1LjYwClByZXJlcToJCW9wZW5zc2wgbmN1cnNlcyByZWFkbGluZSBwYW0KUHJlcmVxOgkJL3NiaW4vaW5zdGFsbC1pbmZvClByb3ZpZGVzOglyb3V0aW5nZGFlbW9uCkJ1aWxkUm9vdDoJJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LXJvb3QKT2Jzb2xldGVzOgliaXJkIGdhdGVkIG1ydAoKJWRlc2NyaXB0aW9uCkdOVSBaZWJyYSBpcyBhIGZyZWUgc29mdHdhcmUgdGhhdCBtYW5hZ2VzIFRDUC9JUCBiYXNlZCByb3V0aW5nCnByb3RvY29sLiBJdCB0YWtlcyBtdWx0aS1zZXJ2ZXIgYW5kIG11bHRpLXRocmVhZCBhcHByb2FjaCB0byByZXNvbHZlCnRoZSBjdXJyZW50IGNvbXBsZXhpdHkgb2YgdGhlIEludGVybmV0LgoKR05VIFplYnJhIHN1cHBvcnRzIEJHUDQsIEJHUDQrLCBPU1BGdjIsIE9TUEZ2MywgUklQdjEsIFJJUHYyLCBhbmQgUklQbmcuCgpHTlUgWmVicmEgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIFJvdXRlIFNlcnZlciBhbmQgYSBSb3V0ZQpSZWZsZWN0b3IuIEl0IGlzIG5vdCBhIHRvb2xraXQsIGl0IHByb3ZpZGVzIGZ1bGwgcm91dGluZyBwb3dlciB1bmRlcgphIG5ldyBhcmNoaXRlY3R1cmUuIEdOVSBaZWJyYSBpcyB1bmlxdWUgaW4gZGVzaWduIGluIHRoYXQgaXQgaGFzIGEKcHJvY2VzcyBmb3IgZWFjaCBwcm90b2NvbC4KCiVwYWNrYWdlIGNvbnRyaWIKU3VtbWFyeTogY29udHJpYiB0b29scyBmb3IgemVicmEKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9EYWVtb25zCgolZGVzY3JpcHRpb24gY29udHJpYgpDb250cmlidXRlZC8zcmQgcGFydHkgdG9vbHMgd2hpY2ggbWF5IGJlIG9mIHVzZSB3aXRoIHplYnJhLgoKJXBhY2thZ2UgZGV2ZWwKU3VtbWFyeTogSGVhZGVyIGFuZCBvYmplY3QgZmlsZXMgZm9yIHplYnJhIGRldmVsb3BtZW50Ckdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvRGFlbW9ucwoKJWRlc2NyaXB0aW9uIGRldmVsClRoZSB6ZWJyYS1kZXZlbCBwYWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFkZXIgYW5kIG9iamVjdCBmaWxlcyBuZWNjZXNzYXJ5IGZvcgpkZXZlbG9waW5nIE9TUEYtQVBJIGFuZCB6ZWJyYSBhcHBsaWNhdGlvbnMuCgolcHJlcAolc2V0dXAgIC1xCgolYnVpbGQKLi91cGRhdGUtYXV0b3Rvb2xzCiVjb25maWd1cmUgXAoJLS13aXRoLWNmbGFncz0iLU8yIiBcCgktLWVuYWJsZS1uZXRsaW5rIFwKJWlmICV3aXRoX2lwdjYKCS0tZW5hYmxlLWlwdjYgXAolZW5kaWYKJWlmICV3aXRoX3NubXAKCS0tZW5hYmxlLXNubXAgXAolZW5kaWYKJWlmICV3aXRoX211bHRpcGF0aAoJLS1lbmFibGUtbXVsdGlwYXRoPSV3aXRoX211bHRpcGF0aCBcCiVlbmRpZgolaWYgJXdpdGhfdGNwX3plYnJhCgktLWVuYWJsZS10Y3AtemVicmEgXAolZW5kaWYKJWlmICV3aXRoX25zc2EKCS0tZW5hYmxlLW5zc2EgXAolZW5kaWYKJWlmICV3aXRoX29wYXF1ZV9sc2EKCS0tZW5hYmxlLW9wYXF1ZS1sc2EgXAolZW5kaWYKJWlmICV3aXRoX29zcGZfdGUKCS0tZW5hYmxlLW9zcGYtdGUgXAolZW5kaWYKJWlmICV3aXRoX3Z0eXNoCgktLWVuYWJsZS12dHlzaCBcCiVlbmRpZgolaWYgJXdpdGhfb3NwZmNsaWVudCAKCS0tZW5hYmxlLW9zcGZjbGllbnQ9eWVzIFwKJWVsc2UKCS0tZW5hYmxlLW9zcGZjbGllbnQ9bm9cCiVlbmRpZgolaWYgJXdpdGhfb3NwZmFwaQoJLS1lbmFibGUtb3NwZmFwaT15ZXMgXAolZWxzZQoJLS1lbmFibGUtb3NwZmFwaT1ubyBcCiVlbmRpZgolaWYgJXdpdGhfcGFtCgktLXdpdGgtbGlicGFtCiVlbmRpZgoKcHVzaGQgdnR5c2gKbWFrZSAlez9fc21wX21mbGFnc30gcmVidWlsZApwb3BkCgptYWtlICV7P19zbXBfbWZsYWdzfSBNQUtFSU5GTz0ibWFrZWluZm8gLS1uby1zcGxpdCIKCnB1c2hkIGRvYwp0ZXhpMmh0bWwgemVicmEudGV4aQpwb3BkCgolaW5zdGFsbApybSAtcmYgJFJQTV9CVUlMRF9ST09UCgppbnN0YWxsIC1kICRSUE1fQlVJTERfUk9PVC9ldGMve3JjLmQvaW5pdC5kLHN5c2NvbmZpZyxsb2dyb3RhdGUuZCxwYW0uZH0gXAoJJFJQTV9CVUlMRF9ST09UL3Zhci9sb2cvemVicmEgJFJQTV9CVUlMRF9ST09UJXtfaW5mb2Rpcn0KCm1ha2UgaW5zdGFsbCBcCglERVNURElSPSRSUE1fQlVJTERfUk9PVAoKaW5zdGFsbCAle3plYl9yaF9zcmN9L3plYnJhLmluaXQgJFJQTV9CVUlMRF9ST09UL2V0Yy9yYy5kL2luaXQuZC96ZWJyYQppbnN0YWxsICV7emViX3JoX3NyY30vYmdwZC5pbml0ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvYmdwZAolaWYgJXdpdGhfaXB2NgppbnN0YWxsICV7emViX3JoX3NyY30vb3NwZjZkLmluaXQgJFJQTV9CVUlMRF9ST09UL2V0Yy9yYy5kL2luaXQuZC9vc3BmNmQKaW5zdGFsbCAle3plYl9yaF9zcmN9L3JpcG5nZC5pbml0ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvcmlwbmdkCiVlbmRpZgppbnN0YWxsICV7emViX3JoX3NyY30vb3NwZmQuaW5pdCAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL29zcGZkCmluc3RhbGwgJXt6ZWJfcmhfc3JjfS9yaXBkLmluaXQgJFJQTV9CVUlMRF9ST09UL2V0Yy9yYy5kL2luaXQuZC9yaXBkCmluc3RhbGwgLW02NDQgJXt6ZWJfcmhfc3JjfS96ZWJyYS5wYW0gJFJQTV9CVUlMRF9ST09UL2V0Yy9wYW0uZC96ZWJyYQppbnN0YWxsIC1tNjQ0ICV7emViX3JoX3NyY30vemVicmEubG9ncm90YXRlICRSUE1fQlVJTERfUk9PVC9ldGMvbG9ncm90YXRlLmQvemVicmEKCiVwb3N0CiMgemVicmFfc3BlY19hZGRfc2VydmljZSA8c2VydmljZSBuYW1lPiA8cG9ydC9wcm90bz4gPGNvbW1lbnQ+CiMgZS5nLiB6ZWJyYV9zcGVjX2FkZF9zZXJ2aWNlIHplYnJhc3J2IDI2MDAvdGNwICJ6ZWJyYSBzZXJ2aWNlIgoKemVicmFfc3BlY19hZGRfc2VydmljZSAoKQp7CiAgIyBBZGQgcG9ydCAvZXRjL3NlcnZpY2VzIGVudHJ5IGlmIGl0IGlzbid0IGFscmVhZHkgdGhlcmUgCiAgaWYgWyAtZiAvZXRjL3NlcnZpY2VzIF0gJiYgISBncmVwIC1xICJeJDFbXmEtekEtWjAtOV0iIC9ldGMvc2VydmljZXMgOyB0aGVuCiAgICBlY2hvICIkMQkJJDIJCQkjICQzIiAgPj4gL2V0Yy9zZXJ2aWNlcwogIGZpCn0KCnplYnJhX3NwZWNfYWRkX3NlcnZpY2UgemVicmFzcnYgMjYwMC90Y3AgInplYnJhIHNlcnZpY2UiCnplYnJhX3NwZWNfYWRkX3NlcnZpY2UgemVicmEgICAgMjYwMS90Y3AgInplYnJhIHZ0eSIKemVicmFfc3BlY19hZGRfc2VydmljZSByaXBkICAgICAyNjAyL3RjcCAiUklQZCB2dHkiCiVpZiAld2l0aF9pcHY2CnplYnJhX3NwZWNfYWRkX3NlcnZpY2UgcmlwbmdkICAgMjYwMy90Y3AgIlJJUG5nZCB2dHkiCiVlbmRpZgp6ZWJyYV9zcGVjX2FkZF9zZXJ2aWNlIG9zcGZkICAgIDI2MDQvdGNwICJPU1BGZCB2dHkiCnplYnJhX3NwZWNfYWRkX3NlcnZpY2UgYmdwZCAgICAgMjYwNS90Y3AgIkJHUGQgdnR5IgolaWYgJXdpdGhfaXB2Ngp6ZWJyYV9zcGVjX2FkZF9zZXJ2aWNlIG9zcGY2ZCAgIDI2MDYvdGNwICJPU1BGNmQgdnR5IgolZW5kaWYKCi9zYmluL2Noa2NvbmZpZyAtLWFkZCB6ZWJyYSAKL3NiaW4vY2hrY29uZmlnIC0tYWRkIHJpcGQKJWlmICV3aXRoX2lwdjYKL3NiaW4vY2hrY29uZmlnIC0tYWRkIHJpcG5nZAovc2Jpbi9jaGtjb25maWcgLS1hZGQgb3NwZjZkCiVlbmRpZgovc2Jpbi9jaGtjb25maWcgLS1hZGQgb3NwZmQKL3NiaW4vY2hrY29uZmlnIC0tYWRkIGJncGQKCi9zYmluL2luc3RhbGwtaW5mbyAle19pbmZvZGlyfS96ZWJyYS5pbmZvLmd6ICV7X2luZm9kaXJ9L2RpcgoKIyBDcmVhdGUgZHVtbXkgZmlsZXMgaWYgdGhleSBkb24ndCBleGlzdCBzbyBiYXNpYyBmdW5jdGlvbnMgY2FuIGJlIHVzZWQuCmlmIFsgISAtZSAle19zeXNjb25mZGlyfS96ZWJyYS5jb25mIF07IHRoZW4KCWVjaG8gImhvc3RuYW1lIGBob3N0bmFtZWAiID4gJXtfc3lzY29uZmRpcn0vemVicmEuY29uZgoJY2htb2QgNjQwICV7X3N5c2NvbmZkaXJ9L3plYnJhLmNvbmYKZmkKaWYgWyAhIC1lICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYgXTsgdGhlbgoJdG91Y2ggJXtfc3lzY29uZmRpcn0vdnR5c2guY29uZgoJY2htb2QgNjQwICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYKZmkKCiVwb3N0dW4KaWYgWyAiJDEiIC1nZSAgIjEiIF07IHRoZW4KCS9ldGMvcmMuZC9pbml0LmQvemVicmEgIGNvbmRyZXN0YXJ0ID4vZGV2L251bGwgMj4mMQoJL2V0Yy9yYy5kL2luaXQuZC9yaXBkICAgY29uZHJlc3RhcnQgPi9kZXYvbnVsbCAyPiYxCiVpZiAld2l0aF9pcHY2CgkvZXRjL3JjLmQvaW5pdC5kL3JpcG5nZCBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKJWVuZGlmCgkvZXRjL3JjLmQvaW5pdC5kL29zcGZkICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKJWlmICV3aXRoX2lwdjYKCS9ldGMvcmMuZC9pbml0LmQvb3NwZjZkIGNvbmRyZXN0YXJ0ID4vZGV2L251bGwgMj4mMQolZW5kaWYKCS9ldGMvcmMuZC9pbml0LmQvYmdwZCAgIGNvbmRyZXN0YXJ0ID4vZGV2L251bGwgMj4mMQpmaQovc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgJXtfaW5mb2Rpcn0vemVicmEuaW5mby5neiAle19pbmZvZGlyfS9kaXIKCiVwcmV1bgppZiBbICIkMSIgPSAiMCIgXTsgdGhlbgogICAgICAgIC9zYmluL2Noa2NvbmZpZyAtLWRlbCB6ZWJyYQoJL3NiaW4vY2hrY29uZmlnIC0tZGVsIHJpcGQKJWlmICV3aXRoX2lwdjYKCS9zYmluL2Noa2NvbmZpZyAtLWRlbCByaXBuZ2QKJWVuZGlmCgkvc2Jpbi9jaGtjb25maWcgLS1kZWwgb3NwZmQKJWlmICV3aXRoX2lwdjYKCS9zYmluL2Noa2NvbmZpZyAtLWRlbCBvc3BmNmQKJWVuZGlmCgkvc2Jpbi9jaGtjb25maWcgLS1kZWwgYmdwZApmaQoKJWNsZWFuCiNybSAtcmYgJFJQTV9CVUlMRF9ST09UCgolZmlsZXMKJWRlZmF0dHIoLSxyb290LHJvb3QpCiVkb2MgKi8qLnNhbXBsZSogQVVUSE9SUyBDT1BZSU5HCiVkb2MgZG9jL3plYnJhLmh0bWwKJWRvYyBkb2MvbXBscwolZG9jIENoYW5nZUxvZyBJTlNUQUxMIE5FV1MgUkVBRE1FIFJFUE9SVElORy1CVUdTIFNFUlZJQ0VTIFRPRE8KJWRpciAlYXR0cig3NTAscm9vdCxyb290KSAle19zeXNjb25mZGlyfQolZGlyICVhdHRyKDc1MCxyb290LHJvb3QpIC92YXIvbG9nL3plYnJhCiVkaXIgJWF0dHIoNzU1LHJvb3Qscm9vdCkgL3Vzci9zaGFyZS9pbmZvCiV7X2luZm9kaXJ9LyppbmZvKgole19tYW5kaXJ9L21hbiovKgole19zYmluZGlyfS8qCiVpZiAld2l0aF92dHlzaAole19iaW5kaXJ9LyoKJWVuZGlmCiVjb25maWcgL2V0Yy96ZWJyYS8qCiVjb25maWcgL2V0Yy9yYy5kL2luaXQuZC8qCiVjb25maWcobm9yZXBsYWNlKSAvZXRjL3BhbS5kL3plYnJhCiVjb25maWcobm9yZXBsYWNlKSAlYXR0cig2NDAscm9vdCxyb290KSAvZXRjL2xvZ3JvdGF0ZS5kLyoKCiVmaWxlcyBjb250cmliCiVkZWZhdHRyKC0scm9vdCxyb290KQolZG9jIHRvb2xzCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QpCiVkaXIgJXtfbGliZGlyfS8qCiVkaXIgJXtfaW5jbHVkZWRpcn0vb3NwZmQvKgolaWYgJXdpdGhfb3NwZmFwaQolZGlyICV7X2luY2x1ZGVkaXJ9L29zcGZhcGkvKgolZW5kaWYKCiVjaGFuZ2Vsb2cKKiBNb24gTWFyIDE4IDIwMDMgUGF1bCBKYWttYSA8cGF1bEBkaXNob25lLnN0PgotIEZpeCBtZW0gbGVhayBpbiAnc2hvdyB0aHJlYWQgY3B1JwotIFJhbHBoIEtlbGxlcidzIE9TUEYtQVBJCi0gQW1pcjogRml4IGNvbmZpZ3VyZS5hYyBmb3IgbmV0LXNubXAKCiogU2F0IE1hciAxIDIwMDMgUGF1bCBKYWttYSA8cGF1bEBkaXNob25lLnN0PgotIG9zcGZkIElPUyBwcmVmaXggdG8gaW50ZXJmYWNlIG1hdGNoaW5nIGZvciAnbmV0d29yaycgc3RhdGVtZW50Ci0gdGVtcG9yYXJ5IGZpeCBmb3IgUHRQIGFuZCBJUHY2Ci0gc3luYyB0byB6ZWJyYS5vcmcgQ1ZTCgoqIE1vbiBKYW4gMjAgMjAwMyBQYXVsIEpha21hIDxwYXVsQGRpc2hvbmUuc3Q+Ci0gdXBkYXRlIHRvIGxhdGVzdCBjdnMKLSBZb24ncyAic2hvdyB0aHJlYWQgY3B1IiBwYXRjaCAtIDE3MjE3Ci0gd2FsayB1cCB0cmVlIC0gMTcyMTgKLSBvc3BmZCBOU1NBIGZpeGVzIC0gMTY2ODEKLSBvc3BmZCBuc20gZml4ZXMgLSAxNjgyNAotIG9zcGZkIE9MU0EgZml4ZXMgYW5kIG5ldyBmZWF0dXJlIC0gMTY4MjMgCi0gS0FNRSBhbmQgaWZpbmRleCBmaXhlcyAtIDE2NTI1Ci0gc3BlYyBmaWxlIGNoYW5nZXMgdG8gYWxsb3cgcmVkaGF0IGZpbGVzIHRvIGJlIGluIHRyZWUKCiogU2F0IERlYyAyOCAyMDAyIEFsZXhhbmRlciBIb29nZXJodWlzIDxhbGV4aEBpaGF0ZW50LmNvbT4KLSBBZGRlZCBjb25kaXRpb25hbHMgZm9yIGJ1aWxkaW5nIHdpdGgob3V0KSBJUHY2LCB2dHlzaCwgUklQLCBCR1AKLSBGaXhlZCB1cCBzb21lIGJ1aWxkIHJlcXVpcmVtZW50cyAocGF0Y2gpCi0gQWRkZWQgY29uZGl0aW9uYWwgYnVpbGQgcmVxdWlyZW1lbnRzIGZvciB2dHlzaCAvIHNubXAKLSBBZGRlZCBjb25kaXRpb25hbCB0byAlZmlsZXMgZm9yICVfYmluZGlyIGRlcGVuZGluZyBvbiB2dHlzaAoKKiBNb24gTm92IDExIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KLSB1cGRhdGUgdG8gbGF0ZXN0IENWUwotIGFkZCBHcmVnIFRyb3hlbCdzIG1kNSBidWZmZXIgY29weS9kdXAgZml4Ci0gYWRkIFJJUHYxIGZpeAotIGFkZCBGcmFuaydzIG11bHRpY2FzdCBmbGFnIGZpeAoKKiBXZWQgT2N0IDA5IDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KLSB1cGRhdGUgdG8gbGF0ZXN0IENWUwotIHRpbWVzdGFtcGVkIGNyeXB0X3NlcW51bSBwYXRjaAotIG9pLT5vbl93cml0ZV9xIGZpeAoKKiBNb24gU2VwIDMwIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KLSB1cGRhdGUgdG8gbGF0ZXN0IENWUwotIGFkZCB2dHlzaCAnd3JpdGUtY29uZmlnIChpbnRlZ3JhdGVkfGRhZW1vbiknIHBhdGNoCi0gYWx3YXlzICdtYWtlIHJlYnVpbGQnIGluIHZ0eXNoLyB0byBjYXRjaCBuZXcgY29tbWFuZHMKCiogRnJpIFNlcCAxMyAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+Ci0gdXBkYXRlIHRvIDAuOTNiCgoqIFdlZCBTZXAgMTEgMjAwMiBQYXVsIEpha21hIDxwYXVsakBhbHBoeXJhLmllPgotIHVwZGF0ZSB0byBsYXRlc3QgQ1ZTCi0gYWRkICIvc2Jpbi9pcCByb3V0ZSBmbHVzaCBwcm90byB6ZWJyYSIgdG8gemVicmEgUkggaW5pdCBvbiBzdGFydHVwCgoqIFNhdCBBdWcgMjQgMjAwMiBQYXVsIEpha21hIDxwYXVsakBhbHBoeXJhLmllPgotIHVwZGF0ZSB0byBjdXJyZW50IENWUwotIGFkZCBPU1BGIHBvaW50IHRvIG11bHRpcG9pbnQgcGF0Y2gKLSBhZGQgT1NQRiBidWdmaXhlcwotIGFkZCBCR1AgaGFzaCBvcHRpbWlzYXRpb24gcGF0Y2gKCiogRnJpIEp1biAxNCAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+Ci0gdXBkYXRlIHRvIDAuOTMtcHJlMSAvIENWUwotIGFkZCBsaW5rIHN0YXRlIGRldGVjdGlvbiBzdXBwb3J0Ci0gYWRkIGdlbmVyaWMgUHRQIGFuZCBSRkMzMDIxIHN1cHBvcnQKLSB2YXJpb3VzIGJ1ZyBmaXhlcwoKKiBUaHUgQXVnIDA5IDIwMDEgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiAwLjkxYS02Ci0gRml4IGJ1ZyAjNTEzMzYKCiogV2VkIEF1ZyAgMSAyMDAxIFRyb25kIEVpdmluZCBHbG9tc3L4ZCA8dGVnQHJlZGhhdC5jb20+IDAuOTFhLTUKLSBVc2UgZ2VuZXJpYyBpbml0c2NyaXB0IHN0cmluZ3MgaW5zdGVhZCBvZiBpbml0c2NyaXB0IHNwZWNpZmljCiAgKCAiU3RhcnRpbmcgZm9vOiAiIC0+ICJTdGFydGluZyAkcHJvZzoiICkKCiogRnJpIEp1bCAyNyAyMDAxIEVsbGlvdCBMZWUgPHNvcHdpdGhAcmVkaGF0LmNvbT4gMC45MWEtNAotIEJ1bXAgdGhlIHJlbGVhc2Ugd2hlbiByZWJ1aWxkaW5nIGludG8gdGhlIGRpc3QuCgoqIFR1ZSBGZWIgIDYgMjAwMSBUaW0gUG93ZXJzIDx0aW1wQHJlZGhhdC5jb20+Ci0gYnVpbHQgZm9yIFBvd2VydG9vbHMKCiogU3VuIEZlYiAgNCAyMDAxIFBla2thIFNhdm9sYSA8cGVra2FzQG5ldGNvcmUuZmk+IAotIEhhY2tlZCB1cCBmcm9tIFBMRCBMaW51eCAwLjkwLTEsIE1hbmRyYWtlIDAuOTAtMW1kayBhbmQgb25lIGZyb20gemVicmEub3JnLgotIFVwZGF0ZSB0byAwLjkxYQotIFZlcnkgaGVhdnkgbW9kaWZpY2F0aW9ucyB0byBpbml0LmQvKiwgLnNwZWMsIHBhbSwgaTE4biwgbG9ncm90YXRlLCBldGMuCi0gU2hvdWxkIGJlIHF1aXRlIFJlZCBIYXQnaXNxdWUgbm93Lgo=